首页 > 其他分享 >Dubbo相关

Dubbo相关

时间:2023-07-29 14:46:02浏览次数:37  
标签:Dubbo 服务 IO 注册 服务提供者 相关 序列化

RPC

Dubbo 阿里2012开源的。和HSF是同一批人开发的。

Dubbo3.0,18年更的。

轻量级+高性能的RPC框架。

 HTTP方式调用:服务名和路径

RPC调用:反射,获取服务特征量,方法寻址逻辑,找到正确的服务方。传输借助序列化和反序列化。

Dubbo特性

  • 调用远程服务方便,类似Feign,比Feign更简单,不用建接口。
  • 内置了负载均衡,只能感知节点的健康状况,显著减少调用延迟,提高吞吐量。
  • 有Cluster组件,做集群容错。
  • 支持多种注册中心。

 Dubbo里的注册中心、Provider和Consumer三者之间都是长连接,借助于Zookeeper的高吞吐量,实现基于服务端的服务发现机制。

因此Dubbo利用Zookeeper+发布订阅模型可以很快将服务节点的上线和下线同步到Consumer集群。

如果服务提供者宕机,那么注册中心的长连接会立马感知到这个事件,并且立即推送通知到消费者。

 

对于注册中心宕机的情况,Dubbo和Eureka的处理方式相同,

这两个框架的服务节点都在本地缓存了服务提供者的列表,

因此仍然可以发起调用,但服务提供者列表无法被更新,

因此可能导致本地缓存的服务状态与实际情况有别。

核心功能

Registry模块

常用的是Zookeeper,他底层是树形的目录结构,同事支持基于发布订阅模型的变更推送。

zookeeper文档:https://zookeeper.apache.org

长连接

dubbo的注册中心、服务提供正、服务消费者三者之间均是长连接。

注册中心严密监测节点的状态变化。通过长连接感知服务提供者的状态。

服务剔除

当服务提供者出现异常,Dubbo的剔除原理是利用Zookeeper的临时节点和保持会话,。

服务容错

负载均衡

 

注册中心

 

 

zookeeper

 

Dubbo-Admin

 

 

源码

 

 

 

 

HSF和Dubbo

HSF HighSpeadFreamWork 高速服务框架

目的:作为桥梁连通不同的业务系统,解耦系统之箭的实现和依赖。

高速体现在:底层的非阻塞IO和优秀的序列化机制。

基本结构:

  • 服务提供
  • 注册中心
  • 服务消费
  • 规则中心

完成服务发布和订阅后,注册中心就不是强依赖了。

消费者和提供者太多,需要分组寻址,要用到Diomand。

一般一个客户端和一个服务端只有一个长连接,非阻塞IO,IO不是瓶颈。

架构结构:

  1. BIO部分:
    1. APIBean
    2. InvocationHandler
    3. Route 路由选址
    4. LoadBalance 负载均衡
    5. Registry
    6. Protocol 序列化 Hessian
    7. Packet  --下面是框架的部分
    8. Serialize 协议编码
    9. ThreadPool
    10. Fram
  2. NIO部分
    1. Stream 

IO的区别:

  • 阻塞IO
    • Thread的Dump可以看到,等待的IO没有释放CPU,tomcat为每一个请求分配一个线程,优编码简单,维护成本低。适合低QPS。浪费CPU和线程资源。
  • 非阻塞IO
    • 线程数一般与CPU核数相等,与请求数量无关,高效利用CPU和线程,适合高并发高QPS。

 

标签:Dubbo,服务,IO,注册,服务提供者,相关,序列化
From: https://www.cnblogs.com/jiangym/p/17578511.html

