openresty+mysql动态路由设计原理
首先openresty是用lua对nginx做的二次开发。解决问题:原来nginx都是需要将服务在nginx中配置完毕,每次新增或者删除服务都需要重启nginx,运维成本高,而通过openresty+mysql便可实现动态路由的效果。实现原理:1.在服务启动时将服务的路由地址动态注册到mysql的表中2.当请求过来时openresty...
首先openresty是用lua对nginx做的二次开发。
解决问题:原来nginx都是需要将服务在nginx中配置完毕,每次新增或者删除服务都需要重启nginx,运维成本高,而通过 openresty+mysql便可实现动态路由的效果。
实现原理:1.在服务启动时将服务的路由地址动态注册到mysql的表中
2.当请求过来时openresty先去缓存中检查该服务是否已经加载了该服务的路由地址,如果有随机选择一个进行路由,如果没有需要先去mysql中查询该服务可路由的地址,加载到缓存中,缓存有效期设置五分钟。
3.设置健康检查,保证每次随机选择到的服务路由地址一定是健康的,至少服务是存在的
4.设置定时任务每2分钟去检测下mysql中的路由地址是否有不健康的,如果连续5次不健康当做该服务已经挂掉,在mysql中移除掉。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)