您的位置:首页 > 其它

zookeeper结合dubbo实现分布式接口调用

2017-10-30 10:36 519 查看
一、Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务, 目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

1)官网下载zookeeper解压到指定文件夹下并修改配置文件

tickTime=2000

initLimit=10

syncLimit=5

clientPort=2181

dataDir=F:\zookeeper-3.5.2-alpha\data\zookeeper

dataLogDir=F:\zookeeper-3.5.2-alpha\logs\zookeeper

windows下双击zkServer.cmd启动服务

2)集群配置也很简单

tickTime=2000

dataDir=/home/hadoop/storage/zookeeper

clientPort=2181

initLimit=5

syncLimit=2

server.1=slave-01:2888:3888

server.2=slave-02:2888:3888

server.3=slave-03:2888:3888

二 dubbo admin管理界面安装

1 下载dubbo-admin-2.8.4.war 放到新的tomcat webapp下 修改dubbo.property文件指定zookeeper地址以及密码,两个都是密码,用户名分别为root,guest,dubbo.registry.address=zookeeper://127.0.0.1:2181

dubbo.admin.root.password=waylon

dubbo.admin.guest.password=Waylon

三 Dubbo配置

1 生产者端配置方式(单机)

<dubbo:application name="${app.name}" owner="${app.owner}" />    <dubbo:registry address="zookeeper://127.0.0.1:2181" />    <dubbo:protocol name="${dubbo.protocol.name}"
host="127.0.0.1"
port="20880"
threads="${dubbo.provider.threads}"/>    <dubbo:monitor protocol="registry" />    <dubbo:provider timeout="${dubbo.timeout}" executes="200" cluster="failfast"/>    <dubbo:consumer check="false" />


<!—暴露接口 -->


<dubbo:service interface="com.zwdai.search.service.IIndexService" ref="indexServiceImpl" version="2.5.3" />
<dubbo:service interface="com.zwdai.search.service.ISearchService" ref="searchServiceImpl" version="2.5.3" />

<bean id="indexServiceImpl" class="com.zwdai.search.impl.IndexServiceImpl" />
<bean id="searchServiceImpl" class="com.zwdai.search.impl.SearchServiceImpl" />


启动过程中可能遇到异常Caused by: java.net.BindException: Address already in use: bind此异常不影响不同应用之间的通信,可以忽略。

2 消费者端调用zookeeper需要做的工作

1) 配置maven依赖,把需要的service以jar的形式添加到maven依赖下

配置消费者需要的接口

消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -
<dubbo:application name="admin-consumer2"/>


<dubbo:registry id="qd_registry"  protocol="zookeeper" address="${dubbo.zk}" />


<!-- 生成远程服务代理,可以和本地bean一样使用demoService


<dubbo:reference id="ficoService" interface="com.zwdai.fico.api.FicoService" />


使用dubbo协议 注册中心暴露服务地址
<dubbo:registry id="wh_registry" protocol="dubbo"  address="zookeeper://172.16.16.28:2181"/>


生成远程服务代理,可以像使用本地bean一样使用demoService

<dubbo:reference id="searchService" interface="com.zwdai.search.service.ISearchService" version="2.5.3" />   <dubbo:reference id="indexService" interface="com.zwdai.search.service.IIndexService" version="2.5.3" />


<!-- 注解扫描 -->


<dubbo:annotation package="com.zwdai.webadmin.contorller" />


上述配置通过id的区分可以配置多个zookeeper中心

注意事项

1发布接口可以通过maven的 clean deploy即可把相应的model上传至私服

2如果项目无法访问可以检查一下啊tomcat moduel是否修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  分布式 zookeeper dubbo
相关文章推荐