赞
踩
按之前的方法将 Eureka集群 搭建好后,我们需要在业务代码工程中进行集成,总的来说在springboot 中集成 eureka 可以说非常简单,依然是三部曲:
一、pom 添加依赖
本文示例使用 springboot 2.1.18 RELEASE 版本,因为版本不同配置参数可能会不一样
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
二、开启 Eureka 客户端
在启动类上新增注解 @EnableFeignClients
@EnableEurekaClient
@SpringBootApplication
public class ShanhyService2Application {
public static void main(String[] args) {
SpringApplication.run(ShanhyService2Application.class, args);
}
}
三、配置文件
如果你使用同一个电脑跑3个实例模拟集群,那么你需要按如下要求配置hosts,并且设置 eureka.instance.prefer-ip-address=false
hosts 文件内容如下:
127.0.0.1 eureka1
127.0.0.1 eureka2
127.0.0.1 eureka3
配置文件主要内容参数如下示例:
spring.application.name=eureka-server # 服务端口号 server.port=8080 # 如果zone使用hostname方式,则这个hostname也必须明确指定保持一致。如果zone使用IP地址方式,则这个hostname按如下配置自动读取IP(总得来说就是此处的hostname必须要和zone里面的保持一致) eureka.instance.hostname=${EUREKA_HOSTNAME:${spring.cloud.client.ip-address}} # Eureka Server 地址 #k8s集群部署,如果自定义了namespace使用这个配置,下面namespace替换为自己定义的namespace;如果没有自定义使用的是默认的namespace,则需要去掉下面的 .namespace 段。 #defaultZone: http://eureka-server-0.eureka-server.namespace:9007/eureka/,http://eureka-server-1.eureka-server.namespace:9007/eureka/,http://eureka-server-2.eureka-server.namespace:9007/eureka/, #本地部署手工填写多个实例节点IP和端口并用逗号分隔 eureka.client.serviceUrl.defaultZone=${EUREKA_ZONE:http://127.0.0.1:${server.port}/eureka/} # eureka实例ID eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}} # 是否检索服务(获取eureka服务列表) eureka.client.fetch-registry=${EUREKA_FETCH:true} #修改缓存清单的更新时间,默认值为30 eureka.client.registry-fetch-interval-seconds=30 # 是否向服务注册中心注册自己(如果仅作为调用者,不提供服务,可以为false) eureka.client.register-with-eureka=${EUREKA_REGISTER:true} # 将IP注册到eureka中,如果为false默认使用hostname主机名注册(这个是重点,不然你可能会遇到坑)注意本机集群使用false,多机器使用true比较合适 eureka.instance.prefer-ip-address=false
其中几个变量是为了可以从外部通过参数或环境变量传入动态值预留的,下面是在同一个机器上启动3个实例集群的命令示例:
java -jar -DEUREKA_ZONE=http://eureka1:8761/eureka/,http://eureka2:8762/eureka/,http://eureka3:8763/eureka/ -DEUREKA_HOSTNAME=eureka1 eureka-server-1.0.0-SNAPSHOT-exec.jar --server.port=8761 --eureka.instance.prefer-ip-address=false
java -jar -DEUREKA_ZONE=http://eureka1:8761/eureka/,http://eureka2:8762/eureka/,http://eureka3:8763/eureka/ -DEUREKA_HOSTNAME=eureka2 eureka-server-1.0.0-SNAPSHOT-exec.jar --server.port=8762 --eureka.instance.prefer-ip-address=false
java -jar -DEUREKA_ZONE=http://eureka1:8761/eureka/,http://eureka2:8762/eureka/,http://eureka3:8763/eureka/ -DEUREKA_HOSTNAME=eureka3 eureka-server-1.0.0-SNAPSHOT-exec.jar --server.port=8763 --eureka.instance.prefer-ip-address=false
至此启动服务,打开 eureka UI控制台上看到注册的服务信息了。
(END)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。