服务注册中心: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节点之间同步。

posted @ 2020-10-15 14:51  猎喵Rachel  阅读(111)  评论(0)    收藏  举报