上一篇中讲到,如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用 Webhook 的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了。使用 Spring Cloud Bus 可以完美解决这一问题。

服务端

新建一个spring boot项目,命名 service-config-server-bus

POM 配置

 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
8 </dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>

配置文件

application.yml 内容如下

server:
port: 9300
spring:
application:
name: service-config-server-bus
cloud:
config:
server:
git:
uri: https://github.com/carry-chan/spring-cloud # 配置git仓库的地址
search-paths: config-repo # git仓库地址下的相对地址,可以配置多个,用,分割。
bus:
enabled: true
trace:
enabled: true
rabbitmq:
addresses: 192.168.68.100
port: 5672
username: test
password: 123456
eureka:
client:
serviceUrl:
defaultZone: http://admin:123456@localhost:8761/eureka/
management:
endpoints:
web:
exposure:
include: bus-refresh

启动类

 package com.carry.springcloud;

 import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer; @SpringBootApplication
@EnableConfigServer
public class ServiceConfigClientBusApplication { public static void main(String[] args) {
SpringApplication.run(ServiceConfigClientBusApplication.class, args);
}
}

客户端

新建spring boot项目 service-config-client-bus

POM 配置

 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>

配置文件

application.yml

server:
port: 9401
spring:
application:
name: service-config-client
cloud:
bus:
enabled: true
trace:
enabled: true
rabbitmq:
addresses: 192.168.68.100
port: 5672
username: test
password: 123456

bootstrap.yml

spring:
cloud:
config:
name: config-server # 对应 {application} 部分
profile: dev # 对应 {profile} 部分
label: master # 对应 {label} 部分,即 Git 的分支。如果配置中心使用的是本地存储,则该参数无用
discovery:
enabled: true
service-id: service-config-server-bus #springcloud config的服务名
eureka:
client:
serviceUrl:
defaultZone: http://admin:123456@localhost:8761/eureka/

控制层Controller

 package com.carry.springcloud;

 import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Mono; @RestController
@RefreshScope
public class ClientController { @Value("${info.profile}")
private String profile; @GetMapping("/info")
public Mono<String> hello() {
return Mono.justOrEmpty(profile);
}
}

@RefreshScope必须加,否则客户端会受到服务端的更新消息,但是更新不了,因为不知道更新哪里的,至于启动主类,用默认生成的不用改。

测试

分别启动 eureka-server、service-config-server-bus 和两个 service-config-client-bus

启动后,RabbitMQ 中会自动创建一个 topic 类型的 Exchange 和两个以springCloudBus.anonymous.开头的匿名 Queue

我们用Postman发生请求 http://localhost:9400/info 和 http://localhost:9401/info 返回内容的都是dev

将 Git 中的配置信息由dev改为dev bus,并执行POST  http://localhost:9300/actuator/bus-refresh 之后,再请求 http://localhost:9400/info 和 http://localhost:9401/info ,返回dev bus 说明成功了。

服务端在刷新接口产生的的日志:

