问题描述

SpringCloud服务提供者,设定了随机端口配置后,在EurekaServer中的注册端口、Tomcat的web端口、运行中获取到的server.port配置端口,共出现了4个不同的端口,并且服务消费者使用ribbon时不能通过服务提供者的服务名称进行调用服务

配置信息

spring:
application:
name: client-server
eureka:
client:
service-url:
defaultZone: http://peer1:8761/eureka/
server:
port: ${random.int(8801,8810)}
@RestController
@RequestMapping("/")
public class IndexController { @Value("${server.port}")
private String port; @RequestMapping("hello")
public JSONObject hello() {
JSONObject result = new JSONObject();
result.put("producer", port + " 正在处理");
return result;
}
}

启动EurekaServer和本服务,本服务日志显示如下

com.netflix.discovery.DiscoveryClient    : DiscoveryClient_CLIENT-SERVER/DESKTOP-IND7D5U:client-server:8808: registering service...
com.netflix.discovery.DiscoveryClient : DiscoveryClient_CLIENT-SERVER/DESKTOP-IND7D5U:client-server:8808 - registration status: 204
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8801 (http) with context path ''
.s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8801

然后问题来了,打开EurekaServer页,可以看到client-server的注册,client-server出现了8806和8808端口,访问http://localhost:8801/hello,返回的server.port是8805





而且服务消费者用了ribbon,也不能通过"http://CLIENT-SERVER/hello"的方式进行调用,会提示异常信息 I/O error on GET request for "http://CLIENT-SERVER/hello"

结论

猜想可能是random.int的问题,网上搜了下这个问题,找到个类似的文章 springboot使用随机端口暴露的问题解决方法,里面提到并给出了自己实现random.int的方法,让随机端口只生成一次,应该可以解决问题

最新文章

  1. JVM执行Java程序时内存的划分
  2. WCF入门(10)
  3. 一个基于和围绕Docker生态环境构建的早期项目列表
  4. 简易的JQuery设置Cookie
  5. CentOS下几种软件安装方式
  6. Docker镜像与仓库(一)
  7. linuxmint更改权限
  8. matlab中的sub2ind函数
  9. Mysql表的约束设计和关联关系设计
  10. 终于开始我的java旅程了!
  11. mybatis教程3(映射文件)
  12. 无法访问 MemoryStream 的内部缓冲区
  13. leetcode235
  14. EXCEPTION-IBATIS
  15. mongodb-win32-i386-3.0.6 使用
  16. How to add a button in the seletions "More"
  17. MDI多文档窗体续
  18. [ActionScript 3.0] 通过BitmapData将对象保存成jpg图片
  19. SQL Server UDF to pad a string
  20. Synchronized介绍

热门文章

  1. Git客户端部署使用-生成ssh密钥2
  2. revit卸载工具,完全彻底卸载删除干净revit各种残留注册表和文件的方法和步骤。
  3. 使用MVC编程模型通过flask蓝图实现前端后台新闻发布系统
  4. macOS 开发 NSView添加鼠标监控
  5. 浅谈Redis大Key与热Key
  6. noi 45 金币
  7. jupyter notebook代码无法运行
  8. es 部署 进程、文件数 配置
  9. download links
  10. webpackHotMiddleware改造成koa支持的中间件