一、關於註冊中心
主要功能如下
- 服務註冊表:記錄分佈式架構中所有服務和服務地址的映射關係,用於服務直接相互調用
- 服務註冊與發現:服務啓動時將自己的信息註冊到註冊中心;服務直接相互調用時從註冊中心獲取目標服務信息
- 服務健康檢查 :使用一定機制檢查註冊中心的服務是否正常,如果長時間無法訪問,則將其移除
常見註冊中心
- Eureka
- Consul
- Zookeeper
- Nacos
…
本文以Eureka爲例,後續會更新其他註冊中心
二、主要內容
結構如下
配置文件application.yml
如下
spring:
application:
name: spring-cloud-eureka #服務名稱
server:
port: 8000
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false #表示是否將自己註冊到Eureka Server,默認爲true。
fetch-registry: false #表示是否從Eureka Server獲取註冊信息,默認爲true。
serviceUrl:
defaultZone: http://localhost:8000/eureka #服務地址,多個可用逗號【,】分隔
pom
文件如下
<?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>
<parent>
<groupId>com.lxt</groupId>
<artifactId>springcloud</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.lxt</groupId>
<artifactId>exureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>exureka-server</name>
<description>Demo project for Spring Boot</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
運行結果如下圖所示,註冊中心目前無服務註冊
三、集羣高可用
C:\Windows\System32\drivers\etc\host
文件添加映射
127.0.0.1 center
127.0.0.1 center1
127.0.0.1 center2
使用yml配置文件連接符---
添加三個集羣的節點center、center1、center2
,修改後配置文件如下:
spring:
application:
name: spring-cloud-eureka #服務名稱
---
server:
port: 8000
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false #表示是否將自己註冊到Eureka Server,默認爲true。
fetch-registry: false #表示是否從Eureka Server獲取註冊信息,默認爲true。
serviceUrl:
defaultZone: http://localhost:8000/eureka/ #服務地址,多個可用逗號【,】分隔
---
spring:
profiles: center
server:
port: 8000
eureka:
instance:
hostname: center
client:
#register-with-eureka: false #表示是否將自己註冊到Eureka Server,默認爲true。
##fetch-registry: false #表示是否從Eureka Server獲取註冊信息,默認爲true。
serviceUrl:
defaultZone: http://center1:8100/eureka/,http://center2:8200/eureka/ #服務地址,多個可用逗號【,】分隔
---
spring:
profiles: center1
server:
port: 8100
eureka:
instance:
hostname: center1
client:
serviceUrl:
defaultZone: http://center:8000/eureka/,http://center2:8200/eureka/ #服務地址,多個可用逗號【,】分隔
---
spring:
profiles: center2
server:
port: 8200
eureka:
instance:
hostname: center2
client:
serviceUrl:
defaultZone: http://center:8000/eureka/,http://center1:8100/eureka/ #服務地址,多個可用逗號【,】分隔
---
啓動:
-
mvn package 打成jar包
-
cmd 切入到jar所在目錄
-
分別運行:
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=center java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=center1 java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=center2
-
瀏覽器查看,集羣搭建成功