Dubbo+zookeeper分布式

目录

 

Dubbo 是什么

为什么要用dubbo

如何用dubbo

异常:No provider available for the service


Dubbo 是什么

  • 一款分布式服务框架
  • 高性能和透明化的RPC远程服务调用方案
  • SOA服务治理方案

Dubbo 架构流程图

这里写图片描述


为什么要用dubbo

①:Dubbo有服务治理的能力:透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单 配置,没有任何API侵入。

②:集群容错:软负载均衡及容错机制,可在内网替代F5等硬件负鞭均衡器,降低成本,减少单点。

③:自动发现:服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。 另外:Dubbo采用全Spring 配置方式,功明化接入应用,对应用没有任何API侵只需用Spring加载Dubbo的配置即可,Dubbo基FSpring的Schema扩入,展进行加载。

   特性

  • 当提供者出现断电等异常停机时,注册中心能自动删除提供者信息
  • 当注册中心重启时,能自动恢复注册数据,以及订阅请求
  • 当会话过期时,能自动恢复注册数据,以及订阅请求
  • 当设置 < dubbo:registry check="false" /> 时,记录失败注册和订阅请求,后台定时重试
  • 可通过 < dubbo:registry username="admin" password="1234" /> 设置 zookeeper 登录信息
  • 可通过 < dubbo:registry group="dubbo" /> 设置 zookeeper 的根节点,不设置将使用无根树
  • 支持 号通配符 < dubbo:reference group="" version="*" />,可订阅服务的所有分组和所有版本的提供者

如何用dubbo

参考地址

https://blog.csdn.net/hua1586981/article/details/79195111 

https://www.cnblogs.com/linjiaxin/p/7261251.html

真实项目中的zookeeper中的节点至少是三个节点以上的,多个IP用逗号隔开。 


异常:No provider available for the service

此异常是由于服务没有可以使用的提供者,就是说在zookeeper注册中心(zookeeper-url)中没有可供消费者调用的url,消费者访问提供者就失败了。

具体原因分析:由于dobbo在启动的时候会去检查各服务之间的依赖关系,由于启动的时候消费者没有检查到提供者提供的服务(此时可能提供者还没启动),所以报错

在消费者配置文件中,需要将<dubbo:registry address="zookeeper://127.0.0.1:2181"/>修改为<dubbo:registry address="zookeeper://127.0.0.1:2181" check="false"/>

由于dubbo在注册的时候是默认会检查服务的依赖关系的

猜你喜欢

转载自blog.csdn.net/yanxinduan/article/details/81085001