服务启动顺序导致的问题

服务启动顺序导致的问题

现象

启动顺序如下

  1. 启动client(10086)服务,注册中心地址不对导致启动失败

  2. 启动eureka-consumer,调用sayHi返回500错误,找不到服务

  3. 重新启动client(10086),可正常调用sayHi方法

  4. 启动client(10000),调用sayHi方法,当负载到10000的时候,会提示500找不到服务

  5. 过了一会儿又恢复了

应该有同学会遇到类似的问题,记录下。

问题

从注册到服务可用经历了哪些过程?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Java架构师讲师团 2020-03-27 11:33:42

服务发现是客户端发起的异步发现机制,你要等一段时间让Consumer拉取到最新的服务列表,才能获取到后面注册的client

  • 提问者 juwencheng #1
    老师回复得贼快。。。 懂了,其实注册服务在启动服务的时候就成功了,只是consumer还没有触发更新服务列表的操作。此时我想到了推送,哈哈,如果注册中心的数据发生变化能立即让服务感知到就好了,然后记起之前课程提到了,这样处理的话注册中心的负担很重。。
    2020-03-27 11:37:55
  • 提问者 juwencheng #2
    还有个额外的问题,微服务分层里面的web和service两个都加上了@RestController注解,一个是不是对外(客户端)提供,一个对内(微服务间)提供的,但两者之间处理逻辑上有些区别,即在controller层对业务做了一些校验,数据准备等工作,如果两层不统一,那么在微服务调用service服务时,也要做额外的校验工作,是不是应该把逻辑和在一起呢
    2020-03-27 11:41:42
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师