前言
看這篇文章之前,請閱讀
https://blog.csdn.net/dtttyc/article/details/88807094
設置Eureka的info信息
設置info信息主要是查看,註冊到Eureka的服務的具體信息是什麼,在服務提供者配置
info:
app.name: atguigu-microserviceccloud
company.name: www.atguigu.com
build.artifactId: $project.artifactId$
build.version: $project.version$
Eureka自我保護機制
Eureka自我保護機制指的是當Eureka服務端發現沒有服務的時候,或者檢測不到心跳的時候微服務不健康,或者已經宕機,不會把該節點丟棄,反而會保存起來, 當下次恢復的時候可以繼續使用, 提高了高可用機制
如果進制自我保護機制
Eureka.server.enable-self-preservation=fasle
Eureka服務自我發現
提供者把服務註冊到Eureka服務端,當然得有服務消費和發現
//在springbootapplication ,啓動方法上
@EnableDiscoveryClient // 服務發現
@Autowired
private DiscoveryClient client;
//List裏面存儲的就是所有的註冊到Eureka的服務
List<String> list = client.getServices();
Eureka集羣配置
集羣保證的是高可用,當一臺掛了之後,就可以切換到另一臺
- 更改域名
eureka:
instance:
hostname: eureka7001.com
# hostname: localhost #eureka服務端的實例名稱
- 更改爲集羣模式,各個節點都可以互相訪問
service-url:
defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
# defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ # 設置與Eureka server交互的地址查詢和註冊服務註冊都需要這個地址
- 提供者更改,提供者也是可以訪問集羣的各個節點,如果有有一臺掛了則切換到另一臺
eureka:
client: #客戶端註冊進eureka服務端列表內
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
Zookeeper與Eureka區別
區別就是: zookeeper使用的是CP, Eureka使用的是AP,Eureka在zookeeper的基礎之上改良了zookeeper的確點
- zookeeper有選舉機制,但是在選舉的這段時間之內是不可以訪問
- Eureka沒有選舉機制,如果一臺掛了,切換到另一臺, 註冊和查詢的時候也一樣
- zookeeper可能導致整個註冊服務癱瘓,但是Eureka不會.
什麼是CAS?
- 一致性
- 高可用
- 容錯性
Consistency 強一致性 Availability 高可用性 Partition tolerance 分區容錯性
對於任何一個分佈式系統都必須有的是容錯性,因爲數據傳輸的時候有網絡延遲,阻塞,其他情況,所以我們必須容錯性
對於CAS來說必須3者一定要符合兩個條件.所以就是CP和AP