微服务教程工程

Airhead 7af5c79b1e 增加发现服务和配置服务 7 gadi atpakaļ
configuration-server 7af5c79b1e 增加发现服务和配置服务 7 gadi atpakaļ
discovery-server 7af5c79b1e 增加发现服务和配置服务 7 gadi atpakaļ
hello-service 7af5c79b1e 增加发现服务和配置服务 7 gadi atpakaļ
.gitignore f54fe04124 Initial commit 7 gadi atpakaļ
LICENSE f54fe04124 Initial commit 7 gadi atpakaļ
README.md 7af5c79b1e 增加发现服务和配置服务 7 gadi atpakaļ
pom.xml 7af5c79b1e 增加发现服务和配置服务 7 gadi atpakaļ

README.md

微服务教程

本项目用于微服务技术的培训教程。

目前计划

  1. 发现服务
  2. 配置服务

发现服务

注册和发现服务我们使用eureka,按向导创建工程即可。

高可用

发现服务

eureka:
  instance:
    prefer-ip-address: true
    # peer1
    hostname: peer1
  client:
    service-url:
      default-zone: http://peer2:8762/eureka/

注册服务

eureka:
  client:
    service-url:
      defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/

配置服务

配置顺序

  1. -D Commandline
  2. class根目录下的bootstrap.yml
  3. 配置服务器中与当前application.name同名的配置文件application.name.yml
  4. 配置服务器中的application.yml
  5. 当前目录下的config子目录中的application.yml
  6. 当前目录下的application.yml
  7. class根目录下的config子目录中的application.yml
  8. class根目录下的application.yml

    配置更新

    引用Actuator

    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    

    增加@RefreshScope

    @RefreshScope从技术角度来说是可以更新有@Configuration注解的类,但可以引起未预期的问题。所以不建议两个注解一起使用。

    调用/refresh接口

    WebHook配置

    引入Spring cloud bus

    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
    

    调用/bus/refresh接口

启动顺序

  • 配置服务于发现服务启动的先后顺序是无关的,如果发现服务后启动,配置服务能正常启动,并尝试连接发现服务(报错)。
  • 微服务应用依赖于配置服务的正常使用,默认配置情况,无配置系统无法正常启动。
  • 配置更新,对于数据库等基础服务(一般使用了@Configuration)的配置有修改时,需要重启对应微服务。