javascript
SpringCloud 入门教程(四): 分布式环境下自动发现配置服务
前一章, 我們的Hello world應(yīng)用服務(wù),通過配置服務(wù)器Config Server獲取到了我們配置的hello信息“hello world”. 但自己的配置文件中必須配置config server的URL(http://localhost:8888), 如果把config server搬到另外一個獨(dú)立IP上, 那么作為一個client的hello world應(yīng)用必須修改自己的bootstrap.yml中的config server的URL地址。這明顯是不夠方便的。
既然config server已經(jīng)注冊到了eureka服務(wù)中心,能否讓服務(wù)中心自動幫hello world應(yīng)用找到它需要的config server呢? 答案是肯定的。我們的hello world應(yīng)用只需要提供它需要的配置所在在的config server的名字就可以了, 在前面例子中,配置服務(wù)的名字就是“config-server”。那我們現(xiàn)在就把之前的服務(wù)和應(yīng)用稍作修改, 來達(dá)到自動發(fā)現(xiàn)服務(wù)的方案。下圖是Spring Cloud提供的服務(wù)發(fā)現(xiàn)機(jī)制。Config-server是其中的Service Provider, Config-client是Service Consumer, 它們都注冊到服務(wù)中心Eureka Server。
1. 將config-server注冊到服務(wù)中心
config-server本身就是一個Spring Boot應(yīng)用, 可以直接參考Spring Cloud 入門教程(一): 服務(wù)注冊, 將config-server注冊到eureka server中。訪問http://localhost:8761, 可以看到我們的config-server已經(jīng)注冊。
2. 修改hello world應(yīng)用的配置
1).同樣,需要將Hello 我讓你的應(yīng)用注冊到eureka?服務(wù)中心, 配置方法同前面一樣, 不在贅述。
2).修改配置文件,將config-server的URL硬編碼機(jī)制改成,通過服務(wù)中心根據(jù)名字自動發(fā)現(xiàn)機(jī)制, 修改bootstrap.yml
1 eureka:2 client:3 serviceUrl:4 defaultZone: http://localhost:8761/eureka/5 spring:6 application:7 name: config-client8 cloud:9 config: 10 label: master 11 profile: dev 12 # uri: http://localhost:8888/ 13 discovery: 14 enabled: true 15 serviceId: config-server 16 management: 17 security: 18 enabled: false 19 server: 20 port: 8881我們注釋掉了硬編碼的config-server的URL配置, 取而代之的是服務(wù)注冊中心的地址http://localhost:8761/eureka/以及配置服務(wù)的名字“config-server”, 同時打開自動發(fā)現(xiàn)機(jī)制discovery.enable = true. 我們在運(yùn)行一下hello world應(yīng)用, 可以發(fā)現(xiàn), GIT里面的內(nèi)容依然可以訪問。此時我們的hello world應(yīng)用已經(jīng)完全不知道配置服務(wù)的地址,也不知道配置的內(nèi)容, 所有這些都通過服務(wù)注冊中心自動發(fā)現(xiàn)。
3. ?當(dāng)服務(wù)很多時,都需要同時從配置中心讀取文件的時候,這時我們可以考慮將配置中心做成一個微服務(wù),并且將其集群化,從而達(dá)到高可用,架構(gòu)圖如下:
?
?
?
參考資料:http://blog.csdn.net/forezp/article/details/70037513
? ? ? ? ? ? ? ? ? ?http://blog.sina.com.cn/s/blog_493a84550102wkp2.html
總結(jié)
以上是生活随笔為你收集整理的SpringCloud 入门教程(四): 分布式环境下自动发现配置服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hi3516A开发--接触
- 下一篇: springboot热部署失效解决