高可用註冊中心Eureka搭建
一、基礎環境
注:本次開發環境 為win10 ,部署環境均為centos7
1)jdk 1.8 (開發環境)
2)maven 3.5.2 (開發環境)
3)搭建私有registry (部署環境)
本次映象編譯伺服器使用
http://192.168.8.238:5678
registry中心使用
192.168.8.238:5000
4)註冊中心擬採用雙節點部署,分別為 http://192.168.8.235:8761/ 和http://192.168.8.237:8761/ 節點
二、搭建
1、新建一個maven專案 (開發環境)
a)pom.xml如下
<?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.wy</groupId> <artifactId>eureka_center</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>EurekaCenter</name> <description>Eureka Center for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <docker.repostory>192.168.8.238:5000</docker.repostory><!--配置映象倉庫的對應的地址與埠--> <docker.image.prefix>wy</docker.image.prefix><!--配置映象倉庫的屬性--> <docker.build>http://192.168.8.238:5678</docker.build><!--配置編譯伺服器地址和埠--> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR3</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <!--docker編譯外掛 --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <executions> <!--設定在執行maven 的install時構建映象--> <execution> <id>build-image</id> <phase>install</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <!--安裝了docker的主機,並且打開了api remote介面設定--> <dockerHost>${docker.build}</dockerHost> <pushImage>true</pushImage><!--設定上傳映象到私有倉庫,需要docker設定指定私有倉庫地址--> <!--映象名稱--> <imageName>${docker.repostory}/${docker.image.prefix}/${project.artifactId}:${project.version}</imageName> <!--映象的基礎版本--> <baseImage>java:openjdk-8-jdk-alpine</baseImage> <!--映象啟動引數--> <entryPoint>["sh", "-c", "java $PARAMS -jar /${project.build.finalName}.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> </project>
b)在src/main/java的某包下建立springboot程式入口類
package com.wy.eureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaCenterApplication { public static void main(String[] args) { SpringApplication.run(EurekaCenterApplication.class, args); } }
server:
port: 8761
spring:
application:
name: EUREKA-CENTER
security:
basic:
enabled: true
user:
name: abc
password: 123
eureka:
instance:
hostname: EurekaCenter1 #Eureka例項的主機名
prefer-ip-address: true
instance-id: ${spring.application.name}:${eureka.instance.hostname}:${spring.application.instance_id:${server.port}}
lease-renewal-interval-in-seconds: 30 #預設服務續約時間為30S
lease-expiration-duration-in-seconds: 90 #預設服務失效時間為90S ,eureka預設每隔60秒,會將清單內超時的(預設90秒)剔除掉。
ip-address: 192.168.8.235 #指定本服務ip
client:
serviceUrl:
defaultZone: http://abc: [email protected]:8761/eureka/ #Eureka節點相互註冊
register-with-eureka: true #向eureka註冊自己
fetch-registry: true #從Eureka獲取註冊資訊
registry-fetch-interval-seconds: 30 #預設客戶端清單更新時間為30秒(每個客戶端如不自行配置,預設為30秒)
eureka-service-url-poll-interval-seconds: 60 #輪詢Eureka服務端地址變更的時間間隔,預設為300秒,與配置中心結合動態重新整理serviceUrl時,需要調整該引數
server:
enable-self-preservation: false #不使用自我保護(自我保護預設開啟,Eureka伺服器15分鐘內心跳成功比例低於85%,則觸發自我保護機制,不剔除任何註冊的服務資訊,直至心跳成功數大於85%,本地頻繁除錯,故而關閉該功能)
peer-eureka-nodes-update-interval-ms: 60000 #叢集裡eureka節點的變化資訊更新的時間間隔
d)在src/main/resources下建立192.168.8.237:8761 節點的配置檔案,名為 application-peer2.yml server:
port: 8761
spring:
application:
name: EUREKA-CENTER
security:
basic:
enabled: true
user:
name: abc
password: 123
eureka:
instance:
hostname: EurekaCenter2 #Eureka例項的主機名
prefer-ip-address: true
instance-id: ${spring.application.name}:${eureka.instance.hostname}:${spring.application.instance_id:${server.port}}
lease-renewal-interval-in-seconds: 30 #預設服務續約時間為30S
lease-expiration-duration-in-seconds: 90 #預設服務失效時間為90S ,eureka預設每隔60秒,會將清單內超時的(預設90秒)剔除掉。
ip-address: 192.168.8.237
client:
serviceUrl:
defaultZone: http://abc:[email protected]:8761/eureka/ #Eureka節點相互註冊
register-with-eureka: true #向eureka註冊自己
fetch-registry: true #從Eureka獲取註冊資訊
registry-fetch-interval-seconds: 30 #預設客戶端清單更新時間為30秒(每個客戶端如不自行配置,預設為30秒)
eureka-service-url-poll-interval-seconds: 60 #輪詢Eureka服務端地址變更的時間間隔,預設為300秒,與配置中心結合動態重新整理serviceUrl時,需要調整該引數
server:
enable-self-preservation: false #不使用自我保護(自我保護預設開啟,Eureka伺服器15分鐘內心跳成功比例低於85%,則觸發自我保護機制,不剔除任何註冊的服務資訊,直至心跳成功數大於85%,本地頻繁除錯,故而關閉該功能)
peer-eureka-nodes-update-interval-ms: 60000 #叢集裡eureka節點的變化資訊更新的時間間隔
注:筆者採用直接指定了ip地址的方式,有興趣的小夥伴亦可以使用其他方式(如忽略指定名稱的網絡卡、正則表示式指定使用網路地址等)來確定多網絡卡下docker的IP選擇問題。
2、在專案路徑下執行編譯命令 (開發環境)
mvn install spring-boot:repackage3、部署 (部署環境)
在192.168.8.235執行: docker run -e PARAMS='-Dspring.profiles.active=peer1' -d -p 8761:8761 --restart=always 192.168.8.238:5000/wy/eureka_center:0.0.1-SNAPSHOT 在192.168.8.237執行: docker run -e PARAMS='-Dspring.profiles.active=peer2' -d -p 8761:8761 --restart=always 192.168.8.238:5000/wy/eureka_center:0.0.1-SNAPSHOT
三、驗證
分別訪問 http://192.168.8.235:8761/ 和http://192.168.8.237:8761/ ,登陸後可看到如下資訊:
可以看到,註冊中心已經相互註冊。(沒有相互註冊成功的話,檢查client.serviceUrl.defaultZone的地址對不對,然後防火牆有沒有拉下或者配置開放埠。)
相關推薦
高可用註冊中心Eureka搭建
一、基礎環境 注:本次開發環境 為win10 ,部署環境均為centos7 1)jdk 1.8 (開發環境) 2)maven 3.5.2 (開發環境) 3)搭建私有registry (部署環境)本次映象編譯伺服器使用 http://192.16
搭建 Spring Cloud Eureka Server 高可用註冊中心叢集
什麼是註冊中心 Eureka Server 在微服務中承擔的角色是服務註冊中心,也是最最基礎的核心設施之一。從“Eureka”單詞的含義**“我找到了!我發現了!”可以看出,其實 Eureka 就是用來實現服務註冊、服務發現的工具**,和 dubbo 這類的分散式服務治理框架類似。各
SpringBoot2.0 + SpringCloud Eureka搭建高可用註冊中心(Eureka之二)
上一篇中提到用SpringBoot2.0+Eureka搭建服務註冊中心和服務提供者,詳情參考: https://www.cnblogs.com/SysoCjs/p/10127448.html 現在講一下SpringCloud+Eureka搭建高可用註
Spring Cloud學習一:服務治理Spring Cloud Eureka搭建高可用註冊中心
Spring Cloud Eureka是Spring Cloud NetFlix微服務套件中的一部分,基於NetFlix Eureka做了二次封裝,主要負責完成微服務架構中的服務治理功能,是微服務架構中最為核心和基礎的模組,既包含了服務端元件,也包含了客戶端元件。 又涉及到服務註冊與服務發現兩個
springcloud搭建高可用註冊中心的時候註冊中心在unavailable-replicas中的問題
解決 禁止 rep 無法 自主 功能 ring 可用 nav 在搭建springcloud eureka高可用註冊中心時,發現另一個註冊中心一直在unavailable-replicas不可用分片,原因為原來為單個註冊中心的時候,禁止了註冊中心自主註冊為服務和檢索服務的
Spring Cloud Eureka 高可用註冊中心
per 雙節點 div width CA 高可用部署 efault 就是 行高 參考:<<spring cloud 微服務實戰>> 在微服務架構這樣的分布式環境中,各個組件需要進行高可用部署。 Eureka Server 高可用實
Eureka高可用註冊中心registered-replicas沒有分散式註冊中心
Eureka高可用註冊中心registered-replicas沒有分散式註冊中心 【寫在前面】如果看完這篇部落格,對你有幫助的話,歡迎加入全棧技術交流群,群內不定時釋出熱門學習資料,也歡迎進行技術交流,對我的部落格有疑問也可以在群裡@我。《全棧技術交流群歡迎你》 最近接了個活。
Spring Cloud 實戰(二)- Eureka 高可用註冊中心
Eureka 高可用註冊中心 點餐系統中的產品服務、訂單服務已寫了大半,但是註冊中心高可用一直還沒解決,今兒就把我遇到的坑塵現出來,避免以後再遇到此問題無章可循了。 Eureka Server1 配置
Spring Cloud Eureka ——高可用註冊中心
在服務註冊中心專案中 1建立application-peer1.properties,作為peer1服務中心配置 spring.application.name=eureka-server server.port=1111 eureka.instance.hostname
Eureka--3、高可用註冊中心的第一步,通過defaultZone深入理解zone和serviceUrl
defaultZone與serviceUrl的獲取 我們平時都是用defaultZone,這個defaultZone到底是什麼,為什麼一定要用defaultZone,換個別的行不行。網上很多文章都是入門的,不會講到這一點。 default-zone != defaul
SpringCloud 2.0(一)——註冊中心Eureka搭建
前言:學習和使用SpringCloud是從2017年底開始的,當時專案選擇框架的時候定的就是springboot的全家桶,到現在已經整整一年時間了,期間也遇到了很多問題,每次都是看官方文件或者學習優秀的部落格來解決,但是總感覺只是都是零碎的點,沒有連成線,結成網,所以計劃有空的時候就把相關的內容
SpringCloud筆記(二)高可用註冊中心的實現
目錄 1、要實現的拓撲 2、eureka-sever01和eureka-sever02 3、啟動服務提供者 3.1 pom.xml 3.2 application.yml 3.3 業務類 4、啟動服務消費者 4.1 pom.xml 與服務提供者相同 4.2 a
突發熱點事件下微博高可用註冊中心vintage的設計&實踐
文章概要 當前微博服務化採用公有云+私有云的混合雲部署方式,承載了每天百億級的流量,vintage 作為微博微服務的註冊中心,為管理 10w 級微服務節點以及在流量激增情況下的服務快速擴縮容,面臨了極大挑戰。例如:複雜網路條件下 vintage 服務的高可用保障、解決大批量節點狀態變更觸
SpringCloud教程 | 八.構建高可用註冊中心
簡介 SpringCloud教程 | 一.服務的註冊與發現(Eureka)主要演示瞭如何構建和啟動服務註冊中心Eureka Server,以及如何將服務註冊到Eureka Server中,但是在之前的
Spring cloud微服務實戰——高可用註冊中心(二)
上一篇我們介紹服務註冊中心、服務提供者、服務消費者的建立以及呼叫。本次課程介紹的是服務中心高可用設定,以及Eureka的自我保護模式。 高可用的服務註冊中心 在服務註冊中心其實也就是一個服務,它同樣可以向其他服務中心註冊,Eureka Servere的高
SpringCloud學習系列之一 ----- 搭建一個高可用的註冊中心(Eureka)
字母 cat ted drivers 路由 都沒有 timer sessions order 前言 本篇主要介紹的是SpringCloud相關知識、微服務架構以及搭建一個高可用的服務註冊與發現的服務模塊(Eureka)。 SpringCloud介紹 Spring Clou
Spring cloud Eureka 服務治理(高可用服務中心)
image 本地host available png active url 狀態 name spring 在微服務的架構中,我們考慮發生故障的情況,所以在生產環境中我們需要對服務中各個組件進行高可用部署。 Eureka Server 的高可用實際上就是將自己作為服務想其
註冊中心 Eureka 源碼解析 —— 調試環境搭建(含源碼)
Java 架構 依賴工具GradleJDKIntelliJ IDEA 源碼拉取https://github.com/Netflix/eureka.git使用 IntelliJ IDEA 從 Fork 出來的倉庫拉取代碼。拉取完成後,Gradle 會下載依賴包,可能會花費一些時間,耐心等待下。 本文基
Spring Cloud 中Eureka服務註冊中心的搭建
1:首先在idea上面建立一個Maven工程,命名為Sprng-Boot-eureka-test 建立的Maven工程中的pom檔案如下 2:在建立的Sprng-Boot-eureka-test工程下面新建一個module為eureka-server
Eureka 註冊中心環境搭建
官網教程地址: https://cloud.spring.io/spring-cloud-netflix/2.0.x/single/spring-cloud-netflix.html#netflix-eureka-server-starter 1 新建springboot專案 2 增