A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 梦想飞翔的猪 于 2018-2-2 16:11 编辑

【石家庄校区】总复习系列贴-dubbo+zookeeper


zookeeper:
我们用zookeeper做了dubbo的注册中心和solr的集群管理。
想要了解更多关于zookeeper请参考:https://www.cnblogs.com/wuxl360/p/5817471.html
zookeeper的安装请参考:
dubbo是什么?
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求。
dubbo架构
节点角色说明:

  • Provider: 暴露服务的服务提供方。
  • Consumer: 调用远程服务的服务消费方。
  • Registry: 服务注册与发现的注册中心。
  • Monitor: 统计服务的调用次数和调用时间的监控中心。
  • Container: 服务运行容器。
调用关系说明:

  • 0. 服务容器负责启动,加载,运行服务提供者。
  • 1. 服务提供者在启动时,向注册中心注册自己提供的服务。
  • 2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
dubbo怎么用:
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

单一工程中spring的配置
[XML] 纯文本查看 复制代码
[/align][align=left]<bean id="xxxService" class="com.xxx.XxxServiceImpl" />[/align]<bean id="xxxAction" class="com.xxx.XxxAction">
       <property name="xxxService" ref="xxxService" />
</bean>
远程服务:
在本地服务的基础上,只需做简单配置,即可完成远程化:

将上面的local.xml配置拆分成两份,将服务定义部分放在服务提供方remote-provider.xml,将服务引用部分放在服务消费方remote-consumer.xml。
并在提供方增加暴露服务配置<dubbo:service>,在消费方增加引用服务配置<dubbo:reference>。
发布服务:
[XML] 纯文本查看 复制代码
[/align][align=left]<!-- 和本地服务一样实现远程服务 -->[/align]<bean id="xxxService" class="com.xxx.XxxServiceImpl" />
<!-- 增加暴露远程服务配置 -->
<dubbo:service interface="com.xxx.XxxService" ref="xxxService" />
调用服务:
[XML] 纯文本查看 复制代码
[/align][align=left]<!-- 增加引用远程服务配置 -->[/align]<dubbo:reference id="xxxService" interface="com.xxx.XxxService" />
<!-- 和本地服务一样使用远程服务 -->
<bean id="xxxAction" class="com.xxx.XxxAction">
       <property name="xxxService" ref="xxxService" />
</bean>

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马