暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Spring Cloud Eureka配置集群

香草物语博客 2021-07-17
199

Eureka Server可以通过运行多个实例并通过相互注册的方式实现高可用性的部署。Eureka Server实例会彼此通过增量同步的方式同步信息,确保节点数据之间的一致性。

配置hosts

由于我这里部署到同一个电脑上,因此需要配置hosts,以便进行服务之间的区分。win电脑hosts文件位于:C:\Windows\System32\drivers\etc\hosts
 Mac及Linux电脑hosts文件位于:/etc/hosts
 在hosts文件末尾增加以下内容:

C:\Windows\System32\drivers\etc

配置服务提供者

分别创建两个Spring Boot应用,分别为microservice-discovery-eureka
microservice-discovery-eureka-ha
,代表两个服务提供者工程。

添加依赖

两个工程,同时添加以下依赖。

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

修改启动类

两个工程的启动类,分别添加@EnableEurekaServer
注解。

@SpringBootApplication
@EnableEurekaServer
public class MicroserviceDiscoveryEurekaApplication {

public static void main(String[] args) {
SpringApplication.run(MicroserviceDiscoveryEurekaApplication.class, args);
}

}

microservice-discovery-eureka
配置文件如下

spring:
application:
name: microservice-discovery-eureka
server:
port: 8761
eureka:
instance:
hostname: peer1
appname: microservice-discovery-eureka
prefer-ip-address: false
client:
serviceUrl:
defaultZone: http://peer2:8762/eureka
# false表示不向注册中心注册自己
register-with-eureka: true
# false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: true

microservice-discovery-eureka-ha
配置文件如下

spring:
application:
name: microservice-discovery-eureka
server:
port: 8762
eureka:
instance:
hostname: peer2
appname: microservice-discovery-eureka
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka
# false表示不向注册中心注册自己
register-with-eureka: true
# false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: true

可以看到,两个工程通过相互注册的方式,实现集群。配置文件,需要注意以下内容 [alt type="success"]hostname需要不同[/alt] [alt type="info"]appname必须保持一致[/alt] [alt type="warning"]defaultZone需要使用我们配置的IP映射,而不是使用IP[/alt]

测试

启动第一个服务提供者,界面如下

启动第二个服务提供者,界面如下


文章转载自香草物语博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论