服务注册中心:Eureka
接上篇中的设计,我们需要实现一个动态配置的Eureka服务器。
引入如下依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
基础配置如下:
server:
port: 7000
spring:
application:
name: eureka-service
security:
user:
name: admin
password: 123456
roles: admin
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-node2.com:7001/eureka
server:
enable-self-preservation: true
instance:
hostname: eureka-node1.com
上述所有配置推送至配置仓库中,在本地建立bootstrap.yml,只保留如下内容:
spring:
application:
name: eureka-service
cloud:
config:
profile: dev
uri: http://localhost:7011/
username: config-admin
password: 123456
此处的配置指定了将从上一篇中的Config配置中心中获取名为eureka-service,环境为dev的配置文件,并覆盖本地设置。
启动类加入如下注解:
@SpringBootApplication @EnableEurekaServer
启动项目,进入http://localhost:7000,需要输入上述定义的用户名和密码后方可进入Eureka首页。

继续进行Dockerfile编写:
FROM openjdk:8u252-jdk
MAINTAINER Pony Liu<liupeng3@aactechnologies.com>
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
VOLUME /tmp
ADD target/acoustics-api-platform-eureka-0.0.1-SNAPSHOT.jar eureka.jar
ENTRYPOINT ["nohup","java","-jar","/eureka.jar","--spring.cloud.config.uri=http://${config_server}","&"]
EXPOSE 7000
同样地,动态传入Config配置中心的地址,覆盖本地配置文件中的设置
通过如下指令进行镜像编译:
docker build -t aac/eureka:v1 .
编译完成后,通过如下指令启动容器:
docker run -itd -p 7000:7000 -e config_server=10.2.138.154:7011 aac/eureka:v1
编译完成后,通过如下指令启动容器:
docker run -itd -p 7000:7000 -e config_server=10.2.138.154:7011 aac/eureka:v1
这里可以启动多个容器,对外暴露多个端口,而后在Eureka的配置文件中配置到defaultZone中形成Eureka集群。服务注册时只需要注册到任意一台Eureka节点上,注册信息就会在所有Eureka节点之间同步。
浙公网安备 33010602011771号