目的
本文详细介绍了confd模板的语法和结构。并且在结尾给出示例演示,帮助你充分理解好消化。
当系统变的复杂,配置项越来越多,一方面配置管理变得繁琐,另一方面配置修改后需要重新上线同样十分痛苦。这时候,需要有一套集中化配置管理系统,一方面提供统一的配置管理,另一方面提供配置变更的自动下发,及时生效。提到统一配置管理系统,大家应该比较熟悉,常见的:zookeeper、etcd、consul、git等等。上述的集中配置中心使用的时候,部署图大致是这样的:
server端只需要调用config-server对应客户端获取配置,和监听配置变更就可以了。总体来说没有太大难度。
接下来要说一下confd,它提供了一种新的集成思路。confd的存在有点类似于快递员,买了东西不需要自己到店去取货了,confd这个快递员会把货取过来,然后送到家里,并且通知你货已经送到了。加入confd之后的架构大致是这样的:
微服务架构在互联网应用领域中愈来愈火,引入微服务主要解决了单体应用多个模块的紧耦合、无法扩展和运维困难等问题。微服务架构就是按照功能粒度将业务模块进行垂直拆分,对单体应用本身进行服务化和组件化,每个组件单独部署为小应用(从DB
到UI
)。微服务与微服务之间通过Service API
进行交互,同时为了支持水平扩展、性能提升和服务可用性,单个服务允许同时部署一个或者多个服务实例。在运行时,每个实例通常是一个云虚拟机或者Docker
容器。
微服务系统内部多个服务的实例之间如何通信?如何感知到彼此的存在和销毁?生产者服务如何知道消费者服务的地址?如何实现服务与注册中心的解耦?这就需要一个第三方的服务注册中心,提供对生产者服务节点的注册管理和消费者服务节点的发现管理。