微服务架构Dubbo之原理讲解及利用zookeeper作为注册中心进行高可用测试

前言:今天给大家给大家讲解的是Dubbp的调用原理,以及一个demo测试向大家展示Dubbo的运行过程。在前面一文中,给大家讲到了—Dubbo之Zookeeper安装测试和Zookeeper集群的搭建 ,在其中已经给大家讲到了Zookeeper集群的搭建,今天我们也要用到该集群,如果没有安装的,请先行安装,再看下文!!


1.Dubbo原理

1.1 高性能Java RPC框架

Apache Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

在这里插入图片描述

1.2 Dubbo特性

  • 面向接口代理的高性能RPC调用
  • 服务自动注册与发现
  • 运行期流量调度
  • 智能负载均衡
  • 高度可扩展能力
  • 可视化的服务治理与运维

以上几点接来源于dubbo的官网:http://dubbo.apache.org/zh-cn/

1.3 Dubbo工作原理

1.3.1 Dubbo高可用测试
  • 测试1:将后台提供者宕机一台,检查是否影响消费者调用。

不影响 注册中心实现心跳检测机制. 即使没有注册中心,又要有提供者就可以正常访问

  • 测试2: 将zookeeper宕机一台,检查是否影响用户使用。

不影响 因为zk搭建了集群.可以实现高可用

  • 测试3: 将zookeeper集群全部宕机,检查是否影响用户使用。

不影响. 因为消费者将zk注册中心的数据,已经保存到本地(消费者的内存中),所以不收影响

1.3.2 Dubbo通讯问题
核心:微服务通信一般都是靠RPC(统称)
dubbo中的RPC基于dubbo的协议规范

在这里插入图片描述

1.4 Dubbo调用原理

1.4.1 原理说明
  • 需求:是否可以实现服务的自动发现和注册

在这里插入图片描述

图很丑,没有大神级的画得好看,将就着看吧。
图示解析

  1. 当服务提供者启动时,会将服务数据保存到zk中。
  2. 当zk接收用户服务信息之后,会将数据保存到服务列表中。
  3. 当消费者启动时,先连接zk获取zk的服务列表。
  4. 之后缓存到本地,方便下次访问。
  5. 消费者接收用户的请求时,根据负载均衡策略,实现请求的发送,并且获取服务端的数据(RPC)。
  6. Zk实时的心跳检测,如果后台服务器宕机,则需要更新自己的服务列表,同时广播给全部的客户端。

1.5 Dubbo入门案例

1.5.0 导入数据库
CREATE DATABASE /*!32312 IF NOT EXISTS*/`jtdb` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `jtdb`;

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(40) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `sex` char(40) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `cc` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8;

/*Data for the table `user` */

insert  into `user`(`id`,`name`,`age`,`sex`) values (1,'黑熊精',4000,'男'),(2,'鲤鱼精',5000,'男'),(3,'金角大王',3000,'男'),(4,'银角大王',4000,'男'),(5,'唐僧',30,'男'),(6,'悟空',501,'男'),(7,'白龙驴',2000,'男'),(8,'八戒',502,'男'),(9,'沙悟净',503,'男'),(11,'小乔',17,'女'),(12,'貂蝉',18,'女'),(16,'黄月英',18,'女'),(17,'孙尚香',18,'女'),(18,'甄姬c',20,'女'),(21,'孙尚香D',18,'女'),(22,'刘备',40,'男'),(23,'陆逊',33,'男'),(24,'陆逊',33,'男'),(25,'关羽',40,'男'),(27,'阿科',20,'女'),(31,'王昭君',19,'女'),(38,'貂蝉',18,'女'),(39,'西施',18,'女'),(40,'严真煌',16,'女'),(41,'白骨精',18,'女')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值