dubbo和zookeeper

下载并安装Zookeeper:

    下载地址:http://www.apache.org/dist/zookeeper/

因为Zookeeper在启动时会找zoo.cfg这个文件作为默认配置文件,所以

启动Zookeeper

接着 下载dubbo-admin

前往github上下载dubbo-admin:https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.0 

在dubbo-admin文件夹,输入cmd,打开dos窗口,输入以下命令

mvn  package -Dmaven.skip.test=true

打包好的war

将war包复制到tomcat的webapps文件夹下

在tomcat的bin目录下面,打开dos窗口,启动tomcat;成功启动后,关闭tomcat。这时候上图的dubbo-admin-2.6.0文件就出现了

用于指定zookeeper地址信息。默认的就是这个地址,不用改了

注:经测试,最好将Tomcat的【\webapps\ROOT】目录中的内容全部删除,然后将war包中的内容解压到其中,这样管理界面就成了Tomcat的默认应用,并且管理页面中的一些操作也不会发生404错误了。

账号 密码是 root,root

启动我们项目中的服务

下面是我启动的启动类所在模块的applicationContext-dubbo-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="zheng-upms-rpc-service"/>

    <dubbo:registry address="zookeeper://localhost:2181"/>

    <dubbo:protocol name="dubbo" port="20881"/>

    <!--<dubbo:monitor protocol="registry"/>-->

    <!-- 系统 -->
    <bean id="upmsSystemService" class="com.zheng.upms.rpc.service.impl.UpmsSystemServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsSystemService" ref="upmsSystemService" timeout="10000"/>

    <!-- 组织 -->
    <bean id="upmsOrganizationService" class="com.zheng.upms.rpc.service.impl.UpmsOrganizationServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsOrganizationService" ref="upmsOrganizationService" timeout="10000"/>

    <!-- 用户组织 -->
    <bean id="upmsUserOrganizationService" class="com.zheng.upms.rpc.service.impl.UpmsUserOrganizationServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsUserOrganizationService" ref="upmsUserOrganizationService" timeout="10000"/>

    <!-- 用户 -->
    <bean id="upmsUserService" class="com.zheng.upms.rpc.service.impl.UpmsUserServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsUserService" ref="upmsUserService" timeout="10000"/>

    <!-- 角色 -->
    <bean id="upmsRoleService" class="com.zheng.upms.rpc.service.impl.UpmsRoleServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsRoleService" ref="upmsRoleService" timeout="10000"/>

    <!-- 权限 -->
    <bean id="upmsPermissionService" class="com.zheng.upms.rpc.service.impl.UpmsPermissionServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsPermissionService" ref="upmsPermissionService" timeout="10000"/>

    <!-- 角色权限 -->
    <bean id="upmsRolePermissionService" class="com.zheng.upms.rpc.service.impl.UpmsRolePermissionServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsRolePermissionService" ref="upmsRolePermissionService" timeout="10000"/>

    <!-- 用户权限 -->
    <bean id="upmsUserPermissionService" class="com.zheng.upms.rpc.service.impl.UpmsUserPermissionServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsUserPermissionService" ref="upmsUserPermissionService" timeout="10000"/>

    <!-- 用户角色 -->
    <bean id="upmsUserRoleService" class="com.zheng.upms.rpc.service.impl.UpmsUserRoleServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsUserRoleService" ref="upmsUserRoleService" timeout="10000"/>

    <!-- 操作日志 -->
    <bean id="upmsLogService" class="com.zheng.upms.rpc.service.impl.UpmsLogServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsLogService" ref="upmsLogService" timeout="10000"/>

    <!-- 接口服务 -->
    <bean id="upmsApiService" class="com.zheng.upms.rpc.service.impl.UpmsApiServiceImpl"/>
    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsApiService" ref="upmsApiService" timeout="10000"/>

</beans>

服务消费方 

