美文网首页
服务发现中心方案演进(一)

服务发现中心方案演进(一)

作者: 黄云斌huangyunbin | 来源:发表于2018-07-07 16:01 被阅读0次

最开始我们是打算用mysql来实现的。

考虑原因:
服务的上下线是一个比较低频率的事情,mysql的qps应付这点qps完全没问题
mysql还能持久化,多机房也容易保障。

方案整体架构:

image.png

方案描述:

  1. service结点通过rest接口,定时(5s)向Luna server重新注册
  2. server在本地维护每个服务的结点存活结点列表;每隔1S拉取有变更的服务列表,并将本地缓存invalid
  3. server通过定时任务,清除过期的service结点(超过15S未上报)

方案就这么简单的做完了。是不是有点太简单的感觉,我擦,人家zookeeper那么复杂的一套系统,你就这么轻易的实现了。。

那我们来考虑一些细节问题:

问题一: 定时任务具体怎么做, 多台server是不要同时去做定时任务的。

办法:每台server都做一个定时任务,每分钟的第0,5,10,15,20,25,30,35,40,45,50,55秒执行,把当前时间转化为一个key:比如2018-5-17 18:30:05秒,可以用201805-17-18-30-5来表示,执行开始前,先往数据库插入一条key=201805-17-18-30-5的记录,如果插入失败(记录存在),则表示己由其它任务执行,否则自己执行。用数据库保证了任务执行的唯一性。

问:抢到了任务,但是没有执行server就挂了,这种情况怎么办

答:5秒后还是有下一个定时任务的,还是会执行的。

问:这样能保证不会出现并发执行吗

答:并不能,某次执行时长超过5s就会出现并发执行了。所以还是要用数据库的事务保证并发的执行安全。

问题二:定时任务发现节点失效,把服务下线,但是这个时候正好有服务上线,会不会出问题:

办法:这真的是个好问题,不过mysql有事务,不怕。

所以这就是最后采用的方案了吗?

并不是啊,对于qps的计算,我们太过于乐观:
1000个域,每个域10个服务,每个服务10台机器,每5秒一个心跳,

1000x10x10/5=2万,每秒2万的写请求对于mysql来说压力非常大了。

一台mysql按照2000来算,至少要10台,再加10台slave机器,就是20台机器了。
而且肯定是要分库分表了。
突然感觉简单的事情一点也不简单了。

那还有不有更好的解决方案呢?且看下文。

相关文章

  • 服务发现中心方案演进(一)

    最开始我们是打算用mysql来实现的。 考虑原因:服务的上下线是一个比较低频率的事情,mysql的qps应付这点q...

  • 服务发现中心方案演进(二)

    上文说到mysql比较难以承受几万的tps,所以我们就选择了redis。 redis有key的失效机制,和服务发现...

  • 服务发现中心方案演进(三)

    上文说到时效性的问题,要怎么解决呢? redis是key失效通知的,这个正好是我们需要的啊。 这个功能经过我们的d...

  • 服务注册中心架构演进

    1. 概述 服务注册中心(下称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者的一个作用。...

  • springBoot和springCloud关系

    SpringCloud,基于SpringBoot提供了一套微服务解决方案, 包括服务注册与发现,配置中心,全链路监...

  • 一、Dubbo框架源码分析:为什么要有dubbo?

    一、背景:架构的演进,微服务的盛行 随着微服务的盛行-服务拆分:那么跨服务间调用如何解决?每个公司有自己解决方案...

  • 四川泥腿农业科技有限公司

    方案一:泥腿AI智能体验中心 方案二:泥腿AI智能养殖体验中心 方案三:泥腿5S养殖服务中心 方案四:泥腿智能养殖...

  • 服务发现:服务注册中心

    背景 服务的客户端采用客户端服务发现或者服务端服务发现来确定发送请求的实例地址。 问题 客户端服务发现 里的客户端...

  • 详解Spring Cloud Eureka多网卡配置总结

    在linux主机部署Eureka高可用方案的时候,发现注册到服务中心的服务IP是随机的,由于主机的网卡是多个,随机...

  • 服务拆分与架构演进

    服务拆分与架构演进 “领域驱动设计和服务自演进能力是内功。” 前言 《微服务的团队应对之道》提到,微服务帮助企业提...

网友评论

      本文标题:服务发现中心方案演进(一)

      本文链接:https://www.haomeiwen.com/subject/knwwuftx.html