spring cloud : 服務註冊與發現(自動管理微服務地址)
目前的架構缺點如下:
1. 如果服務提供者provider的sort.port=8000 改成sort.port=8001,消費者consumer微服務就要修改http://localhost:8001而且需要重新發布兩個所有微服務。
2. Provider如果部署多個,消費者要跟著更新地址的工作量要成倍增加,而且容易配置錯誤。
ð Eureka (尤銳卡) 大家微服務註冊發現伺服器,架構如下:
圖說明:Eureka Client將微服務註冊到Eureka Server,定期向其傳送心跳(遠端call,傳送微服務例項),如果Eureka Server在90秒內沒接收到會登出此例項
1. Eureka Server
新建maven專案命名為tcloud-user-eurekaserver
1. 配置依賴
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" <modelVersion>4.0.0</modelVersion> <groupId> com.svw.tbox.tcloud.base</groupId> <artifactId>tcloud-user-eurekaserver</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>tcloud-user-eurekaserver</name <description>provider</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.3.RELEASE</version> <relativePath /> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies> <!-- 引入spring cloud的依賴 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR4</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> </project> |
2. 啟動類宣告
package com.svw.tbox.tcloud.base.eurekaserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class PateoEurekaServerApplication { public static void main(String[] args) { SpringApplication.run(PateoEurekaServerApplication.class, args); } } |
3. 配置屬性(application.yml)
server: port: 8100 eureka: client: registerWithEureka:false#是否註冊到server 本身是server 所以false fetchRegistry:false#是否從server獲取資訊,由於此處是單點server 所以不需要同步資訊 serviceUrl: defaultZone: http://localhost:8100/eureka/ #與server互動的地址 |
1. 新增依賴
tcloud-user-provider 的pom.xml中新增如下依賴包
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> |
<!-- 引入spring cloud的依賴 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR4</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> |
2. 新增application.yml
spring: application: name: tcloud-user-provider #註冊應用名 eureka: client: serviceUrl: defaultZone: http://localhost:8100/eureka/ instance: prefer-ip-address:true#註冊IP,而不是預設hostname |
3. 啟動類宣告為Eureka client
添加註解@EnableDiscoveryClient
@SpringBootApplication @MapperScan("com.svw.tbox.tcloud.user.provider.*")//掃描mybatis的持久化類 @EnableDiscoveryClient publicclass ProviderApplication { … |
4. 同樣配置tcloud-user-consumer客戶端為Eureka client
5. 效果
按照順序啟動如下服務:
tcloud-user-eurekaserver
=》tcloud-user-provider
=》tcloud-user-consumer
訪問Eureka server 地址http://localhost:8100/檢視所有微服務:
1. 高可用改造
原理:Eureka Server1和Eureka Server2 兩個例項相互註冊(增量同步資訊)
1. 修改主機名
開啟C:\Windows\System32\drivers\etc\hosts(Linux系統是/etc/hosts),新增如下一行語句:
127.0.0.1 pateo1 pateo2 |
2. 配置server相互註冊
修改tcloud-user-eurekaserver的application.yml
spring: application: name: tcloud-user-eurekaserver --- spring: profiles: pateo1 # 指定profile=pateo1 server: port: 8100 eureka: instance: hostname: pateo1 # 指定當profile=pateo1時,主機名是pateo1 client: serviceUrl: defaultZone: http://pateo2:8101/eureka/ # pateo1註冊到pateo2上 --- spring: profiles: pateo2 server: port: 8101 eureka: instance: hostname: pateo2 client: serviceUrl: defaultZone: http://pateo1:8100/eureka/ #pateo2註冊到pateo1 |
啟動兩個server例項:
PateoEurekaServerApplication類右擊 => run as => run configurations => Arguments =>Program arguments 新增引數 --spring.profiles.active=pateo1 點選執行 |
PateoEurekaServerApplication類右擊 => run as => run configurations => Arguments =>Program arguments 新增引數 --spring.profiles.active=pateo2 點選執行 |
3. 將client微服務註冊到Eureka Server叢集
將tcloud-user-consumer 和tcloud-user-provider的application.yml中
的eureka.client.serviceUrl.defaultZone改成兩個server的地址
eureka: client: serviceUrl: defaultZone: http://pateo1:8100/eureka/,http://pateo2:8101/eureka/ |
注意:分別註冊到server1或者server2上也行,因為此時sever之間是相互同步的
相關推薦
spring cloud : 服務註冊與發現(自動管理微服務地址)
目前的架構缺點如下:1. 如果服務提供者provider的sort.port=8000 改成sort.port=8001,消費者consumer微服務就要修改http://localhost:8001而且需要重新發布兩個所有微服務。2.
構建微服務架構Spring Cloud:服務註冊與發現(Eureka、Consul)
comm 簡介 foundry 架構 eas args 包含 什麽 其他 Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全
Spring Cloud 一:服務註冊與發現(Eureka)【Dalston版】
什麽是 pom 日誌 操作 prop ng- 通過 決策 target Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局
Spring Cloud ---- 服務註冊與發現(Eureka 找到了!找到了! 嘻嘻)
記錄一下吧,為什麼接觸分散式。因為裸辭之後沒有找到工作,好的公司都要求有分散式經驗,但是我完全沒有。在一次面試的時候,面試官說如果你會分散式架構的話,我可以把工資給你開高2.5,我就考慮著給我點時間,讓我學習這個狗東西。一個月後看學習效果再看我能不能拿到多了2.5的工資,面試官也就答應了。分散式之路就此開
Spring Cloud 入門教程1、服務註冊與發現(Eureka)
一、前言 1、什麼是Eureka? Eureka是Netflix開源的服務註冊與發現框架,Eureka由兩個元件組成:Eureka伺服器和Eureka客戶端。 Eureka Server提供服務註冊服務,各個節點啟動後,會在Eureka Server中進行註冊,這樣EurekaServer中的服務登
Spring Cloud構建微服務架構:服務註冊與發現(Eureka、Consul)
Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式。 Spring Cloud包含
Spring Cloud構建微服務架構:服務註冊與發現(Eureka)
1. Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了
Spring Cloud 基於Spring Boot 2.x的服務註冊與發現(Eureka)
一.Spring Cloud 簡介 Spring Cloud為開發人員提供了快速構建分散式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排,一次性令牌,全域性鎖定,領導選舉,分散式 會話,群集狀態)。 分散式系統的協調導致鍋
Spring Cloud 服務註冊與發現(一)
簡介: Spring Cloud是一個基於Spring Boot實現雲應用的開發工具。Spring Cloud 是Pivotal提供的用於簡化分散式系統構建的工具集。Spring Cloud引入了雲平 臺聯結器(Cloud Connector)和服務
Spring Cloud學習---服務註冊與發現(Eureka)
本博目錄: 一、 服務註冊與發現簡介 如何使用Spring Cloud搭建服務註冊與發現模組。 這裡我們會用到Spring Cloud Netflix,該專案是Spring Cloud的子專案之一,Eureka是Spring Cloud N
spring clould(一)服務註冊與發現(Eureka)
前言 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具。Spring cloud包含了很多子專案,用於解決我們服務開發中需要對面的問題,比如服務叢集、服務發現、斷路器、智慧路由。 本次開發專案中是用Spring Cloud Eureka實現在服務治理。
SpringCloud進擊 | 一淺出:服務註冊與發現(Eureka)【Finchley版本】
1.前言 Spring Cloud 已經幫我們實現了服務註冊中心,我們只需要很簡單的幾個步驟就可以完成。關於理論知識,我想大家都已經有不同程度上的瞭解和認識,這裡,我們最後再進行總結。本系列 Spring Cloud 介紹基於 Spring Boot 2.0.5 版本和 Spring C
關於SpringCloud微服務雲架構構建B2B2C電子商務平臺分析:服務註冊與發現(Eureka、Consul)
Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式。 Spring
SpringCloud教程一:服務註冊與發現(Eureka)
Spring CloudSpring Cloud為開發人員提供了快速構建分散式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排)。分散式系統的協調導致了樣板模式,
.NET微服務從0到1:服務註冊與發現(Consul)
[toc] # Consul搭建 ## 基於Docker搭建Consul *以下為單機環境構建指令碼,用於本機測試,生產環境中應當進行叢集搭建* ```yml version: '3' services: consul: image: consul:1.7.1 container_name
.Net Core微服務入門全紀錄(二)——Consul-服務註冊與發現(上)
# 前言 上一篇【[.Net Core微服務入門全紀錄(一)——專案搭建](https://www.cnblogs.com/xhznl/p/13071260.html)】講到要做到服務的靈活伸縮,那麼需要有一種機制來實現它,這個機制就是服務註冊與發現。當然這也並不是必要的,如果你的服務例項很少,並且很穩定,那
.Net Core微服務入門全紀錄(三)——Consul-服務註冊與發現(下)
# 前言 上一篇【[.Net Core微服務入門全紀錄(二)——Consul-服務註冊與發現(上)](https://www.cnblogs.com/xhznl/p/13091750.html)】已經成功將我們的服務註冊到Consul中,接下來就該客戶端通過Consul去做服務發現了。 # 服務發現 - 同
4--SpringCloud搭建高可用的服務註冊中心 1--SpringCloud的服務註冊與發現Eureka 1--SpringCloud的服務註冊與發現Eureka 1--SpringCloud的服務註冊與發現Eureka
我們已經介紹了1--SpringCloud的服務註冊與發現Eureka,其中,主要演示瞭如何構建和啟動服務註冊中心Eureka Server,以及如何將服務註冊到Eureka Server中,但是在之前的示例中,這個服務註冊中心是單點的,顯然這並不適合應用於線上生產環境,那麼下面在前文的基礎上,我們來看看
Spring Cloud(二):服務註冊與發現 Eureka【Finchley 版】
LEDE .com Go eureka clean 英文逗號 開始 效果 sam Spring Cloud(二):服務註冊與發現 Eureka【Finchley 版】 發表於 2018-04-15 | 更新於 2018-05-07 | 上一篇主要介紹了相關理論,這一
Spring Cloud (1) 服務的註冊與發現(Eureka)
我們 enable 微服務 啟動 分布式系 source string 新建 系統 Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理