Dubbo的使用详解
来源:互联网 发布:泰剧app软件下载 编辑:程序博客网 时间:2024/05/22 04:28
公司现在要重新搭建主站的架构,将采用分布式的架构,用dubbo作为系统间的通信。
下面详细来记录下dubbo的使用。
dubbo的基本组成有:服务提供方,服务调用方,注册中心,监控中心,容器。注册中心采用dubbo官方推荐的zookeeper来完成。
第一步:安装zookeeper注册中心,将zookeeper安装在本地搭建的linux虚拟机中。
1:安装jdk
2:解压缩zookeeper压缩包
3:将conf文件夹下zoo_sample.cfg复制一份,改名为zoo.cfg
4:修改配置dataDir属性,指定一个真实目录/root/zookeeper-3.4.6/data
5:
启动zookeeper:bin/zkServer.sh start
关闭zookeeper:bin/zkServer.sh stop
查看zookeeper状态:bin/zkServer.sh status
第二步:现在来看下dubbo服务要怎么用。
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。
发布服务:
<!-- 和本地服务一样实现远程服务 -->
<bean id="xxxService" class="com.xxx.XxxServiceImpl" />
<!-- 增加暴露远程服务配置 -->
<dubbo:service interface="com.xxx.XxxService" ref="xxxService" />
调用服务:
<!-- 增加引用远程服务配置 -->
<dubbo:reference id="xxxService" interface="com.xxx.XxxService" />
<!-- 和本地服务一样使用远程服务 -->
<bean id="xxxAction" class="com.xxx.XxxAction">
<property name="xxxService" ref="xxxService" />
</bean>
实际开发中示例:
<!-- 使用dubbo发布服务 -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="taotao-manager" />
<dubbo:registry protocol="zookeeper"
address="192.168.25.128:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.taotao.service.TbItemService" ref="tbItemServiceImpl" timeout="300000"/>
<dubbo:application name="taotao-manager-web"/>
<dubbo:registry protocol="zookeeper" address="192.168.25.128:2181"/>
<dubbo:reference interface="com.taotao.service.TbItemService" id="tbItemService" />
- dubbo的使用详解
- Dubbo的使用详解
- dubbo使用详解
- dubbo的详解
- dubbo 的使用
- dubbo 的使用
- dubbo的基本使用
- dubbo的使用场景
- dubbo的使用总结
- dubbo 的使用
- dubbo的使用2
- Dubbo的使用
- 简单的使用dubbo
- Dubbo的使用简介
- dubbo使用的协议
- dubbo 的使用
- dubbo的简单使用
- dubbo 的使用
- python——三道贪心算法例题
- 正确使用Qt多线程
- OkHttp3源码解析04-失败重连
- Adobe Dreamweaver CC 2018 Mac版 v18.0.0中文版下载
- 常用的凸优化方法
- Dubbo的使用详解
- Python模块的安装路径
- bzoj2724 [Violet 6]蒲公英 分块
- 第八周【项目2
- 关于DOM级别的一些问题,DOM0,DOM1,DOM2
- ARC 073
- bzoj1922: [Sdoi2010]大陆争霸
- Unity中的Vuforia入门2017.2
- Educational Codeforces Round 30(A+B)