Eureka高可用环境搭建
1、创建govern-center 子工程
包结构:com.dehigher.govern.center
2、pom文件
(1)父工程pom,用于依赖版本管理
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
(2)子工程pom, 如果没有父工程,可以加版本号直接引入
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies>
3、启动类
注意添加@EnableEurekaServer 将当前服务标识为Eureka服务
@EnableEurekaServer @SpringBootApplication public class GovernCenterApplication { public static void main(String[] args){ SpringApplication.run(GovernCenterApplication.class, args); } }
4、配置文件application.yml
(1)${xxx:aaa} ,通过启动脚本设置系统启动参数xxx,默认值为aaa,实现同一工程启动多个实例
(2)Eureka高可用就是通过eureka服务的相互注册实现的
server:
port: ${eureka_port:50101}
spring:
application:
name: xc-govern-center
#eureka相关配置
eureka:
client:
registerWithEureka: true #是否将自己注册到Eureka服务中
fetchRegistry: true #服务发现,是否从eureka中获取注册信息
serviceUrl: #Eureka客户端与eureka服务端的交互地址、多个eureka相互注册实现高可用、高可用状态配置对方地址、单机状态配置自己、不配置默认为默认为本机8761
defaultZone: ${eureka_host:http://eureka2:50102/eureka/}
server:
enable-self-preservation: false #是否开启自我保护
eviction-interval-timer-in-ms: 60000 #服务注册表清理间隔时间
5、启动脚本
(1)启动端口为50101的工程, VM arguments
-Deureka_port=50101 -Deureka_host=http://eureka2:50102/eureka/
(2)启动端口为50102的工程,VM arguments
-Deureka_port=50102 -Deureka_host=http://eureka1:50101/eureka/
注意细节,配置文件中的serviceUrl.defaultZone 一定要用域名,测试环境可以直接修改host文件