首页 > 其他分享 >Dubbo微服务架构

Dubbo微服务架构

时间:2023-06-05 21:55:04浏览次数:26  
标签:Dubbo 调用 服务 消费者 提供者 ZooKeeper 架构 节点

1、什么是微服务?

微服务就是一种软件开发架构风格,将应用程序拆分成小的、独立的服务单元,每个服务单元都可以独立部署和扩展,并通过轻量级的通信机制相互协作。

2、什么是Dubbo?

Dubbo 是一款高性能的微服务框架,它提供了多种开箱即用的功能,例如服务发现、负载均衡、远程调用等。

3、远程调用服务的全过程

  1. 服务容器负责启动、加载、运行服务提供者。
  2. 服务提供者(生产者)在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心.

4、注册中心zookeeper的工作流程

 

1、服务提供方启动

​ 服务提供者在启动的时候,会在ZooKeeper上注册服务。所谓注册服务,其实就是在ZooKeeper的/dubbo/com.foo.BarService/providers节点下创建一个子节点,并写入自己的URL地址(包括ip地址和端口号),这就代表了com.foo.BarService这个服务的一个提供者。

2、服务消费者启动

​ 服务消费者在启动的时候,会向ZooKeeper注册中心订阅自己的服务。其实,就是读取并订阅ZooKeeper上/dubbo/com.foo.BarService/providers节点下的所有子节点,并解析出所有提供者的URL地址来作为该服务地址列表。

​ 同时,服务消费者还会在ZooKeeper的/dubbo/com.foo.BarService/consumers节点下创建一个临时节点,并写入自己的URL地址,这就代表了com.foo.BarService这个服务的一个消费者。

3、消费者远程调用提供者

​ 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一个提供者进行调用,如果调用失败,再选另一个提供者调用。

4、增加服务提供者

​ 增加提供者,也就是在providers下面新建子节点。一旦服务提供方有变动,zookeeper就会把最新的服务列表推送给消费者。

5、减少服务提供者

​ 所有提供者在ZooKeeper上创建的节点都是临时节点,利用的是临时节点的生命周期和客户端会话相关的特性,因此一旦提供者所在的机器出现故障导致该提供者无法对外提供服务时,该临时节点就会自动从ZooKeeper上删除,同样,zookeeper会把最新的服务列表推送给消费者。

6、ZooKeeper宕机之后

​ 消费者每次调用服务提供方是不经过ZooKeeper的,消费者只是从zookeeper那里获取服务提供方地址列表。所以当zookeeper宕机之后,不会影响消费者调用服务提供者,影响的是zookeeper宕机之后如果提供者有变动,增加或者减少,无法把最新的服务提供者地址列表推送给消费者,所以消费者感知不到。

 

5、dubbo实现负载均衡的方法:

随机算法、权重轮询算法、一致性Hash算法、最少活跃数算法

标签:Dubbo,调用,服务,消费者,提供者,ZooKeeper,架构,节点
From: https://www.cnblogs.com/coooookie/p/17459022.html

相关文章

  • 使用Node.js搭建的微服务器基本流程
    前言使用Node.js搭建的微服务器,处理注册登录操作的流程详解。主要包括注册,登录两大模块。Node.js项目的搭建基于Express框架mongodb数据库搭建的Web服务器基本配置1.初始化Node.js项目`npminit`2.项目目录结构3.项目结构介绍config:保存项目一些公共的配置db......
  • 搭建本地开发服务器
    原文点此跳转注意在上一个案例的基础上添加本地开发服务器,请保留上个案例的代码。如需要请查看 Webpack使用。搭建本地开发服务器这一个环节是非常有必要的,我们不可能每次修改源代码就重新打包一次。这样的操作是不是太繁琐了。所以本地开发服务器的作用就能体现了,它会自动监听我......
  • Amazon电商、音乐、云服务不分家,亚马逊云科技告诉你如何巧用全球业务体系占据80%中国
    花木兰为啥“东市买骏马,西市买鞍鞯”?在半年一度的6.18电商购物节里,大家可能会说:“因为没有跨店满减”……但事实是,如果东市都可以把骏马、鞍鞯买齐是怎样的一种体验?亚马逊云科技就可以做到,作为占据80%中国企业出海市场的亚马逊云科技,其覆盖全球的业务体系,从亚马逊海外购、......
  • 小程序容器技术助力数字门户拓展多样化服务
    数字门户是指提供一站式访问和集成多个在线服务、信息和资源的网络平台。它通常是一个网站或应用程序,为用户提供广泛的功能和服务,如新闻、天气预报、电子邮件、在线购物、社交媒体、银行服务、电子支付、在线学习、政府服务等。数字门户的目标是通过集成和整合各种在线服务,为用户......
  • 前后端分离架构下使用 Sa-Token 完成登录认证
    一、架构分析目前绝大多数系统都已经采用“前后端分离”架构来设计了,传统的Session模式鉴权也不再适合这种架构(或者需要额外写很多的代码来专门适配)。Sa-Token是一个java轻量级权限认证框架,专为前后端分离架构打造,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网......
  • 客户至上 服务至极 ——优维服务流程标准化体系
    ◎如何用服务打动客户?在思考这个问题之前,首先我们要了解做好服务最难的是什么?众所周知,由机器作业出来的东西是一致且规范的,而服务不一样。服务,是需要人来参与的,当由不同的人来完成某件事的时候,就会出现差异。所以,服务最难的就是交付物的一致性。那么,如何实现交付物的一致性,那就是......
  • AI版女网红“半藏森林”上线,服务项目让人意想不到
    目前首批网红明星“AI克隆人”已提前上线,主营业务就是打造各种名人版AI聊天机器人,用户付费便可与之聊天。其后台报名参加AI克隆人的网红明星“全网粉丝总数已超过5亿”。该公司这波上线的网红明星AI克隆人,包括此前因“疑似插足他人恋情”,而备受争议的网红“半藏森林”。“半藏森......
  • 在win2016服务器上安装Loadrunner 11版本
    背景:在自己的本机上安装LR12,去录制和调试脚本。在win2016(win2013、win2008都可以)上安装LR11并且破解。则可以做到使用Loadrunner工具进行压测。 在2年的压测过程中,装了2次LR11,记录一下过程,容易踩坑的是安装.net的补丁包!详细步骤:安装LR11  遇到问题(一般新申请的机器......
  • 武汉星起航立志于成为业内领先的跨境电商孵化服务商
    武汉星起航电子商务有限公司是一家备受赞誉的跨境电商孵化服务商,致力于帮助国内卖家成功进入全球市场。作为行业领先者,公司拥有丰富的经验、专业的团队和先进的解决方案,为卖家提供全方位的支持和指导。作为跨境电商孵化服务商,武汉星起航专注于帮助国内卖家实现全球业务拓展。公司深......
  • CATIA-CATIA V5-6R2017 WIN10 64位版本安装+许可证的安装配置(CATIA启动时必须要调用许
    CATIAV5-6R2017WIN1064位安装步骤:1.先使用“百度网盘客户端”下载CATIAV5-6R2017软件安装包到电脑磁盘英文路径文件夹下,并解压缩,安装前先断开电脑网络,然后双击打开CATIAV5R2017文件夹,找到setup.exe,鼠标右击选择【以管理员身份运行】2.正在准备安装中,稍等片刻自动进入安......