求教一个问题,在处理web request时需要先从etcd中取出配置信息,我对配置的实时性要求挺高的,如果有其他服务修改了etcd里的配置,openresty要能在秒级别感知到,而且也不太想每个request都要connect 一次etcd,cost太高,所以我想到以下方案:
1. 在openresty里起一个线程watch etcd,发生变化就把最新的值放到openresty的share cache里。
问题:nginx是master worker架构,这个watch线程是每个worker一个还是全局只有一个(怎么实现全局唯一)。而且如果etcd挂了或者某个worker挂了怎么办?
2. 开发一个etcd的lua client,需要支持connection pool,类似lua-redis的实现,因为目前还没有带connection pool的etcd lua client
问题:开发难度偏大
求教一个问题,在处理web request时需要先从etcd中取出配置信息,我对配置的实时性要求挺高的,如果有其他服务修改了etcd里的配置,openresty要能在秒级别感知到,而且也不太想每个request都要connect 一次etcd,cost太高,所以我想到以下方案: