整个工程依照Spring Boot
工程的目录结构创建,在com.consul.pusher
包下有四个类,其中ConsulApplication
的作用就不用说了,它是整个服务的启动类。剩下的三个类说明如下:
ConsulConfig
:提供加载配置到Consul
中的操作。它定义了一个私有的init
方法,这个方法被@PostConstruct
注解所标记,主要作用是在ConsulConfig
依赖注入完成之后读取指定配置文件,将文件里的配置信息推送到Consul
配置中心中。该方法在整个应用生命周期中只执行一次,定义为私有的主要是不允许外部调用,保证安全性
ConsulService
和ConsulServiceImpl
:ConsulServiceImpl
实现了ConsulService
接口,主要提供Consul
配置中心业务逻辑操作,它主要封装了Consul java client
的一些方法。
resources
目录下的bootstrap.yml
和application.yml
分别为微服务全局配置文件和业务信息配置文件。在服务启动期间,application.yml
配置文件的内容会被ConsulConfig
类的init
方法读取并推送到Consul
配置中心。在这里我们没有将bootstrap.yml
的文件内容推送到Consul
配置中心,主要是考虑到:
bootstrap.yml
里定义的配置信息不经常修改
Spring Boot
天生不支持动态修改数据库、ES
连接信息。bootstrap.yml
里的定义的数据库连接、ES
集群等信息通过Consul
配置中心修改后不能生效,还需要重启应用才能生效。并且,需要修改数据库连接、ES
连接信息的场景的大部分是因为当前服务不可用产生的,服务的高可用不应由Consul
来维护
mvn clean package
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。