服务调用之《dubbo直连和通过ZK连接》

Zookeeper注册中心:
  • zk主要用来提供注册服务和负载均衡,解决分布式一致性问题:
  • 流程说明:
    • 服务提供者向zookeeper的注册中心注册服务,即向注册中心写入服务提供URL地址;
    • 服务消费者向注册中心订阅服务,然后注册中心会想消费者提供一份服务提供者URL地址列表;
    • 服务消费者遍历服务提供者列表找到相应的服务;
      • <font color = blue>消费者会在本地缓存提供者列表;</font>这意味着如果注册中心突然宕机,短时间内也不会影响dubbo消费者正常调用服务提供者的服务。
  • 具体怎么使用ZooKeeper作为dubbo服务的注册中心,网上有很多教程,大体如下:
<?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的配置为:

<?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.xsd
       http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!--      <dubbo:provider protocol="dubbo" port="30021"/>-->
  <dubbo:service retries="0" version="1.0.0" interface="cn.gov.zcy.trade.creed.facade.api.TradeCreedFacade"
    ref="tradeCreedFacadeImpl" class="cn.gov.zcy.trade.creed.facade.core.facade.TradeCreedFacadeImpl" timeout="10000"/>
</beans>
  • 还可以使用注解的方式:


    6859F9F4-E3F1-46E6-A999-DD29BD26E76F.png
  • 其中,dubbo-consumer的配置为:
<?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.xsd
       http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
  <dubbo:reference retries="0" version="1.0.0" interface="cn.gov.zcy.paas.user.service.UserReadService"
    id="userReadService" check="false" timeout="10000"/>
  <dubbo:reference retries="0" version="1.0.0"
    interface="cn.gov.zcy.extra.service.CaiNiaoExpressService" id="caiNiaoExpressService" check="false"
    timeout="10000"/>
</beans>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容