avatar

目录
服务调用之《dubbo直连和通过ZK连接》
Zookeeper注册中心:
  • zk主要用来提供注册服务和负载均衡,解决分布式一致性问题:
  • 流程说明:
    • 服务提供者向zookeeper的注册中心注册服务,即向注册中心写入服务提供URL地址;
    • 服务消费者向注册中心订阅服务,然后注册中心会想消费者提供一份服务提供者URL地址列表;
    • 服务消费者遍历服务提供者列表找到相应的服务;
      • 消费者会在本地缓存提供者列表;这意味着如果注册中心突然宕机,短时间内也不会影响dubbo消费者正常调用服务提供者的服务。
  • 具体怎么使用ZooKeeper作为dubbo服务的注册中心,网上有很多教程,大体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 声明应用名称 -->
<dubbo:application name="platform-service" organization="test"/>
<!--注册中心为zk -->
<dubbo:registry protocol="zookeeper" address="zk.test.com:2181" file="./.dubbo-platform"/>
<!--把服务暴露在dubbo的21884端口-->
<dubbo:protocol name="dubbo" port="21884" serialization="hessian2" />
<dubbo:protocol name="rest" port="8888"/>
</beans>
直接连接:
  • 在开发和测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候服务提供者和服务消费者可以直接沟通,即点对点直连

    • 点对点直连方式,是以dubbo服务接口为单位,忽略注册中心的服务提供者列表;
    • A接口采用点对点直连,不影响B接口从注册中心获取服务提供者列表信息;
  • 其中,dubbo-provider的配置为:

    • 还可以使用注解的方式:

  • 其中,dubbo-consumer的配置为:

文章作者: 海东青
文章链接: https://haohaogit.github.io/2019/12/26/%E6%9C%8D%E5%8A%A1%E8%B0%83%E7%94%A8%E4%B9%8B%E3%80%8Adubbo%E7%9B%B4%E8%BF%9E%E5%92%8C%E9%80%9A%E8%BF%87ZK%E8%BF%9E%E6%8E%A5%E3%80%8B/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hexo
打赏
  • 微信
    微信
  • 支付宝
    支付宝