zookeeper与dubbo结合实例
来源:互联网 发布:sql server有证书吗 编辑:程序博客网 时间:2024/05/20 03:47
dubbo是阿里开源的一个分布式服务框架,使用它可以完成远程服务调用(RPC)。今天来写一下这种分布式开发的demo
RPC可以简单理解为,两个不同工程之间代码的中的方法相互调用的过程。
实现的基本过程:建立两个java工程provider(生产者)和consumer(消费者),一个provider负责提供服务(service),另一个consumer可以调用provider提供的服务。
环境准备
- spring的环境(这个就不说明了)
- dubbo的环境
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> </dependency>
- zkClient的环境
没有zkClient环境会报错
Exception in thread "main" java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException
<dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency>
Provider服务
服务配置文件provider.xml
<?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:application name="provider"/> <!-- 使用zookeeper暴露服务地址 --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/> <!-- 用dubbo协议在20881端口暴露服务 --> <dubbo:protocol name="dubbo" port="20881"/> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="hpu.lzl.study.service.HelloService" ref="helloService"/> <!-- 和本地bean一样实现服务 --> <bean id="helloService" class="hpu.lzl.study.service.impl.HelloServiceImpl"/></beans>
HelloService和HelloServiceImpl是一个简单的接口与实现,这里就不粘贴了。
provider的main函数
public class Provider { public static void main( String[] args ) { ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath*:provider.xml"); classPathXmlApplicationContext.start(); try { System.in.read(); } catch (IOException e) { e.printStackTrace(); } }}
Consumer工程
客户端配置文件consumer.xml
<?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:application name="consumer" /> <!-- 使用zookeeper暴露服务地址 --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" /> <dubbo:reference id="helloService" interface="hpu.lzl.study.service.HelloService" /></beans>
这里需要引入provider的HelloeService的接口类。
启动consumer的main函数
public class Consumer { public static void main( String[] args ) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath*:consumer.xml"); context.start(); HelloService helloService = (HelloService) context.getBean("helloService"); helloService.sayHello("lzl"); }}
验证调用过程
依次启动provider工程和consumer工程。并且保证dubbo的服务注册到zookeeper中,zookeeper启动端口号是配置文件中的2181端口
会发现consumer调用了provider工程中的方法。
我们还没有通过zookeeper的zkCli来查看,zookeeper所注册到的服务有哪些。
到这里,完成了简单的dubbo的分布式调用过程。
更深入的理解可以根据以下
参考博客:
http://blog.csdn.net/killuazoldyck/article/details/72773873
http://blog.csdn.net/congcong68/article/details/41113239
http://blog.csdn.net/quhongwei_zhanqiu/article/details/41683081
阅读全文
0 0
- zookeeper与dubbo结合实例
- Zookeeper教程(二):ZooKeeper与Dubbo结合以及原理讲解
- Dubbo+Zookeeper入门实例
- dubbo + zookeeper 实例
- Dubbo+Zookeeper入门实例
- dubbo+zookeeper开发实例
- zookeeper与dubbo关系
- zookeeper与dubbo
- zookeeper与dubbo关系
- Zookeeper与Dubbo浅析
- zookeeper与dubbo集成
- dubbo与zookeeper
- dubbo、zookeeper、Spring整合实例
- Dubbo新手入门实例HelloWorld(zookeeper)
- spring+zookeeper+dubbo使用实例
- zookeeper和dubbo的结合示例
- dubbo和zookeeper,spring结合实现服务
- Dubbo框架结合Zookeeper注册中心使用
- 【XSY1522】灯 乱搞
- App的分类
- 树的最小支配集,最小点覆盖,最大独立集两种算法
- 开发一个iOS应用没有那么容易
- 通过JMX访问Spring的Bean
- zookeeper与dubbo结合实例
- 请求报文、相应报文
- CSS基础(一)
- discuzX3.2去掉titlePowered by Discuz!
- java程序中方法执行的前后顺序
- 2017 百度之星 初赛B轮 HDU6114 HDU6118 HDU6119
- 用shell脚本解压hadoop天气数据
- C语言实现一维数组实现输出杨辉三角
- 计算机视觉方面的数据集收藏(CV Datasets on the web)