一、注册中心单点运行时配置application.yml
文件
server:
port: 8751 # 配置端口
spring:
instance:
hostname: localhost
application:
name: eureka-server # 服务名
eureka:
client:
register-with-eureka: false # 将自己当成客户端注册自己,默认为true
fetch-registry: false # 检索服务选项
注:
eureka.client.serviceUrl.defaultZone=http://localhsot:8751/eureka/
单机版可以不需要添加
二、Eureka Server服务器的高可用
注册中心互相注册的方式来实现高可用的部署,从而进行微服务清单的同步。我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。
在自己电脑上模拟多环境注册
1.配置application.yml
文件
server:
port: 8751
spring:
profiles: peer1 # profiles 多环境参数
application:
name: eureka-server
eureka:
instance:
hostname: peer1 # 主机名
client:
service-url:
#spring-cloud版本问题,defaultZone必须使用驼峰命名法
defaultZone: http://peer2:8762/eureka/,http://peer3:8763/eureka/ # 向peer2、peer3注册自己
---
server:
port: 8762
spring:
profiles: peer2
application:
name: eureka-server
eureka:
instance:
hostname: peer2
client:
service-url:
defaultZone: http://peer1:8751/eureka/,http://peer3:8763/eureka/ #向peer1、peer3注册自己
---
server:
port: 8763
spring:
profiles: peer3
application:
name: eureka-server
eureka:
instance:
hostname: peer3
client:
service-url:
defaultZone: http://peer1:8751/eureka/,http://peer2:8762/eureka/ #向peer1、peer2注册自己
在yml文件中可以使用
---
来分割配置块,而不需要使用三个配置文件。配置中使用了peer1/peer2/peer3三个配置,并使其相互注册。
2.启动类添加注册中心服务注解@EnableEurekaServer
例如:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
3.分别使用对应的对应的配置启动相应的服务
-
首先进入服务配置
-
选中注册中心服务,配置其启动配置环境为
peer1
-
添加新的启动方式
-
配置profile多环境参数
peer2
-
重复3、4添加新的启动方式
peer3
-
之后便可以在运行列表中看到3个不同环境的启动器。
-
由于我们使用了http://peer1:port/这种写法,需要配一下hosts文件,将下列添加到window的host文件中
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
将下列添加到window的hosts文件中(hosts文件一般在C:\Windows\System32\drivers\etc
下)
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
5. 将三个注册中心启动
访问其中一个注册中心http://localhost:8751/
,可以看到另外两个注册中心