摘要:服務治理上是由開源的一款基于的服務治理組件,包括及。由于種種原因,版本已經凍結開發,目前最新版本是年月份發布的版本。服務發現選型其中比較受眾關注的就是和這兩款產品,這兩款產品各有所長,各有所適,開發者可用按需選擇。
服務治理:Spring Cloud Eureka(上)
Netflix Eureka是由Netflix開源的一款基于REST的服務治理組件,包括Eureka Server及Eureka Client。由于種種原因,Eureka 2.x版本已經凍結開發,目前最新版本是2018年8月份發布的1.9.4版本。1. 服務發現 1.1 Eureka簡介
Spring Cloud Eureka是Pivotal公司為Netflix Eureka整合于Spring Cloud生態系統提供的版本。
Eureka是Netflix公司提供的開源服務發現組件(現已閉源),最新版本是1.9.4,該組件提供的服務發現可以為負載均衡、failover等提供支持。Eureka包括Eureka Server和Eureka Client。Eureka Server提供REST服務,Eureka Clinet多數是使用Java編寫的客戶端(Eureka Client可以使用其他語言編寫,比如Node.js或.NET),用于簡化和Eureka Server的交互。1.2 Eureka Server簡單案例
所有工程使用Spring Cloud的新版Greenwich.SR1和Maven構建。
1.2.1 創建Spring Cloud Eureka Server工程pom.xml內容如下:
4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.4.RELEASE watermelon.cloud eureka-server 0.0.1-SNAPSHOT eureka-server Spring Cloud Eureka Server 1.8 Greenwich.SR1 org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
Finchley版本之后,Eureka的depenecy片段稍微有點不同
1.2.2 開啟EurekaServer支持org.springframework.cloud spring-cloud-starter-eureka-server org.springframework.cloud spring-cloud-starter-netflix-eureka-server
在啟動類上加上@EnableEurekaServer注解。
@SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }1.2.3 修改application.yml配置文件
server: port: 1111 spring: application: name: eureka-server eureka: instance: hostname: localhost client: register-with-eureka: false fetch-registry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ server: waitTimeInMsWhenSyncEmpty: 0 enableSelfPreservation: false # 后面詳細講配置1.2.4 編譯、啟動
瀏覽器訪問http://localhost:1111/出現如下頁面就說明服務端簡單案例構建成功。
1.3 Eureka Client簡單案例 1.3.1 創建Eureka Client工程pom.xml內容如下:
1.3.2 啟動類啟用DiscoveryClient支持4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.4.RELEASE watermelon.cloud eureka-client 0.0.1-SNAPSHOT eureka-client Spring Cloud Eureka Client 1.8 Greenwich.SR1 org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
@SpringBootApplication @EnableDiscoveryClient public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }1.3.3 修改applicaiton.yml配置文件
server: port: 2222 spring: application: name: eureka-client # 如果不配置name屬性,在注冊中心的實例名都將是UNKNOWN eureka: client: serviceUrl: defaultZone: http://localhost:1111/eureka/ # 服務注冊中心地址1.3.4 HelloController簡單打印輸出
@RestController @Slf4j public class HelloController { private final DiscoveryClient client; @Autowired public HelloController(DiscoveryClient client) { this.client = client; } @GetMapping("/hello") public String sayHello() { List先啟動Eureka Server,再啟動Eureka Client,測試serviceInstances = client.getInstances("eureka-client"); serviceInstances.forEach(serviceInstance -> { log.info("Host: {}, Port: {}", serviceInstance.getHost(), serviceInstance.getPort()); log.info("serviceId: {}, InstanceId: {}", serviceInstance.getServiceId(), serviceInstance.getInstanceId()); }); return "Hello, Spring Cloud Eureka. - " + LocalDateTime.now().toString(); } }
訪問http://localhost:111/eureka/,如果Server和Client都啟動成功并且配置正確的情況將會如下情況。
訪問http://localhost:2222/hello/,會出現文字信息和日志輸出。
簡單的入門案例就此搭建結束,雖然沒實現什么功能,但是我們可以從服務注冊中心觀察到可用的Eureka Client實例,和在日志中打印服務實例的一些簡短信息。
1.4 Eureka Server的REST APIEureka 在 GitHub 的 wiki 上專門寫了一篇《 Eureka REST operations》來介紹 Eureka Server 的 REST API 接口,Spring Cloud Netfix Eureka 跟 Spring Boot 適配之后,提供的 REST API 與原始的 REST API 有一點點不同,其路徑中的 {version} 值固定為 eureka,其他的變化不大.
以下簡單演示apps的REST端點:訪問http://localhost:1111/eureka/apps,會得到以下返結果。
1 UP_1_ EUREKA-CLIENT localhost:eureka-client:2222 localhost EUREKA-CLIENT 192.168.91.1 UP UNKNOWN 2222 443 1 MyOwn 30 90 1557113978372 1557114128293 0 1557113978373 2222 http://localhost:2222/ http://localhost:2222/actuator/info http://localhost:2222/actuator/health eureka-client eureka-client false 1557113978373 1557113978278 ADDED
文末提供一些,服務發現選型對比,下篇文章介紹Eureka的核心類及其內容。
2. 服務發現選型
其中比較受眾關注的就是Eureka和Consul這兩款產品,這兩款產品各有所長,各有所適,開發者可用按需選擇。
個人微信公眾號,歡迎交流鴨!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74427.html
摘要:屬性對應服務注冊中心的配置內容,指定服務注冊中心的位置。項目是針對的服務治理實現。下面可以嘗試讓的服務提供者運行起來。我們可以用下面的命令啟動的開發模式服務端啟動完成之后,我們再將之前改造后的服務提供者啟動起來。 已經有非常長的時間沒有更新《Spring Cloud構建微服務架構》系列文章了,自從開始寫Spring Cloud的專題內容開始就獲得了不少的閱讀量和認可,當然也有一些批評...
摘要:服務續約在服務注冊完成之后,服務提供者需要維護一個心跳來告知注冊中心服務實例處于正常運行狀態中,防止注冊中心將正常的服務實例剔除出注冊中心。 Spring Cloud Eureka 目錄 前言 構建服務注冊中心 服務注冊與發現 Eureka的基礎架構 Eureka的服務治理機制 Eureka的配置 代碼地址 前言 服務治理 ?隨著微服務應用的不斷增加,靜態配置會越來越難以維護,并且...
摘要:下一篇介紹基于的服務注冊與調用。服務提供者工程配置這里服務提供者是使用之前進階教程第三篇整合連接池以及監控改造而來,這里一樣的部分就不再重復說明,下面將說明新增的部分。 Spring Cloud簡介 Spring Cloud是一個基于Spring Boot實現的云應用開發工具,它為基于JVM的云應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分...
摘要:下面的例子,我們將利用上一篇中構建的作為服務注冊中心作為服務提供者作為基礎。我們先來創建一個服務消費者工程,命名為。初始化,用來真正發起請求。注解用來將當前應用加入到服務治理體系中。 通過上一篇《Spring Cloud構建微服務架構:服務注冊與發現》,我們已經成功地將服務提供者:eureka-client或consul-client注冊到了Eureka服務注冊中心或Consul服務端...
閱讀 1170·2021-10-20 13:48
閱讀 2195·2021-09-30 09:47
閱讀 3107·2021-09-28 09:36
閱讀 2348·2019-08-30 15:56
閱讀 1201·2019-08-30 15:52
閱讀 2025·2019-08-30 10:48
閱讀 611·2019-08-29 15:04
閱讀 573·2019-08-29 12:54