# 微服务教程 本项目用于微服务技术的培训教程。 目前计划 1. 发现服务 1. 配置服务 # 发现服务 注册和发现服务我们使用eureka,按向导创建工程即可。 ## 高可用 ### 发现服务 ```yaml eureka: instance: prefer-ip-address: true # peer1 hostname: peer1 client: service-url: default-zone: http://peer2:8762/eureka/ ``` ### 注册服务 ```yaml eureka: client: service-url: defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/ ``` # 配置服务 ## 配置顺序 1. -D Commandline 1. class根目录下的bootstrap.yml 1. 配置服务器中与当前`application.name`同名的配置文件`application.name.yml` 1. 配置服务器中的`application.yml` 1. 当前目录下的`config`子目录中的`application.yml` 1. 当前目录下的`application.yml` 1. class根目录下的`config`子目录中的`application.yml` 1. class根目录下的`application.yml` ## 配置更新 ### 引用Actuator ```xml org.springframework.boot spring-boot-starter-actuator ``` ### 增加@RefreshScope `@RefreshScope`从技术角度来说是可以更新有`@Configuration`注解的类,但可以引起未预期的问题。所以不建议两个注解一起使用。 ### 调用/refresh接口 ### WebHook配置 ### 引入Spring cloud bus ```xml org.springframework.cloud spring-cloud-starter-bus-amqp ``` ### 调用/bus/refresh接口 # 启动顺序 - 配置服务于发现服务启动的先后顺序是无关的,如果发现服务后启动,配置服务能正常启动,并尝试连接发现服务(报错)。 - 微服务应用依赖于配置服务的正常使用,默认配置情况,无配置系统无法正常启动。 - 配置更新,对于数据库等基础服务(一般使用了`@Configuration`)的配置有修改时,需要重启对应微服务。