SpringCloud Eureka的使用教程

什麼是Eureka

Eureka是Netfilx開源的一個用來實現微服務的註冊與發現的組件。它包含Server和Client兩部分。

為什麼要有Eureka

例如目前有兩個服務分別為服務A,服務B,我們可以在服務A調用服務B的接口地址完成調用,但是當服務間的調用關系復雜起來的時候,比如服務A還需要調用服務CDE,那麼服務A需要維護它調用的所有服務的地址,一旦地址的變更都需要手動去修改。

當使用瞭Eureka這樣的服務治理框架後,服務ABCDE可以一起註冊到EurekaServer服務上,直接通過服務名來調用其他服務。

Eureka的使用

通過Eureka,實現消費者服務80通過服務名調用服務提供者8001的接口。

cloud-eureka-server7001關鍵代碼

引入server依賴:

<!--eureka-server-->
<dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

server端配置:

eureka:
 instance:
 hostname: localhost
 client:
 register-with-eureka: false #false表示不向註冊中心註冊自己。
 fetch-registry: false #false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要去檢索服務
 service-url:
 #集群指向其它eureka
 defaultZone: http://eureka7002.com:7002/eureka/
 #單機就是7001自己
 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

啟動類註解:

@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7001
{
 public static void main(String[] args) {
   SpringApplication.run(EurekaMain7001.class, args);
 }
}

cloud-provider-payment8001關鍵代碼

引入client依賴:

<!--eureka-client-->
<dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

client端配置:

eureka:
 client:
 #表示是否將自己註冊進EurekaServer默認為true。
 register-with-eureka: true
 #是否從EurekaServer抓取已有的註冊信息,默認為true。單節點無所謂,集群必須設置為true才能配合ribbon使用負載均衡
 fetchRegistry: true
 service-url:
 defaultZone: http://localhost:7001/eureka

啟動類註解:

@SpringBootApplication
@EnableEurekaClient
public class PaymentMain8001 {
 public static void main(String[] args) {
  SpringApplication.run(PaymentMain8001.class, args);
 }
}

cloud-consumer-order80

關鍵代碼同服務提供者

通過服務名調用其他服務的接口(RestTemple記得要加@LoadBalanced,否則找不到服務名):

public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";
@GetMapping("/consumer/payment/get/{id}")
public CommonResult<Payment> getPayment(@PathVariable("id") Long id)
{
 return restTemplate.getForObject(PAYMENT_URL+"/payment/get/"+id,CommonResult.class);
}

如果使用Eureka集群

EurekaServer配置

#集群指向其它eureka
 defaultZone: http://eureka7002.com:7002/eureka/

服務Cient配置

# 集群
#defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #

總結

到此這篇關於SpringCloud Eureka使用的文章就介紹到這瞭,更多相關SpringCloud Eureka使用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: