SpringCloud五大神獸之Eureka
阿新 • • 發佈:2018-12-13
基本概念和方案
Eureka是基於REST(Representational State Transfer,代表性狀態傳輸)的服務,主要用於AWS雲中定位服務,以實現中間層伺服器的負載平衡和故障轉移。我們稱這個服務為Eureka伺服器。Eureka還帶有一個基於Java的客戶端元件,即Eureka客戶端,它使與服務的互動更容易。
Eureka-Server
1.pom引入依賴:
<dependencies> <!--eureka-server服務端 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <!-- 修改後立即生效,熱部署 --> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
2.配置檔案application.yml編寫
server: port: 7001 eureka: instance: hostname: eureka7001.com #eureka服務端的例項名稱 client: register-with-eureka: false #false表示不向註冊中心註冊自己。 fetch-registry: false #false表示自己端就是註冊中心,我的職責就是維護服務例項,並不需要去檢索服務 service-url: # defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #設定與Eureka Server互動的地址查詢服務和註冊服務都需要依賴這個地址(單機)。 defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
如果為單機的話則defaultZone那邊只需要一條即可,這邊為叢集環境。叢集環境下的其餘EurekaServer唯一不同在於配置檔案中的hostname和defaultZone,hostname為各自唯一,defaultZone為除了自身外的另外EurekaServer地址。
7002的application.yml:
server: port: 7002 eureka: instance: hostname: eureka7002.com #eureka服務端的例項名稱 client: register-with-eureka: false #false表示不向註冊中心註冊自己。 fetch-registry: false #false表示自己端就是註冊中心,我的職責就是維護服務例項,並不需要去檢索服務 service-url: # defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #設定與Eureka Server互動的地址查詢服務和註冊服務都需要依賴這個地址(單機)。 defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/
7003的application.yml:
server:
port: 7003
eureka:
instance:
hostname: eureka7003.com #eureka服務端的例項名稱
client:
register-with-eureka: false #false表示不向註冊中心註冊自己。
fetch-registry: false #false表示自己端就是註冊中心,我的職責就是維護服務例項,並不需要去檢索服務
service-url:
# defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #設定與Eureka Server互動的地址查詢服務和註冊服務都需要依賴這個地址(單機)。
defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7001.com:7001/eureka/
注意:3個application.yml的hostname都可用域名來表示,此例子在本機127.0.0.1測試,需要在host檔案做下域名對映:
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
127.0.0.1 eureka7003.com
3.啟動類編寫
package com.zhanghf;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* springcloudEureka
*
*/
@SpringBootApplication
@EnableEurekaServer
public class EurekaServer7001_App
{
public static void main( String[] args )
{
SpringApplication.run(EurekaServer7001_App.class,args);
}
}
4.檢視效果: