Euraka 是netfix開發的基于REST服務基于AP框架的注冊中心,主要是用于服務的注冊,管理,負載均衡,服務故障轉移?
Eureka主要分倆部分
Eureka Server:服務中心Server端,提供服務注冊 發現 健康檢查等服務
Eureka Client:服務提供者,啟動之后會向Eureka Server注冊自己的服務
搭建一個Eureka Server
在項目的pom文件中添加eureka server依賴
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
在啟動類上添加注解 @EnableEurekaServer 表示這是個EurekaServer服務
再添加上配置文件信息
server:port: 10010 spring:application:name: eureka-server eureka:instance:hostname: localhostclient:fetch-registry: false #表?是否從Eureka Server獲取注冊信息,默認為true.因為這是?個單點的Eureka Server,不需要同步其他的Eureka Server節點的數據,這?設置為falseregister-with-eureka: false #表?是否將??注冊到Eureka Server,默認為true.由于當前應?就是Eureka Server,故?設置為false.#設置與Eureka Server的地址, 查詢服務和注冊服務都需要依賴這個地址service-url:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
這樣當服務啟動之后 通過localhost:10010就能訪問到eureka的服務中心頁面
服務發現
添加依賴eureka client依賴
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
添加配置信息
spring:application:name: product-server # 注冊服務的名字 eureka:client:service-url:defaultZone: http://127.0.0.1:10010/eureka # 注冊中心的url
調用服務
使用DiscoveryClient來獲取到對應名字的服務 instance
調用的時候通過url調用
通過RestTemplate來發起http請求