javascript
SpringCloud-Eureka
原文:https://xsxy007.github.io/2019/10/SpringCloud-Eureka/
Eureka 是Netflix開源的一款提供服務(wù)注冊(cè)和發(fā)現(xiàn)的產(chǎn)品,提供了完整的Service Registery和Service Discovery實(shí)現(xiàn),也是SpringCloud體系中最核心的組件之一
Eureka
 由上邊的圖可以看出,Eureka由客戶端和服務(wù)端組成,服務(wù)用用于服務(wù)的注冊(cè)服務(wù)器,客戶端用作服務(wù)的提供者和發(fā)現(xiàn)者
案例
git@github.com:xsxy007/springcloud-demo.git
Eureka Server
springboot 已經(jīng)很好的支持了Eureka,只需要在pom中加入Eureka依賴,并在Application啟動(dòng)類中加上相關(guān)注解即可
1、pom依賴添加
本次使用的springboot版本為2.1.9;springcloud版本為Greenwich.RELEASE
以下列出了所有的依賴(ps:一開始因?yàn)閟pringcloud和springboot的版本依賴問題,導(dǎo)致項(xiàng)目一直啟動(dòng)報(bào)錯(cuò))
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Greenwich.RELEASE</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>2、在啟動(dòng)類上加注解@EnableEurekaServer注解
@SpringBootApplication @EnableEurekaServer public class SpringcloudDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringcloudDemoApplication.class, args);} }3、配置文件
在默認(rèn)配置下,該注冊(cè)中心會(huì)將自己作為客戶端嘗試注冊(cè)自己,因此在單機(jī)的注冊(cè)中心時(shí),需要將此機(jī)制關(guān)閉掉
server:port: 8761 # 使用的是默認(rèn)的端口 spring:application:name: eureka-server eureka:client:register-with-eureka: falsefetch-registry: falseservice-url:defaultZone: http://localhost:${server.port}/eureka/eureka.client.register-with-eureka:表示是否將自己注冊(cè)的eureka server,默認(rèn)為true
eureka.client.fetch-registry:表示是否從eureka server上拉取注冊(cè)信息,默認(rèn)為true
eureka.client.service-url.defaultZone:表示注冊(cè)中心的地址(默認(rèn)為localhost:8761/eureka/)
4、啟動(dòng)項(xiàng)目
啟動(dòng)項(xiàng)目后訪問localhost:8761 即可顯示如下頁(yè)面,此時(shí) Instances current Registers里邊并沒有內(nèi)容
?
集群配置
簡(jiǎn)單的集群,只要將各個(gè)注冊(cè)中心相互配置即可
eureka.client.serviceUrl.defaultZone=http://域名:/${server.port}/eureka/,http://域名:/${server.port}/eureka/ 請(qǐng)其他注冊(cè)中心的地址配置的defaultZone中
源碼分析
從啟動(dòng)類注解開始 @EnableEurekaServer
- 可以注意注釋中的EurekaServerAutoConfiguration,該類就是EurekaServer的自動(dòng)配置類
 
- 再看上邊注解類上有一個(gè) @Import(EurekaServerMarkerConfiguration.class),進(jìn)入該類查看
 
- 查看 EurekaServerAutoConfiguration(該類是在通過Springboot的@EnableAutoconfiguration 來加載spring.factories中的類的)
 
- 注意 EurekaServerInitializerConfiguration 類,該類實(shí)現(xiàn)了lifecycle接口,所以會(huì)被spring容器毀掉start方法
 
參考: https://blog.csdn.net/cuixhao110/article/details/88353714
總結(jié)
以上是生活随笔為你收集整理的SpringCloud-Eureka的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: java中延迟任务的处理方式
 - 下一篇: SpringBoot-SpringClo