Spring Cloud註冊中心——Eureka&集群
Eureka
做微服務,註冊中心是少不了的,之前用Dubbo的時候用的是Zookeeper,Spring Cloud也有自己的註冊中心——Eureka。
Eureka註冊中心
按照之前的文章《極簡Spring Boot搭建、開發、部署》在http://start.spring.io 構建一個Spring Boot工程,dependencies選web、Eureka Server。
pom.xml:
重要配置如下:
1
2
3
4
5
代碼&配置:
結構:
代碼結構
啟動類:
啟動類
簡單至極,就加上@EnableEurekaServer即可,沒其他代碼了。
application.yml:
配置文件
說明:
埠號就不解釋了。
A, 可以不配置,在eureka的監控頁面上有個environment,會顯示test。
B, hostname也可以不配置,在D上直接寫死即可,不過後面我們會配置Eureka集群,這裡最好還是配上,當然不會是localhost了。
C, 因為我們這個是服務端,所以自己不會去註冊自己。下面我們會寫需要註冊的服務,這兩個必須是true。
D,可以寫死。
直接啟動,訪問http://127.0.0.1:8864,會看到以下頁面:
監控頁面
注意紅框。
Eureka客戶端
需要註冊的服務,去http://start.spring.io 構建一個Spring Boot工程,dependencies選web、Eureka Discovery。
pom.xml:
與註冊中心基本相同,區別如下:
pom
代碼&配置:
啟動類
就加一個@EnableDiscoveryClient註解即可。
application.yml
A, 服務名。
B, 需要向註冊中心註冊,且讀取註冊信息。
C, 註冊中心的url。
先啟動註冊中心,再啟動本服務,訪問http://127.0.0.1:8864,監控頁面如下:
監控頁面
已經註冊進去了,其他服務就可以調用了。
還有一些配置,比如心跳發送間隔、註冊中心多久沒收到心跳就剔除服務等,大家可以自己查詢API。
Eureka註冊中心集群
單節點的註冊中心開發環境中還可以,生產環境就得上高可用了。
程序代碼不需要改,但是要部署到不同的伺服器或虛擬機或Docker上,IP、Hostname肯定不一樣了。要麼是打包之後修改配置文件,要麼是配置好配置文件,在啟動的時候指定。
規劃:
規劃
先在三台伺服器中修改hosts,把ip和hostname對應上。別忘了把防火牆中相應的埠打開。
配置文件:
修改application.yml,內容如下:
server1
server2
server3
具體就不解釋了,都看得懂。
啟動&測試:
打包之後,分別上傳到伺服器中,使用以下命令啟動:
java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=eurekaserver1
java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=eurekaserver2
java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=eurekaserver3
在我們的Windows系統中,如果也配置了hosts,可以通過hostname:port來訪問,如果沒有,就直接訪問ip地址。
三個監控頁面如下:
server1
server2
server3
客戶端配置:
只需要把defaultZone一個URL地址改成三個即可,用,分隔。
啟動服務之後,可以刷新一下Eureka的三個監控頁面,客戶端已經註冊進去了。
下一篇講網關Zuul,如果時間夠就把負載(Ribbon)一起講了,不夠就再下一篇
※極簡Spring Boot搭建、開發、部署
※對於Zookeeper一些面試題自己的答案
※對於Dubbo一些面試題自己的答案
※Dubbo消費者提供者簡單例子
※Java單例模式的學習筆記
TAG:Java個人學習心得 |
※深入 JVM 分析 spring-boot 應用 hibernate-validatorNoClassDefFoundError
※Spring中BeanFactory和ApplicationContext 的區別
※Spring Security 5.0 的 DelegatingPasswordEncoder 詳解
※網關 Spring-Cloud-Gateway 源碼解析——路由之RouteDefinitionLocator一覽
※SpringCloud實現Eureka集群配置
※Spring整合Hibernate.Final
※Spring security + oauth2.0 + redis + mybatis plus 搭建微服務
※深入 SpringBoot : 怎樣排查 expectedsinglematchingbeanbutfound 2 的異常
※Spring Cloud Alibaba Sentinel 整合 Feign 的設計實現
※SpringBoot:SpringDataRedis緩存改造
※使用Spring Cloud和Reactor在微服務中實現Event Sourcing
※spring cloud netflix:斷路器之Hystrix Dashboard
※回顧La Perla』s spring/summer 2018 collections at The Venetian
※spring-cloud 服務網關中的 Timeout 設置
※Spring Boot 配置文件 yml與properties
※Spring Cloud Gateway的After路由斷言工廠
※Spring Cloud服務發現與服務註冊Eureka + Eureka Server的搭建
※Spring data MongoDB 之 MongoRepository
※乾貨——Spring-Security-Mybatis-Demo
※SpringCloud統一配置中心Config Client