spring cloud之docker微服务客户端注册eureka问题

正常我们起一个微服务注册到eureka他的实例id是默认这样的主机名称:服务名称:服务端口号,
如果配置eureka.instance.prefer-ip-address=true则实例id为主机Ip:服务名称:服务端口号
当然我们也可以通过eureka.instance.instance-id自定义实例ID格式。
但是当我们以docker化微服务的时候发现注册到eureka中的实例ID变为containerId:服务名称:服务端口号
而且docker 容器每重启一次(这里指删除容器重启,containerId变化),就多一个该服务的实例如d1deb75f7aed:rms:8080,并且被删除的容器实例d2b59f32b427:rms:8080不下线

问题1:怎么让容器启的微服务也注册为{主机名称:服务名称:服务端口号}或{主机Ip:服务名称:服务端口号}?
指定容器网络模式为host,如:
docker run -d --name rms --net host cm/rms:latest

为什么要指定网络模式host:
- –net=bridge— 默认选项,用网桥的方式来连接docker容器。
- –net=host— docker跳过配置容器的独立网络栈。
- –net=container:NAME_or_ID— 告诉docker让这个新建的容器使用已有容器的网络配置。
- –net=none— 告诉docker为新建的容器建立一个网络栈,但不对这个网络栈进行任何配置,所以只能访问本地网络,没有外网。
详细请点链接:https://blog.csdn.net/weixin_38319645/article/details/81349541
问题2:怎么让停掉的容器服务下线?
通过api强制下线
DELETE http://{ip}:{port}/eureka/apps/{appName}/{inatanceId}
如:http://ip:port/eureka/apps/rms/10d4a6d7e8a6:rms:8080
通过自定义实例id,让后起的实例挤掉先起的失效实例
配置文件中指定instance-id:
spring.application.name=rms
server.port=8080
eureka.instance.instance-id=${spring.application.name}:${server.port}
eureka.instance.prefer-ip-address=true

这样不管怎么启服务,他的Id都是一样的,后起的会把之前的挤掉。至少不会因为containerId变化导致的实例id不同,让实例一直增加。

我们从页面上继续看这个ID后面是啥?


目前还没找到办法让container停止服务自动下线方法
已解决: https://www.cnblogs.com/dreamfly2016/p/11698759.html
spring cloud之docker微服务客户端注册eureka问题的更多相关文章
- 《Spring Cloud与Docker微服务架构实战》配套代码
不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...
- Spring Cloud与Docker微服务架构实战 PDF版 内含目录
Spring Cloud与Docker微服务架构实战 目录 1 微服务架构概述 1 1.1 单体应用架构存在的问题1 1.2 如何解决单体应用架构存在的问题3 1.3 什么是微服务3 1.4 微服务 ...
- Spring Cloud与Docker——微服务架构概述
Spring Cloud与Docker--微服务架构概述 单体应用架构概述 微服务概述 微服务的特性 微服务架构的优点 微服务面临的挑战 微服务的设计原则 单体应用架构概述 传统的服务发布都是采用单体 ...
- Spring Cloud与Docker微服务架构实战 PDF
电子版百度云下载 链接: https://pan.baidu.com/s/115u011CJ8MZzJx_NqutyTQ 提取码: 关注公众号[GitHubCN]回复2019获取 本书的代码 共计70 ...
- SpringCloud(9)使用Spring Cloud OAuth2保护微服务系统
一.简介 OAth2是一个标准的授权协议. 在认证与授权的过程中,主要包含以下3种角色. 服务提供方 Authorization Server. 资源持有者 Resource Server. 客户端 ...
- 从 Spring Cloud 看一个微服务框架的「五脏六腑」
原文:https://webfe.kujiale.com/spring-could-heart/ Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构 ...
- spring cloud + mybatis 分布式 微服务 b2b2c 多商户商城 全球部署方案
用java实施的电子商务平台太少了,使用spring cloud技术构建的b2b2c电子商务平台更少,大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B ...
- 【架构】Kubernetes和Spring Cloud哪个部署微服务更好?
Spring Cloud 和Kubernetes都自称自己是部署和运行微服务的最好环境,但是它们在本质上和解决不同问题上是有很大差异的.在本文中,我们将看到每个平台如何帮助交付基于微服务的架构(MSA ...
- 从 Spring Cloud 看一个微服务框架的「五脏六腑」(转)
Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件. 本文将从 Spring Cloud 出发,分两小节讲述微服务框架的「五脏六腑」: ...
随机推荐
- 初级文件IO——若干种文件共享操作 如何影响 文件文件描述符表
同一进程共享操作相同的文件 在同一个进程中多次open打开同一文件时,文件描述符可能会相同吗? 答:不可能.在同一进程里面,一旦某个文件描述符被用了,在close释放之前,别人不可能使用,所以指向同一 ...
- Js操作DOM元素及获取浏览器高宽
在JavaScript中,经常会来获取Document文档元素,是 HTML 文档对象模型的英文缩写,Document Object Model for HTML,是基于浏览器编程,HTML DOM ...
- 02 js原型链
1 js原型链是一个绕不开的话题.直接上说吧. /** * 1. js里的原型链是怎么样的? 带class 和不带class的原型链的不同. */ const util = require('util ...
- git远程分支创建,本地分支关联远程分支,第一次发布、更新分支
git远程分支创建,本地分支关联远程分支,第一次发布.更新分支 github托管服务器地址为https://github.com git提交更新代码示意图: 本地与远程进行免密码配置(本地与远程关联) ...
- 编译teamtalk遇到的问题
一.编译log4cxx遇到的问题 1.error: narrowing conversion 这是在gcc-6下面一个官方的错误 解决方法 https://issues.apache.org/jira ...
- HashMap源码分析一
HashMap在java编程中,算使用频率top10中的类了.这里是关于HashMap的源码的分析.一个类的源码分析,要看他的来龙去脉,他的历史迭代.一来从以前的版本开始分析,由易到难: ...
- Java查漏补缺
1.自动转换按从低到高的顺序转换.不同类型数据间的优先关系如下: 低 ---------------------------------------------> 高 byte,short,ch ...
- MyBatis-10-多对一处理
10.多对一处理 多对一: 多个学生,对应一个老师 对于学生这边而言,关联...多个学生,关联一个老师[多对一] 对于老师而言,集合,一个老师又很多学生[一对多] SQL: CREATE TABLE ...
- 如何在网页标题栏title加入logo(icon)图标?
打开某一个网页会在浏览器的标签栏处显示该网页的标题和图标,当网页被添加到收藏夹或者书签中时也会出现网页的图标,怎么在网页title左边显示网页的logo图标呢? 方法一(被动式): 制作一个ico格式 ...
- Mapreduce案例之找共同好友
数据准备: A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O,MG:A,C,D,E,FH:A,C,D,E,OI:A,OJ ...