We need to strike a balance between high availability and code maintainability.
The premise we discussed -- etcd cluster down and the service restarted at the same time is a very low probability thing, and there are multiple gateways in the production environment, they are stateless. I agree it will reduce downtime, but in my opinion, it is a low priority feature now. Thanks, Ming Wen, Apache APISIX Twitter: _WenMing YuanSheng Wang <membp...@gmail.com> 于2019年11月6日周三 上午11:26写道: > On Wed, Nov 6, 2019 at 11:10 AM Ming Wen <wenm...@apache.org> wrote: > > > The actual situation will be more complicated than this. > > What if the etcd conflicts with the local configuration file? > > > > Apache APISIX is not a database, it is stateless and allows downtime. > > > > If we have a way to reduce downtime, I think it's good. > > > > So my opinion is to keep the logic as simple as possible. > > > > Thanks, > > Ming Wen, Apache APISIX > > Twitter: _WenMing > > > > > > hui li <yo...@apache.org> 于2019年11月6日周三 上午11:04写道: > > > > > hi Ming, > > > if APISIX writes the route configuration to the local dist, I think > that > > > APISIX should load the local configuration first, then the APISIX > should > > > load the full configuration from the etcd. > > > after loading full config from the etcd, APISIX can synchronize > > incremental > > > config from etcd. > > > > > > Thanks, > > > yousa > > > > > > Ming Wen <wenm...@apache.org> 于2019年11月5日周二 下午2:16写道: > > > > > > > If we add a local configuration file for etcd mode, > > > > etcd is incrementally synchronized in APISIX and does not guarantee > > final > > > > consistency, > > > > and the conflict between etcd and the configuration file will bring > > high > > > > complexity. > > > > > > > > I don't think this is worth it. > > > > > > > > Thanks, > > > > Ming Wen, Apache APISIX > > > > Twitter: _WenMing > > > > > > > > > > > > YuanSheng Wang <membp...@apache.org> 于2019年11月5日周二 下午2:03写道: > > > > > > > > > Hi Ming: > > > > > > > > > > This is two different features. > > > > > > > > > > When the service is restarted and etcd is not working properly, the > > > last > > > > > correct configuration is read from the configuration backup file. > > > > > > > > > > This mechanism ensures that the APISIX service will work normal > > first. > > > > > > > > > > > > > > > > > > > > On Tue, Nov 5, 2019 at 1:28 PM Ming Wen <wenm...@apache.org> > wrote: > > > > > > > > > > > Hi, hui, > > > > > > Apache APISIX supports stand-alone mode and declarative API [1], > > > > > > so it already has a local configuration file. > > > > > > > > > > > > Do you mean we should support local configuration file when using > > > etcd > > > > > > mode? > > > > > > > > > > > > [1] > > > > > > > > > > > > > > > > > > > > > https://github.com/apache/incubator-apisix/blob/master/doc/stand-alone.md > > > > > > > > > > > > Thanks, > > > > > > Ming Wen, Apache APISIX > > > > > > Twitter: _WenMing > > > > > > > > > > > > > > > > > > hui li <yo...@apache.org> 于2019年11月5日周二 上午11:45写道: > > > > > > > > > > > > > Does the APISIX need to write the configuration to the local > > disk? > > > > > > > > > > > > > > The APISIX currently can run without the configuration center, > > > etcd. > > > > > > > > > > > > > > But its routes configuration just is stored in the memory. If > > > APISIX > > > > > runs > > > > > > > without etcd or could not connect the etcd (still possible), > > > > meanwhile, > > > > > > > APISIX has been restarted because of some critical BUG. APISIX > > will > > > > > > restart > > > > > > > with no route configuration which will cause the network > failure. > > > > > > > > > > > > > > On the other hand, other API-Gateway, such as tyk or zuul, will > > > write > > > > > the > > > > > > > configuration to the local disk when it exit. > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > *MembPhis* > > > > > My github: https://github.com/membphis > > > > > Apache APISIX: https://github.com/apache/incubator-apisix > > > > > > > > > > > > > > > > > -- > > *MembPhis* > My github: https://github.com/membphis > Apache APISIX: https://github.com/apache/incubator-apisix >