dubbo+zookeeper简单实现远程接口调用

本文详细介绍了如何使用Zookeeper作为注册中心,配合Dubbo实现远程接口调用。首先讲解了Dubbo的基本概念和Zookeeper在Dubbo中的作用,接着通过步骤演示了项目结构设置、依赖引入、服务提供方与消费方的配置,以及最终启动验证的过程。

zookeeper安装:https://blog.youkuaiyun.com/weixin_38943098/article/details/88740399

dubbo监控Monitor安装:https://blog.youkuaiyun.com/weixin_38943098/article/details/88735243

一、原理相关

1. 对dubbo的理解:

    Dubbo是Alibaba开源的分布式服务框架,从字面理解就是项目分布式的时候用的到Dubbo,大概意思就是将庞大复杂的项目核心业务拆分成相对独立的服务,每个服务都可以部署一台或多台服务器,利用Dubbo远程调用服务(接口)。

2.  Dubbo注册中心的作用:

  

   如图所示,服务提供方发布服务到服务注册中心; 服务消费方从服务注册中心订阅服务;服务消费方调用已经注册的可用服务;Monitor负责对提供方和消费方的监控。zookeeper集群时,服务的消费者从提供者地址列表中,基于软负载均衡算法,选一个提供者进行调用,如果调用失败,再选另一个提供者调用, 每个zookeeper节点都是服务的提供者。

3.  zookeeper在dubbo中的作用:

    zookeeper是树形结构的目录服务,支持变更推送,不负责转发请求,在Dubbo中只作为服务的发布与查询。

    zookeeper是一个分布式的服务框架,能与Dubbo做集群部署,保证高可用;在生产环境中,一般部署3,5,7个奇数节点(服务器);部署的越多,可靠性就越高。

    zookeeper集群中只要不超过半数的服务器当机,服务就能正常运行;

    zookeeper允许多个分布在不同服务器上的进程基于一个共享的、类似标准文件系统的树状虚拟文件系统来进行协作。

    zookeeper节点有主从之分,通过leader选举方式,选出主节点。

二、代码实现

1. 项目结构

2. crm-parent的pom文件中添加dubbo坐标

                <!-- dubbo相关 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.5.3</version>
			<exclusions>
				<exclusion>
					<!-- 排除传递spring依赖 -->
					<groupId>org.springframework</groupId>
					<artifactId>spring</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jboss.netty</groupId>
					<artifactId>netty</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.4.7</version>
		</dependency>
		<dependency>
			<groupId>com.github.sgroschupf</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.1</version>
		</dependency>

3. crm-dubbo-service相关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值