2018-08-31 16:50:43.182  INFO 18112 --- [nio-9300-exec-9] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [192.168.68.100:5672]
2018-08-31 16:50:43.211 INFO 18112 --- [nio-9300-exec-9] o.s.a.r.c.CachingConnectionFactory : Created new connection: rabbitConnectionFactory.publisher#1322bcdc:0/SimpleConnection@1799d006 [delegate=amqp://test@192.168.68.100:5672/, localPort= 52394]
2018-08-31 16:50:43.225 INFO 18112 --- [nio-9300-exec-9] o.s.amqp.rabbit.core.RabbitAdmin : Auto-declaring a non-durable, auto-delete, or exclusive Queue (springCloudBus.anonymous.91dZPs4ITESmKzjJHBhVoA) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost.
2018-08-31 16:50:44.299 INFO 18112 --- [nio-9300-exec-9] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2018-08-31 16:50:44.374 INFO 18112 --- [nio-9300-exec-9] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@1c63e07d: startup date [Fri Aug 31 16:50:44 CST 2018]; root of context hierarchy
2018-08-31 16:50:44.399 INFO 18112 --- [nio-9300-exec-9] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2018-08-31 16:50:44.416 INFO 18112 --- [nio-9300-exec-9] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a801f44] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-08-31 16:50:45.541 INFO 18112 --- [nio-9300-exec-9] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2018-08-31 16:50:45.565 INFO 18112 --- [nio-9300-exec-9] o.s.boot.SpringApplication : No active profile set, falling back to default profiles: default
2018-08-31 16:50:45.567 INFO 18112 --- [nio-9300-exec-9] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@1539f21d: startup date [Fri Aug 31 16:50:45 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1c63e07d
2018-08-31 16:50:45.569 INFO 18112 --- [nio-9300-exec-9] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2018-08-31 16:50:45.578 INFO 18112 --- [nio-9300-exec-9] o.s.boot.SpringApplication : Started application in 2.337 seconds (JVM running for 2768.887)
2018-08-31 16:50:45.578 INFO 18112 --- [nio-9300-exec-9] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@1539f21d: startup date [Fri Aug 31 16:50:45 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1c63e07d
2018-08-31 16:50:45.579 INFO 18112 --- [nio-9300-exec-9] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@1c63e07d: startup date [Fri Aug 31 16:50:44 CST 2018]; root of context hierarchy
2018-08-31 16:50:45.707 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Shutting down DiscoveryClient ...
2018-08-31 16:50:45.709 INFO 18112 --- [nio-9300-exec-9] o.s.c.n.eureka.InstanceInfoFactory : Setting initial instance status as: STARTING
2018-08-31 16:50:48.673 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Unregistering ...
2018-08-31 16:50:48.693 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : DiscoveryClient_SERVICE-CONFIG-SERVER-BUS/localhost:service-config-server-bus:9300 - deregister status: 200
2018-08-31 16:50:48.727 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Completed shut down of DiscoveryClient
2018-08-31 16:50:48.736 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Initializing Eureka in region us-east-1
2018-08-31 16:50:48.741 INFO 18112 --- [nio-9300-exec-9] c.n.d.provider.DiscoveryJerseyProvider : Using JSON encoding codec LegacyJacksonJson
2018-08-31 16:50:48.741 INFO 18112 --- [nio-9300-exec-9] c.n.d.provider.DiscoveryJerseyProvider : Using JSON decoding codec LegacyJacksonJson
2018-08-31 16:50:48.741 INFO 18112 --- [nio-9300-exec-9] c.n.d.provider.DiscoveryJerseyProvider : Using XML encoding codec XStreamXml
2018-08-31 16:50:48.741 INFO 18112 --- [nio-9300-exec-9] c.n.d.provider.DiscoveryJerseyProvider : Using XML decoding codec XStreamXml
2018-08-31 16:50:48.865 INFO 18112 --- [nio-9300-exec-9] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2018-08-31 16:50:48.865 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Disable delta property : false
2018-08-31 16:50:48.865 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Single vip registry refresh property : null
2018-08-31 16:50:48.866 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false
2018-08-31 16:50:48.866 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Application is null : false
2018-08-31 16:50:48.866 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : true
2018-08-31 16:50:48.866 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Application version is -1: true
2018-08-31 16:50:48.866 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2018-08-31 16:50:48.870 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : The response status is 200
2018-08-31 16:50:48.871 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Starting heartbeat executor: renew interval is: 30
2018-08-31 16:50:48.873 INFO 18112 --- [nio-9300-exec-9] c.n.discovery.InstanceInfoReplicator : InstanceInfoReplicator onDemand update allowed rate per min is 4
2018-08-31 16:50:48.874 INFO 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1535705448874 with initial instances count: 3
2018-08-31 16:50:48.877 INFO 18112 --- [nio-9300-exec-9] o.s.c.n.e.s.EurekaServiceRegistry : Unregistering application service-config-server-bus with eureka with status DOWN
2018-08-31 16:50:48.877 INFO 18112 --- [nio-9300-exec-9] o.s.c.n.e.s.EurekaServiceRegistry : Registering application service-config-server-bus with eureka with status UP
2018-08-31 16:50:48.877 WARN 18112 --- [nio-9300-exec-9] com.netflix.discovery.DiscoveryClient : Saw local status change event StatusChangeEvent [timestamp=1535705448877, current=UP, previous=DOWN]
2018-08-31 16:50:48.878 INFO 18112 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_SERVICE-CONFIG-SERVER-BUS/localhost:service-config-server-bus:9300: registering service...
2018-08-31 16:50:48.880 INFO 18112 --- [nio-9300-exec-9] o.s.cloud.bus.event.RefreshListener : Received remote refresh request. Keys refreshed []
2018-08-31 16:50:48.886 INFO 18112 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_SERVICE-CONFIG-SERVER-BUS/localhost:service-config-server-bus:9300 - registration status: 204
2018-08-31 16:50:49.161 INFO 18112 --- [io-9300-exec-10] .c.s.e.MultipleJGitEnvironmentRepository : Fetched for remote master and found 1 updates
2018-08-31 16:50:50.235 INFO 18112 --- [io-9300-exec-10] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2018-08-31 16:50:50.291 INFO 18112 --- [io-9300-exec-10] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@2a199145: startup date [Fri Aug 31 16:50:50 CST 2018]; root of context hierarchy
2018-08-31 16:50:50.293 INFO 18112 --- [io-9300-exec-10] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2018-08-31 16:50:50.298 INFO 18112 --- [io-9300-exec-10] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/C:/Users/ADMINI~1/AppData/Local/Temp/config-repo-4017042254956212660/config-repo/config-server-dev.yml
2018-08-31 16:50:50.298 INFO 18112 --- [io-9300-exec-10] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@2a199145: startup date [Fri Aug 31 16:50:50 CST 2018]; root of context hierarchy
2018-08-31 16:50:52.554 INFO 18112 --- [nio-9300-exec-1] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2018-08-31 16:50:52.605 INFO 18112 --- [nio-9300-exec-1] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@2013736a: startup date [Fri Aug 31 16:50:52 CST 2018]; root of context hierarchy
2018-08-31 16:50:52.611 INFO 18112 --- [nio-9300-exec-1] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2018-08-31 16:50:52.616 INFO 18112 --- [nio-9300-exec-1] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/C:/Users/ADMINI~1/AppData/Local/Temp/config-repo-4017042254956212660/config-repo/config-server-dev.yml
2018-08-31 16:50:52.616 INFO 18112 --- [nio-9300-exec-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@2013736a: startup date [Fri Aug 31 16:50:52 CST 2018]; root of context hierarchy

客户端在刷新接口产生的的日志:

2018-08-31 16:50:28.853  INFO 9324 --- [trap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver      : Resolving eureka endpoints via configuration
2018-08-31 16:50:44.332 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2018-08-31 16:50:44.379 INFO 9324 --- [9uOLZV0TWJm8g-1] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@6f60de07: startup date [Fri Aug 31 16:50:44 CST 2018]; root of context hierarchy
2018-08-31 16:50:44.439 INFO 9324 --- [9uOLZV0TWJm8g-1] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2018-08-31 16:50:44.464 INFO 9324 --- [9uOLZV0TWJm8g-1] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$8ecaf823] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-08-31 16:50:45.555 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2018-08-31 16:50:45.572 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.c.n.eureka.InstanceInfoFactory : Setting initial instance status as: STARTING
2018-08-31 16:50:45.584 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Initializing Eureka in region us-east-1
2018-08-31 16:50:45.590 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.provider.DiscoveryJerseyProvider : Using JSON encoding codec LegacyJacksonJson
2018-08-31 16:50:45.590 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.provider.DiscoveryJerseyProvider : Using JSON decoding codec LegacyJacksonJson
2018-08-31 16:50:45.590 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.provider.DiscoveryJerseyProvider : Using XML encoding codec XStreamXml
2018-08-31 16:50:45.590 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.provider.DiscoveryJerseyProvider : Using XML decoding codec XStreamXml
2018-08-31 16:50:45.719 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2018-08-31 16:50:45.720 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Disable delta property : false
2018-08-31 16:50:45.720 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Single vip registry refresh property : null
2018-08-31 16:50:45.720 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false
2018-08-31 16:50:45.720 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Application is null : false
2018-08-31 16:50:45.720 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : true
2018-08-31 16:50:45.720 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Application version is -1: true
2018-08-31 16:50:45.720 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2018-08-31 16:50:45.724 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : The response status is 200
2018-08-31 16:50:45.725 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Not registering with Eureka server per configuration
2018-08-31 16:50:45.726 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1535705445726 with initial instances count: 3
2018-08-31 16:50:46.804 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2018-08-31 16:50:46.833 INFO 9324 --- [9uOLZV0TWJm8g-1] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:9300/
2018-08-31 16:50:52.619 INFO 9324 --- [9uOLZV0TWJm8g-1] c.c.c.ConfigServicePropertySourceLocator : Located environment: name=config-server, profiles=[dev], label=master, version=34046e96c2c637976b412e1af36e2dc87d713849, state=null
2018-08-31 16:50:52.619 INFO 9324 --- [9uOLZV0TWJm8g-1] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='configService', propertySources=[MapPropertySource {name='configClient'}, MapPropertySource {name='https://github.com/carry-chan/spring-cloud/config-repo/config-server-dev.yml'}]}
2018-08-31 16:50:52.621 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.boot.SpringApplication : No active profile set, falling back to default profiles: default
2018-08-31 16:50:52.624 INFO 9324 --- [9uOLZV0TWJm8g-1] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@7205494f: startup date [Fri Aug 31 16:50:52 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6f60de07
2018-08-31 16:50:52.635 INFO 9324 --- [9uOLZV0TWJm8g-1] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2018-08-31 16:50:52.664 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.boot.SpringApplication : Started application in 9.372 seconds (JVM running for 2744.746)
2018-08-31 16:50:52.665 INFO 9324 --- [9uOLZV0TWJm8g-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@7205494f: startup date [Fri Aug 31 16:50:52 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6f60de07
2018-08-31 16:50:52.665 INFO 9324 --- [9uOLZV0TWJm8g-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@6f60de07: startup date [Fri Aug 31 16:50:44 CST 2018]; root of context hierarchy
2018-08-31 16:50:52.666 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Shutting down DiscoveryClient ...
2018-08-31 16:50:52.671 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Completed shut down of DiscoveryClient
2018-08-31 16:50:52.778 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Shutting down DiscoveryClient ...
2018-08-31 16:50:52.785 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.c.n.eureka.InstanceInfoFactory : Setting initial instance status as: STARTING
2018-08-31 16:50:55.789 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Unregistering ...
2018-08-31 16:50:55.800 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : DiscoveryClient_SERVICE-CONFIG-CLIENT/localhost:service-config-client:9400 - deregister status: 200
2018-08-31 16:50:55.844 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Completed shut down of DiscoveryClient
2018-08-31 16:50:55.848 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Initializing Eureka in region us-east-1
2018-08-31 16:50:55.851 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.provider.DiscoveryJerseyProvider : Using JSON encoding codec LegacyJacksonJson
2018-08-31 16:50:55.851 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.provider.DiscoveryJerseyProvider : Using JSON decoding codec LegacyJacksonJson
2018-08-31 16:50:55.851 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.provider.DiscoveryJerseyProvider : Using XML encoding codec XStreamXml
2018-08-31 16:50:55.851 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.provider.DiscoveryJerseyProvider : Using XML decoding codec XStreamXml
2018-08-31 16:50:55.955 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2018-08-31 16:50:55.956 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Disable delta property : false
2018-08-31 16:50:55.956 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Single vip registry refresh property : null
2018-08-31 16:50:55.956 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false
2018-08-31 16:50:55.956 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Application is null : false
2018-08-31 16:50:55.956 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : true
2018-08-31 16:50:55.956 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Application version is -1: true
2018-08-31 16:50:55.956 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2018-08-31 16:50:55.959 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : The response status is 200
2018-08-31 16:50:55.960 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Starting heartbeat executor: renew interval is: 30
2018-08-31 16:50:55.962 INFO 9324 --- [9uOLZV0TWJm8g-1] c.n.discovery.InstanceInfoReplicator : InstanceInfoReplicator onDemand update allowed rate per min is 4
2018-08-31 16:50:55.963 INFO 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1535705455963 with initial instances count: 3
2018-08-31 16:50:55.966 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.c.n.e.s.EurekaServiceRegistry : Unregistering application service-config-client with eureka with status DOWN
2018-08-31 16:50:55.967 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.c.n.e.s.EurekaServiceRegistry : Registering application service-config-client with eureka with status UP
2018-08-31 16:50:55.967 WARN 9324 --- [9uOLZV0TWJm8g-1] com.netflix.discovery.DiscoveryClient : Saw local status change event StatusChangeEvent [timestamp=1535705455967, current=UP, previous=DOWN]
2018-08-31 16:50:55.967 INFO 9324 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_SERVICE-CONFIG-CLIENT/localhost:service-config-client:9400: registering service...
2018-08-31 16:50:55.969 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.cloud.bus.event.RefreshListener : Received remote refresh request. Keys refreshed [config.client.version, server.port, info.profile]
2018-08-31 16:50:55.973 INFO 9324 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_SERVICE-CONFIG-CLIENT/localhost:service-config-client:9400 - registration status: 204
2018-08-31 16:50:55.980 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.a.r.c.CachingConnectionFactory : Attempting to connect to: [192.168.68.100:5672]
2018-08-31 16:50:56.011 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.a.r.c.CachingConnectionFactory : Created new connection: rabbitConnectionFactory.publisher#1ce5511d:0/SimpleConnection@b4fc1ee [delegate=amqp://test@192.168.68.100:5672/, localPort= 52407]
2018-08-31 16:50:56.015 INFO 9324 --- [9uOLZV0TWJm8g-1] o.s.amqp.rabbit.core.RabbitAdmin : Auto-declaring a non-durable, auto-delete, or exclusive Queue (springCloudBus.anonymous.pFKC8gHGT9uOLZV0TWJm8g) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost.

Spring Cloud学习笔记【十】配置中心(消息驱动刷新配置)的更多相关文章

  1. Spring Cloud学习笔记【九】配置中心Spring Cloud Config

    Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分.其中服务端 ...

  2. Spring Cloud 学习笔记(一)——入门、特征、配置

    [TOC] 0 放在前面 0.1 参考文档 http://cloud.spring.io/spring-cloud-static/Brixton.SR7/ https://springcloud.cc ...

  3. Spring Cloud学习笔记-011

    分布式配置中心:安全保护 由于配置中心存储的内容比较敏感,做一定的安全处理是必需的.为配置中心实现安全保护的方式有很多,比如物理网络限制.OAuth2授权等.由于微服务应用和配置中心都构建与Sprin ...

  4. Spring Cloud学习笔记-010

    分布式配置中心:Spring Cloud Config Spring Cloud Config是Spring Cloud团队创建的一个全新的项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外 ...

  5. Spring Cloud学习笔记--Spring Boot初次搭建

    1. Spring Boot简介 初次接触Spring的时候,我感觉这是一个很难接触的框架,因为其庞杂的配置文件,我最不喜欢的就是xml文件,这种文件的可读性很不好.所以很久以来我的Spring学习都 ...

  6. Spring Cloud 学习笔记 (一)-- Eureka 服务器

    开局一张图,截取了本人学习资料中的一张图,很好地展示了Eureka的架构. Eureka服务器 管理服务的作用.细分为服务注册,服务发现. 所有的客户端在Eureka服务器上注册服务,再从Eureka ...

  7. Spring Cloud 学习笔记(二)——Netflix

    4 Spring Cloud Netflix Spring Cloud 通过自动配置和绑定到Spring环境和其他Spring编程模型惯例,为Spring Boot应用程序提供Netflix OSS集 ...

  8. Spring Cloud学习笔记-005

    服务消费者 之前已经搭建好了微服务中的核心组件——服务注册中心(包括单节点模式和高可用模式).也有了服务提供者,接下来搭建一个服务消费者,它主要完成两个目标,发现服务以及消费服务.其中,服务发现的任务 ...

  9. Spring Cloud学习笔记-007

    声明式服务调用:Spring Cloud Feign Feign基于Netflix Feign实现,整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两 ...

随机推荐

  1. vue+Element实现tree树形数据展示

    组件: Element(地址:http://element.eleme.io/#/zh-CN/component/tree):Tree树形控件 <el-tree ref="expand ...

  2. SSH框架下的多表增删改查

    下载地址:SSH框架下的多表增删改查 点击进入码云Git下载 点击进入CSDN下载 项目结构: 项目代码就不全部贴出来了,只贴下核心代码.需要项目的自己可以去下载. package com.atgui ...

  3. JavaScript学习——JS事件总结

    回顾之前已经使用过的事件 (onsubmit.onclick.onload.onfocus.onblur.onmouseover.onmouseout) onfocus/onblur:聚焦离焦事件,用 ...

  4. Net Core链接数据库

    原文 在Windows下,相信大家分分钟都可以搞定.而初次接触.net core + mysql可能需要注意些细节.首先打开vs2017新建一个asp.net core项目(选Web应用程序), 然后 ...

  5. php获取js里的参数

    php获取js的值有如下方式: 1.php echo出js文件得到返回值,在gamemap.js文件中输出参数. echo '<script type="text/javascript ...

  6. swift语言点评十-Value and Reference Types

    结论:value是拷贝,Reference是引用 Value and Reference Types Types in Swift fall into one of two categories: f ...

  7. 响应式流API的构建基础

    下面三个重要的概念是响应式流API的构建基础: 发布者是事件的发送方,可以向它订阅. 订阅者是事件订阅方. 订阅将发布者和订阅者联系起来,使订阅者可以向发布者发送信号. http://www.info ...

  8. 路飞学城-Python开发-第二章

    ''' 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家' ...

  9. 移动端mete设置

    <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang="zh-cmn-Hans"&g ...

  10. POJ-1062 昂贵的聘礼 有限制的最短路

    题目链接:https://cn.vjudge.net/problem/POJ-1062 题意 虽然是中文题,还是简单复述一下吧 我们想要酋长的女儿作为老婆.作为交换,酋长想要点钱. 酋长提出可以用其他 ...