|NO.Z.00406|——————————|CloudNative|——|KuberNetes&CI/CD.V44|——|Jenkins.v10|SpringCloud_Eureka.v04|
一、到底要不要使用zuul和ConfigServer
### --- ConfigServer
~~~ # 用来保存每个服务的配置信息的:
~~~ Redis、rabbit、MySQL、第三方服务的地址信息是什么
~~~ 在k8s配置中心中是有configmap的配置机制的
~~~ # 若是使用ConfigServer的话的调用链就会更长:
~~~ 服务启动调用就会更长;
~~~ 服务启动的时候就需要连接到ConfigServer,
~~~ ConfigServer需要连接到后端的存储git或者MySQL,把它的配置信息拉取过来,
~~~ 这个配置信息又被service缓存到本地,然后服务启动的时候会读取到这个配置文件,然后再启动。
~~~ # 若是服务启动的时候,后端的存储或者MySQL宕机,在这个宕机的同时;
~~~ 若是这个服务进行滚动发布,或者重启,就会读取不到这个配置文件。
~~~ 因为在容器中是不会缓存任何的配置文件,下载配置文件,下次重启的时候会丢失的,
~~~ 下次重启是没有的。这样服务启动后找不到配置文件,造成服务启动不起来。
~~~ 而且这种调用链是比较长的;若是网络出现问题,这个服务启动会非常长。
~~~ 服务启动非常长,健康检查配置时间不够,会造成服务启动不起来。
~~~ # 在新项目中:
~~~ ConfigServer逐渐下掉
### --- 引入ConfigServer解决的问题
~~~ 解决的是生产环境,开发环境,测试环境调用的第三方服务的地址是不一样的,
~~~ 需要ConfigServer区分它们之间的配置。
~~~ 若是使用service,可以使用统一的service名,通过更改serviceendpoints地址,
~~~ 就实现了不同环境去调用不同的组件,来实现不同服务。
### --- 有三种方式去管理:
~~~ # 第一种:环境变量方式:
~~~ 服务启动使用redis,rabbit,MySQL都是以环境变量的方式注入进去的。
~~~ 这样就可以不使用ConfigServer,启动速度非常快,
~~~ 也不会出现ConfigServer宕机而导致服务启动不起来的弊端
~~~ # 第二种:service:
~~~ 使用service代理外部应用;若是MySQL部署在宿主机上;
~~~ 在单独的一个namespace创建一个service;
~~~ 这个service通过endpoints的方式代理外部服务的方式代理到MySQL。
~~~ 这样就可以统一它的配置文件。
~~~ # 第三种:configmap:
~~~ 使用configmap管理配置文件,和ConfigServer没什么区别。
~~~ 把配置写到configmap,把configmap挂载到容器中,也是以文件形式挂载的,
~~~ 这样也就可以读取到配置。和ConfigServer相比少了一层调用configserver的过程,
~~~ 启动速度也是比较快的。但是这种情况需要维护很多个configmap。
### --- zuul:
~~~ 在k8s中;是安装ingress的,
~~~ 若是不适用zuul;zuul实现的逻辑都需要在ingress中配置。
~~~ ingress配置路由也是简单的,只需要生成yaml文件就可以部署
~~~ 但是若是后端服务比较多的话,就需要配置很多条ingress。
### --- zuul和ConfigServer到底如何使用
~~~ 这样开发的工作量就减少了,运维的工作量就增加了。
~~~ 这个区分与到底要把这个工作量分给谁,再去决定到底要不要去用ConfigServer和zuul的
~~~ 建议是可以使用zuul的,ConfigServer可以不用
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」