applicationContext-dubbo-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="zheng-upms-server"/>

    <dubbo:registry file="./zheng-upms-server-dubbo.cache" address="zookeeper://localhost:2181"/>

    <!-- 订阅服务 -->
    <dubbo:consumer check="false"/>

    <!-- 系统 -->
    <dubbo:reference id="upmsSystemService" interface="com.zheng.upms.rpc.api.UpmsSystemService" mock="true"/>
    <!-- 组织 -->
    <dubbo:reference id="upmsOrganizationService" interface="com.zheng.upms.rpc.api.UpmsOrganizationService" mock="true"/>
    <!-- 用户组织 -->
    <dubbo:reference id="upmsUserOrganizationService" interface="com.zheng.upms.rpc.api.UpmsUserOrganizationService" mock="true"/>
    <!-- 用户 -->
    <dubbo:reference id="upmsUserService" interface="com.zheng.upms.rpc.api.UpmsUserService" mock="true"/>
    <!-- 角色 -->
    <dubbo:reference id="upmsRoleService" interface="com.zheng.upms.rpc.api.UpmsRoleService" mock="true"/>
    <!-- 权限 -->
    <dubbo:reference id="upmsPermissionService" interface="com.zheng.upms.rpc.api.UpmsPermissionService" mock="true"/>
    <!-- 角色权限 -->
    <dubbo:reference id="upmsRolePermissionService" interface="com.zheng.upms.rpc.api.UpmsRolePermissionService" mock="true"/>
    <!-- 用户权限 -->
    <dubbo:reference id="upmsUserPermissionService" interface="com.zheng.upms.rpc.api.UpmsUserPermissionService" mock="true"/>
    <!-- 用户角色 -->
    <dubbo:reference id="upmsUserRoleService" interface="com.zheng.upms.rpc.api.UpmsUserRoleService" mock="true"/>
    <!-- 操作日志 -->
    <dubbo:reference id="upmsLogService" interface="com.zheng.upms.rpc.api.UpmsLogService" mock="true"/>
    <!-- 接口服务 -->
    <dubbo:reference id="upmsApiService" interface="com.zheng.upms.rpc.api.UpmsApiService" mock="true"/>

</beans>

源代码

https://github.com/zhaomengxia/zheng.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dubbo是一个高性能、轻量级的Java RPC框架,提供了完善的服务治理方案。而Zookeeper是一个分布式协调服务框架,主要用于解决分布式系统中的命名服务、配置管理、分布式锁和领导者选举等问题。DubboZookeeper在分布式系统中担任不同的角色,但也有协同作用,下面分别详细介绍。 Dubbo作为一款RPC框架,它能够将服务的提供者和消费者连接起来,通过网络实现方法的调用和数据的传输。Dubbo提供了众多的服务治理功能,包括负载均衡、容错机制、路由策略、服务降级、服务发布等等。通过Dubbo的服务治理功能,我们能够有效地管理服务的注册和发现,可以快速地调整服务的负载均衡策略和容错机制,以及实现服务的动态上下线等等。Dubbo通过Zookeeper实现服务的注册和发现,把服务的元数据发布到Zookeeper的节点上,供消费者进行订阅和发现。 Zookeeper作为分布式协调服务框架,主要用于解决分布式系统中的服务发现、配置管理、领导者选举、分布式锁等问题。Zookeeper通过维护一份树形结构的节点信息,实现了分布式环境下的数据一致性。在服务发现方面,Zookeeper通过维护服务的注册中心,记录所有可用的服务提供者和信息,为消费者提供服务的订阅和发现服务。在配置管理方面,我们可以将系统中的配置信息保存在Zookeeper上,让所有的服务消费者读取配置,以保持一致性。在领导者选举方面,Zookeeper可以通过节点的序列化和监听机制,保证多个节点进行Leader选举的唯一性。在分布式锁方面,Zookeeper可以通过节点的临时性和有序性实现分布式锁的功能。 综上,DubboZookeeper在分布式系统中具有不同的角色,但也有协同作用。Dubbo把服务的元数据发布到Zookeeper的节点上,供消费者进行订阅和发现,通过Dubbo的服务治理功能,可以有效地管理服务的注册和发现,快速调整服务的负载均衡和容错策略等等。而Zookeeper则负责维护分布式系统中的数据一致性,提供分布式环境下的服务发现、配置管理、领导者选举、分布式锁等基础设施服务,为Dubbo的服务治理提供数据支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值