相关文章

  • 552页《Android开发相关源码精编解析》开源分享,优秀Android工程师必备
    2022年已过大半,回首上半年,有犹豫、有抉择、有放弃、有收获。在拼尽全力后,我度过了职业生涯的第一个七年之痒,从之前的外包小厂成功跳槽到一家一线互联网大厂,年薪从30w涨到了50w!!!在这里我想跟各位有多年开发经验的同行说一句:“无论你处在人生的那个阶段,无论你身处于那个职位,都不要摆烂......
  • TiDB v7.1.0版本 相关(部署、在线扩容、数据迁移)测试
    作者:tomxuTiDBv7.1.0版本相关(部署、在线扩容、数据迁移)测试一、服务器信息参数|序号|服务器型号|主机名|配置||IP地址|用户名|密码||--|---------|---------------------------|--------------------------------------------------------------|-|......
  • FX110讯:违反初始保证金相关要求!BDSwiss遭CySEC罚款10 万欧
    塞浦路斯证券交易委员会(CySEC)周四宣布对塞浦路斯投资公司BDSwissHoldingLtd处以10万欧元罚款。该公司是货币对和差价合约(CDF)经纪商BDSwiss的运营商,持有塞浦路斯投资公司(CIF)牌照。该监管机构表示,此次罚款是因为该公司未遵守2021年初始保证金和风险警示的强制性要求。据悉,该公司允......
  • 升级之后历史数据相关测试
    1、手动测试,一般不会动历史数据。2、selenium或其他自动化测试,为了自动化的稳定性或其他考虑,会truncate表,删除历史数据。这样升级之后没法验证升级对于系统的影响。如果是未上线系统那影响较小,但是这一块的考虑可能会有所欠缺,需要加强......
  • linux防火墙相关操作
    一、防火操作墙相关命令1、查看防火墙状态:systemctlstatusfirewalld.service注:active是绿的running表示防火墙开启2、关闭防火墙:systemctlstopfirewalld.service3、开机禁用防火墙自启命令:systemctldisablefirewalld.service4、启动防火墙:systemctlstartfirewal......
  • dubbo-admin管理平台搭建
    一、前言dubbo的使用,其实只需要有注册中心,消费者,提供者这三个就可以使用了,但是并不能看到有哪些消费者和提供者,为了更好的调试,发现问题,解决问题,因此引入dubbo-admin。通过dubbo-admin可以对消费者和提供者进行管理。在这里呢,首先编译的前提是需要在本机上面安装maven环境二、下载......
  • Xml文件相关操作
    Xml文件相关操作C#中的XML是一种可扩展标记语言(ExtensibleMarkupLanguage),用于存储和交换数据。在C#中,我们可以使用内置的System.Xml命名空间来处理和操作XML数据。一、关键概念1.标签(Tags)XML使用标签来标识数据的起始和结束。标签由尖括号(<>)包围,可以包含标签名称和属性。......
  • 查询指定数据库相关信息(表明,注释,字段等)
    1、查看Mysql数据库"mysql"下所有表的表名、表注释及其数据量TABLE_NAME:表名TABLE_COMMENT:表注释SELECTTABLE_NAME,TABLE_COMMENT,TABLE_ROWSFROMinformation_schema.tablesWHERETABLE_SCHEMA='mysql'ORDERBYTABLE_NAME; 2、查询数据库‘mysql’下表......
  • linux常用内存相关命令总结
    查看某个pid占用物理内存的峰值 cat/proc/pid/status|grep-E"VmHWM|VmRSS"参考信息:(23条消息)Linux下查看某一进程占用的内存_Jeremy_Lee123的博客-CSDN博客 内核内存泄漏常用工具kmemleakKmemleak是Linux内核提供的一个内存泄漏检测工具(内核3.1.5之后得版本支......
  • Jmeter45 Dubbo Sampler 插件及其教程
    转载Jmeter(五十)DubboSampler-紫陌花间客-博客园(cnblogs.com) 一、前言随着分布式普及,日常工作中多少会接触到dubbo,对于dubbo接口的调用或者压测等等。调用最简单的方式便是telnet,或者泛化调用的方式。进入telnet命令行,invoke对应方法以及传入对应的参数即可。当然......