ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

springboot+consul配置多地址环境

2022-07-07 19:04:26  阅读:231  来源: 互联网

标签:springboot service consul jar profiles 地址 common 192.168


问题:2台服务器都安装了Consul作为服务发现,在bootstrap.yml配置了项目注册的多个环境,每个环境的Consul地址是不同的,但是当使用某一个profiles配置时,总是2个Consul都被注册成功了;

 

 

原因:服务在测试时,在Consul1服务注册过,在Consul2服务也注册过,当Consul注册服务切换时,没有删除其他Consul中的无用服务的节点,才导致上面问题的产生;Consul的节点如果不删除,则会一直监听192.168.1.231服务器是否启动了common-service服务;

 

 

解决方案:修改docker-compose.yml的启动profiles的时候

- SPRING_ACTIVE=-Dspring.profiles.active=dev 

先将所有Consul的common-service删除,然后在启动common-service服务,就不会出现2个都Consul注册的情况了

环境及配置:

服务器 consul地址 bootstrap.ym配置consul多地址 common-service项目的Dockerfile配置 docker-compose.yml配置 

192.168.1.75

192.168.1.75:8500
--- #75环境配置(---表示多个profiles)
spring:
profiles: dev
cloud:
consul:
host: 192.168.1.75
port: 8500
FROM java:8
ADD target/common-service-1.0.0-SNAPSHOT.jar //
ENV JAVA_OPTS=""
ENV SPRING_ACTIVE=""
CMD java -jar ${JAVA_OPTS} ${SPRING_ACTIVE} common-service-1.0.0-SNAPSHOT.jar
 
version: "3"
services:
zy-common:
restart: always
container_name: zy-common
image: common-service:latest
ports:
- "8011:8011"
network_mode: host
volumes:
- /home/logs:/home/logs
environment:
- JAVA_OPTS=-Xms256m -Xmx256m
   - SPRING_ACTIVE=-Dspring.profiles.active=dev
- CONSUL_TOKEN=6d9a61ae-7e99-ab1b-2951-bf4a29e00b74
deploy:
resources:
limits:
memory: 6G
192.168.1.231 192.168.1.231:8500
--- #231环境配置(---表示多个profiles)
spring:
profiles: test_231
cloud:
consul:
host: 192.168.1.231
port: 8500
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bootstrap.yml文件内容:

spring:
  sleuth:
    sampler:
      percentage: 1.0
  cloud:
    consul:
      discovery:
        register: true
        prefer-ip-address: true
        instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
        acl-token: ${CONSUL_TOKEN}
        tags:
          - ${spring.profiles.active}
        health-check-tls-skip-verify: true
      config:
        enabled: true
        format: yaml
        watch:
          enabled: true
        prefix: config
        data-key: data
  profiles:
    active: dev

--- #75环境配置(---表示多个profiles)
spring:
  profiles: dev
  cloud:
    consul:
      host: 192.168.1.75
      port: 8500
--- #231环境配置(---表示多个profiles)
spring:
  profiles: test_231
  cloud:
    consul:
      host: 192.168.1.231
      port: 8500
View Code

Dockerfile文件内容:

FROM java:8
ADD target/common-service-1.0.0-SNAPSHOT.jar //
ENV JAVA_OPTS=""
ENV SPRING_ACTIVE=""
CMD java -jar ${JAVA_OPTS} ${SPRING_ACTIVE} common-service-1.0.0-SNAPSHOT.jar
#ENTRYPOINT ["sh", "-c", "java -jar common-service-1.0.0-SNAPSHOT.jar $JAVA_OPTS $SPRING_ACTIVE"]
View Code

docker-compose.yml文件内容:

version: "3"
services:
zy-common:
  restart: always
  container_name: zy-common
  image: common-service:latest
  ports:
    - "8011:8011"
  network_mode: host
  volumes:
    - /home/logs:/home/logs
  environment:
    - JAVA_OPTS=-Xms256m -Xmx256m
   - SPRING_ACTIVE=-Dspring.profiles.active=dev
    - CONSUL_TOKEN=6d9a61ae-7e99-ab1b-2951-bf4a29e00b74
  deploy:
    resources:
      limits:
        memory: 6G
View Code

 

标签:springboot,service,consul,jar,profiles,地址,common,192.168
来源: https://www.cnblogs.com/tianchao/p/16455747.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有