dubbo使用zookeeper连接,zookeeper宕机后怎么处理

dubbo使用zookeeper连接,zookeeper宕机后怎么处理,第1张

zookeeper宕机后,因为消费者会缓存提供者的信息,所以应用不会有问题。但是,此时提供者和消费者都无法重连zookeeper,因为dubbo貌似配置的zkclient不会重连zookeeper,所以一旦重启一台服务提供者,那么这台就从服务消费者的缓存中消失了,此时服务消费者又连不上zookeeper,所以如果同时重启,消费者就没有提供者可用了,所以只能重启一台提供者后,再重启一个消费者,交错重启。

个人觉的两者都不会被淘汰,但是在未来分布式微服务解决方案中或者架构中,springCloud会占主导地位。

springCloud:

1springCloud提供了完成的分布式解决方案,基础解决方案以及组件比较健全,而且最近几年围绕springCloud边缘服务组件越来越多,例如:nacos。

2springCloud是基于springboot的,spring的使用部署太方便了。

dubbo:

1dubbo更多解决的是服务间的调用,也就是服务通讯协议rpc,也会是dubbo没有完整的分布式解决方案基础设施。例如:注册中心需要借助Zookeper,链路追踪:zipkin。

要说Dubbo,算是Spring Cloud的一个子集好了,大致相当于Spring Cloud里的 Eureka + Feign + 1/2Hystrix另外

现在大公司也在慢慢想springCloud服务过度,还有面试中文springCloud问题越来阅读,dubbo越来越少。

dubbo生态圈没有spring cloud好,会被先淘汰掉。现有架构都会优先选择Spring cloud,毕竟使用起来更简单一点。

微服务现在是一阵风而已,实际来说,很多系统不适用,综合算下来,微服务成本比原来大多了。不是所有系统都是互联网,都是d缩性很强。有的系统就是固定数据量,稳定运行,可能几个大一点服务器就足够了。

真正需要微服务的不会像现在看到的那么多。

慢慢沉淀,估计会把一些不需要的改回去,套壳的改回去。

如果简化方式,感觉dubbo这种轻便的有优势,开发运维都简单。或者替代品也是轻便为主。

剩的可能真的需要微服务,一般都是中等规模以上的,或者巨头,一般都有自己的内部框架。这种用也得全套完善的。

它们都淘汰也是早晚的事[捂脸]毕竟是java闭源。随着service mesh的兴起,isito的落地并于k8s的无缝融合,一切像基础设施下沉[呲牙]

事实上,很多系统根本就没必要用什么所谓微服务。目前过度设计已经泛滥,明明是一个用户数量有限,功能并不复杂的系统,也要套用所谓的微服务架构,或者要大搞所谓中台,既浪费时间,又浪费金钱,最后系统运维还比较复杂,需要持续投入运维。

以服务调用的方式,固然可以有更好的复用性,也可以解耦复杂系统。但实际上,我认为微服务也仅仅是组件化的一种实现方式。对于组件化,广义的讲,有多种实现方式:

第一种,最原始的方式就是以静态函数库或者包的形式存在。这种形式优点是开发方式简单,调用效率高,数据以参数方式进行传递,但耦合度也高,底层组件函数一旦发生变化,则需要重新编译整个工程。通常对于不经常发生变化的基础函数库,可以用这种形式进行开发,形成所谓的公共函数库,供大家使用。

第二种,称之为动态函数库,在windows环境下以dll形式存在,linux环境下以so形式存在。动态函数库相对于静态函数库,优势在于可以在运行时动态加载,可以在不用重新启动整个应用的情况下进行更新。缺点是动态函数不能共享原应用程序的存储空间,导致动态函数调用有时需要传递大量参数,导致一些不便。动态函数库也具有一定耦合度,函数名和参数必须严格按照约定调用,否则会报错。在早期单体架构下,动态函数库还是有大量使用的。

第三种,就是目前所谓的微服务架构了。微服务事实上也是可以看作是一种函数调用方式,提供基于RPC和restful远程调用方式。调用时需要传递调用的服务名称及数据报文。这种方式耦合度自然是比较低一些的,但是调用效率肯定低于函数调用方式,主要是数据传输和报文解析方面消耗的时间。此外还需要考虑通讯流量控制,超时机制,服务寻址,服务可用性等方面的问题。因而降低耦合度,事实上是以增加了系统的整体复杂度和降低调用效率为代价的。个人认为不应该过度解耦,或者仅仅强调可复用性。要知道,任何事情都是有代价的,必须要充分评估这种代价是否值得。

第四种,就更进一步,即以独立的系统存在,该系统具有独立性和完备性,可以不过于依赖其他外部系统独立运行,对外部以服务或api的形式进行交互。例如,单点登录系统,信贷系统,核心系统等。

因而,在系统架构设计和建设过程中,必须认真进行评估,不应该过分侧重于某一方面特性的实现,否则就是过犹不及,最后导致整体出现问题。

个人认为,目前大部分所谓基于微服务的中台系统就是陷入了过于强调解耦的误区,导致过度的解耦设计,而忽略了由此带来的弊端,最后陷入了泥潭。

分层是计算机科学永恒的主题,service mesh是微服务的未来,这样看来这两个以后都会被取代,只有spring boot能够继续存活。

这是两个作用和使用场景不同的框架,目前的情况来看都不会被淘汰。

springcloud用于微服务,dubbo用于服务治理,各有各的适用场景。

在国外springcloud使用的多,在国内dubbo使用的多。

springcloud由国外的spring团队开发维护,热度和可靠性不用多说,dubbo由国内的阿里巴巴开发,现交由Apache孵化器,可靠性也很高。

Spring cloud是当前主流的微服务架构,轻便,插件式的设计理念很赢得当前开发及企业的青睐,在很多方面优于dubbo的架构设计,我认为dubbo最终会被淘汰,但短时间内不会,因为很多金融机构之前很多系统用的是dubbo架构,金融机构在短时间内考虑系统和业务的稳定性不会立刻就更新换代

dubbo

对内rpc,对外>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10629825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存