springcloud21---Config-bus實現配置自動刷新
阿新 • • 發佈:2018-06-16
ref 存儲 刷新 ng- GC label frame fig pre
Pivotal(畢威拓)有VMware和EMC成立的.
RabbitMQ是由ERlang(愛立信開發的,面向並發的編程語言),安裝RabbitMQ先要安裝ERlang。
package com.itmuch.cloud; 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; @RestController//配置自動刷新,config server不用改,config client要改。 @RefreshScope //加入配置自動刷新註解,當配置發生更改的時候這個bean會 //各個微服務啟動了,config client已經加載配置了,即使config server掛了也可以。 public class ConfigClientController { @Value("${profile}") private String profile; @GetMapping("/profile") public String getProfile() { return this.profile; } }
package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
application.yml
server: port: 8082
bootstrap.yml
spring: cloud: config: #config server的地址 uri: http://localhost:8080 profile: dev label: master # 當configserver的後端存儲是Git時,默認就是master bus: trace: enabled: true application: name: foobar #連接rabbitmq rabbitmq: host: localhost port: 5672 username: guest password: guest
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.itmuch.cloud</groupId> <artifactId>microservice-spring-cloud</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>microservice-config-client-refresh</artifactId> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 配置自動刷新的依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> </dependencies> </project>
微服務之間的事務是分布式的事務(TCC,可靠事務的補償機制,最大努力型事務)。Eureka,zk,consul,etcd都是做服務發現的話是一樣的不同的產品而已。使用docker可以一次性啟動所有的微服務,java -jar一次只能啟動一個微服務。
調用鏈盡可能短,否則會出現超時。
www.itmuch.com
微服務之間可以通過http或者rpc方式調用。SOAP協議很重,微服務之間的可以跨平臺或者跨語言的。
客戶端側負載均衡:客戶端可以算出來命中哪個服務端,那麽服務端就沒必要做負載均衡了。
nanoservices:比微服務更小的納米服務框架。
Sidecar : 組件。
springcloud21---Config-bus實現配置自動刷新