高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发

Dubbo 可观测性实践之 Metrics 功能解析 在 2018 年,Observability(即可观测性)首次被引入 IT 领域,并逐渐取代只关注系统整体可用性的传统监控。随着云原生技术的不断发展,企业从单体架构发展到分布式架构,使用容器部署拆分出来的一众微服务、与业务联系紧密,传统的监控仅适合报告系统的整体运行情况无法进行高度细化的分析与关联,于是需要将研发视角融入监控,发展具有比原有监控更广泛、更主动、更细粒度的能力,这种能力就是可观测性。 阅读详情

假设你正在参与公司一项非常重要的项目开发,在做需求沟通时,要求系统在分布式场景下实现高并发、高可扩展、自动容错和高可用,如果这个项目由你主导,你会怎么做呢?

在分布式场景下,可能最先想到的是分布式通信的问题,在Google或国内网站上搜索分布式RPC框架,就会搜索到Dubbo。

一般熟悉一个框架,首先会查阅官网,然后下载最新代码,仔细阅读代码示例或新手指南,最后动手编写代码或打开示例代码,在开发工具中快速运行。如果已经有不错的编程经验,那么或许能顺利“跑通”,如果是编程新手则可能被一些配置或编译错误难倒。

编写分布式场景下高并发、高可扩展的系统对技能的要求很高,因为其中涉及序列化/反序列化、网络、多线程、设计模式、性能优化等众多专业知识。Dubbo框架很好地将这些专业知识做了更高层的抽象和封装,提供了各种开箱即用的特性,让用户可以“傻瓜式”地使用。

高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发

 

Dubbo简介

Dubbo提供了非常丰富的开箱即用的特性,我们会花费大部分时间来挖掘它的能力,Dubbo是一个分布式高性能的RPC服务框架,它的核心设计原则:微内核+插件体系,平等对待第三方。我们也会探讨Dubbo其他方面的内容,例如:

  • Dubbo核心协议;
  • 扩展点SPI;
  • 线程模型;
  • 注册中心;
  • 关注点分离(解耦业务和框架)。

Dubbo是阿里SOA服务化治理方案的核心框架,每天为2000多个服务提供30多亿次访问量支持,并被广泛应用于阿里集团的各成员站点。阿里重启开源计划主要有以下几个原因:

  • 战略,云栖大会宣布拥抱开源的发展策略;
  • 社区,社区反馈的问题得不到及时解决,聆听社区的声音能够激发灵感;
  • 生态,繁荣的生态普惠所有人;
  • 回馈,分享阿里在服务治理、大流量、超大规模集群方面的经验。

自从2017年7月重启Dubbo开源,Star数增长7428+, Fork数增长3072+, Watch数增加745+,同时社区生态也在不断壮大发展。Dubbo在GitHubJava类项目中Star数排名前10位(Star数为21.5K+),荣获开源中国2017年最受欢迎中国开源软件TOP3(Java类项目第一)。

在分布式RPC框架中,Dubbo是Java类项目中卓越的框架之一,它提供了注册中心机制,解耦了消费方和服务方动态发现的问题,并提供高可靠能力,大量采用微内核+富插件设计思想,

在我们深入了解Dubbo框架之前,请仔细阅读框架的架构和关键特性,如下图所示。其中有一些是技术性的,更多的是关于架构和设计哲学,在探索Dubbo的过程中,我们会多次探讨它们。

高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发

 

上图中Provider启动时会向注册中心把自己的元数据注册上去(比如服务IP和端口等),Consumer在启动时从注册中心订阅(第一次订阅会拉取全量数据)服务提供方的元数据,注册中心中发生数据变更会推送给订阅的Consumer。在获取服务元数据后,Consumer可以发起RPC调用,在RPC调用前后会向监控中心上报统计信息(比如并发数和调用的接口)。

高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发

 

高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发

 

Dubbo解决什么问题

随着互联网应用规模不断发展,单体和垂直应用架构已经无法满足需求,分布式服务架构及流动计算架构势在必行,需要一个治理系统确保架构不断演进,架构演进请参考下图。

高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发

 

我们先来回顾一下不同应用架构之间的区别。

  • 单一应用架构:当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
  • 垂直应用架构:当访问量逐渐增大时,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。
  • 分布式服务架构:当垂直应用越来越多时,应用之间的交互是不可避免的,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使应用能更快速地响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务(RPC)框架是关键。
  • 流动计算架构:当服务越来越多时,容量的评估、小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心是关键。

随着服务规模和架构的不断演进,在大规模服务化之前,应用可能只是通过RMI或Hessian等工具简单地暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。当服务规模不断膨胀后,使用Dubbo能为用户解决什么问题呢?Dubbo着眼于解决如下几个最基本的问题:

高性能、透明的RPC调用。只要涉及服务之间的通信,RPC就必不可少。Dubbo 可以让开发者像调用本地的方法一样调用远程服务,而不需要显式在代码中指定是远程调用。整个过程对上层开发者透明,Dubbo 会自动完成后续的所有操作,例如:负载均衡、路由、协议转换、序列化等。开发者只需要接收对应的调用结果即可。

自动负载与容错。当服务越来越多时,F5硬件负载均衡器的单点压力也越来越大。Dubbo提供了完整的集群容错机制,可以实现软件层面的负载均衡,以此降低硬件的压力。Dubbo还提供了调用失败的各种容错机制,如Failover、Failfast、 结果集合并等。

服务的自动注册与发现。当服务越来越多时,服务URL配置管理变得非常困难,服务的注册和发现已经不可能由人工管理。此时需要一个服务注册中心,动态地注册和发现服务,使服务的位置透明。Dubbo适配了多种注册中心,服务消费方(消费者)可以通过订阅注册中心,及时地知道其他服务提供者的信息,全程无须人工干预。

动态流量调度。在应用运行时,某些服务节点可能因为硬件原因需要减少负载;或者某些节点需要人工手动下线;又或者需要实现单元化的调用、灰度功能。Dubbo提供了管理控制台,用户可以在界面上动态地调整每个服务的权重、路由规则、禁用/启用,实现运行时的流量调度。

依赖分析与调用统计。当应用规模进一步提升,服务间的依赖关系变得错综复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整地描述应用的架构关系。服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器? Dubbo 可以接入三方APM做分布式链路追踪与性能分析,或者使用已有的独立监控中心来监控接口的调用次数及耗时,用户可以根据这些数据反推出系统容量。

Dubbo后续的规划

我们在Dubbo官方的规划中,清楚地知道后续Dubbo的发展趋势。Dubbo的核心发展规划如下:

  • 模块化。解决通信层与服务治理层耦合严重的问题,为DubboMesh做好准备。
  • 大流量。通过熔断、隔离、限流等手段来提升集群整体稳定性,定位故障节点。
  • 元数据。服务治理数据和服务注册数据的分离,解决元数据冗长的问题,为对接注册中心、配置中心做好准备。
  • 大规模。超大规模集群应对服务注册发现、内存占用、CPU消耗带来的挑战。
  • 路由策略。引入在阿里内部广泛实践的路由策略:多机房、灰度、参数路由等智能化策略。
  • 异步化。CompletableFuture 支持,跨进程的Reactive 支持,提升分布式系统整体的吞吐率和CPU利用率。
  • 生态扩展。在API、注册、集群容错等各个层次,兼容并适配现有主流的开源组件,如Spring Boot、Hystrix 等。
  • 生态互通。Dubbo在未来还会发布各种其他语言的client,如PHP、Python、 Nodejs。
  • 云原生。Dubbo 后续会向Dubbo Mesh 方向发展,让服务治理能力下沉,成为平台的基础能力,应用无须与特定的语言技术栈绑定,让DubboMesh成为数据面板。
  • 多语言支持。通过将服务治理能力sidecar化,支持多种语言的RPC已经成为可能,这也是Spring Cloud方案的最大短板。

Dubbo总体分层

Dubbo的总体分为业务层(Biz)、 RPC层、Remote 三层。如果把每一层继续做细分,那么一共可以分为十层。其中,Monitor层在最新的官方PPT中并不再作为单独的一层。如下图所示,图中左边是具体的分层,右边是该层中比较重要的接口。

高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发

 

Service和Config两层可以认为是API层,主要提供给API使用者,使用者无须关心底层的实现,只需要配置和完成业务代码即可;后面所有的层级合在一起,可以认为是SPI层,主要提供给扩展者使用,即用户可以基于Dubbo框架做定制性的:二次开发,扩展其功能。Dubbo的扩展能力非常强,这也是Dubbo一直广受欢迎的原因之一。后续笔者将会有介绍Dubb的扩展机制。

每一层都会有比较核心的接口来支撑整个层次的逻辑,后续如果读者需要阅读源码,则可以从这些核心接口开始,梳理整个逻辑过程。在后面的章节中,我们会围绕不同的层次对其原理进行讲解。

Dubbo核心组件

Dubbo框架中的分层代表了不同的逻辑实现,它们是一个个组件,这些组件构成了整个Dubbo体系,在使用方角度更多接触到的可能是配置,更多底层构件被抽象和隐藏了,同时提供了非常高的扩展性。Dubbo框架之所以能够做到高扩展性,受益于各个组件职责分明的设计,每个组件提供灵活的扩展点,

高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发

 

Dubbo总体调用过程

或许有读者目前还不能理解整个组件串起来的工作过程,因此我们先介绍一下服务的暴露过程。首先,服务器端(服务提供者)在框架启动时,会初始化服务实例,通过Proxy 组件调用具体协议( Protocol ),把服务端要暴露的接口封装成Invoker (真实类型是AbstractProxyInvoker),然后转换成Exporter,这个时候框架会打开服务端口等并记录服务实例到内存中,最后通过Registry 把服务元数据注册到注册中心。这就是服务端(服务提供者)整个接口暴露的过程。大家可能对里面的各种组件还不清楚,下面就讲解组件的含义:

  • Proxy组件:我们知道,Dubbo 中只需要引用一个接口就可以调用远程的服务,并且只需要像调用本地方法一样调用即可。其实是Dubbo框架为我们生成了代理类,调用的方法其实是Proxy 组件生成的代理方法,会自动发起远程/本地调用,并返回结果,整个过程对用户完全透明。
  • Protocol:顾名思义,协议就是对数据格式的一种约定。 它可以把我们对接口的配置,根据不同的协议转换成不同的Invoker对象。例如:用DubboProtocol可以把XML文件中一个远程接口的配置转换成-个DubboInvoker。
  • Exporter:用于暴露到注册中心的对象,它的内部属性持有了Invoker对象,我们可以认为它在Invoker上包了一层。
  • Registry:把Exporter注册到注册中心。

以上就是整个服务暴露的过程,消费方在启动时会通过Registry在注册中心订阅服务端的元数据(包括IP和端口)。这样就可以得到刚才暴露的服务了。

下面我们来看一下消费者调用服务提供者的总体流程,我们此处只介绍远程调用,本地调用是远程调用的子集,因此不在此展开。Dubbo组件调用总体流程如下图所示。

高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发

 

首先,调用过程也是从一个Proxy开始的,Proxy持有了一个Invoker对象。然后触发invoke调用。在invoke调用过程中,需要使用Cluster, Cluster 负责容错,如调用失败的重试。Cluster在调用之前会通过Directory获取所有可以调用的远程服务Invoker 列表(一个接口可能有多个节点提供服务)。由于可以调用的远程服务有很多,此时如果用户配置了路由规则(如指定某些方法只能调用某个节点),那么还会根据路由规则将Invoker 列表过滤一遍 。

然后,存活下来的Invoker可能还会有很多,此时要调用哪一个呢?于是会继续通过LoadBalance方法做负载均衡,最终选出一个可以调用的Invoker。这个Invoker 在调用之前又会经过一个过滤器链,这个过滤器链通常是处理上下文、限流、计数等。

接着,会使用Client做数据传输,如我们常见的Netty Client等。传输之前肯定要做一些私有协议的构造,此时就会用到Codec接口。构造完成后,就对数据包做序列化( Serialization),然后传输到服务提供者端。服务提供者收到数据包,也会使用Codec处理协议头及一些半包、粘包等。处理完成后再对完整的数据报文做反序列化处理。

随后,这个Request会被分配到线程池( ThreadPool)中进行处理。Server会处理这些Request,根据请求查找对应的Exporter (它内部持有了Invoker)。 Invoker 是被用装饰器模式一层一层套了非常多Filter的,因此在调用最终的实现类之前,又会经过一个服务提供者端的过滤器链。

最终,我们得到了具体接口的真实实现并调用,再原路把结果返回。

至此,一个完整的远程调用过程就结束了。

总结

以上就是小编整理的dubbo简介,同时介绍了Dubbo提供的特性。我们了解了国内有很多大公司都在使用Dubbo,目前Dubbo又重启维护,社区不断在成长与壮大。

然后,我们概述了Dubbo 的总体架构图和核心组件,并把所有核心组件合在一起,讲解Dubbo的一次总体调用的过程。

喜欢文章请多多点赞评论转发,关注笔者,后续笔者会再带来更丰富的学习内容更新。你们的支持就是笔者最大的动力!!!

Dubbo通信协议与序列化详解:揭开高性能RPC通信的底层奥秘 本文深入解析Dubbo框架的通信协议与序列化机制。首先介绍Dubbo分层协议架构和SPI扩展机制,详细分析默认Dubbo协议及HTTP、Hessian、RMI等协议的适用场景。其次探讨Hessian2、Java、JSON等序列化方式的性能特点,提供自定义扩展方法。最后给出协议与序列化选择策略和优化建议,如同构系统优选Dubbo+Hessian2,异构系统推荐HTTP+JSON。通过合理配置协议与序列化组合,可显著提升分布式系统的通信性能。 阅读详情

相关推荐

RPC与Dubbo知识点详解

RPC与Dubbo知识点详解 一 . RPC的基本概念 RPC协议(Remote Procedure Call Protocol ) ​ 远程过程调用协议 ,它是一种通过网络从远程计算机程序上请求服务 , 而不需要底层网络技术的协议 .RPC协议假定某些传输协议的存在,如 TCP 或 UDP,为通信程序之间 携带信息数据。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开...

weixin_44968674的博客 3484

Dubbo的服务监控有哪些常用方法和工具?

根据业务需求,可以开发自定义的监控框架来监控 Dubbo 服务。

qq_33240556的博客 3536

基于Netty实现Dubbo高性能RPC框架

RPC的基本通信模型主要包括四个核心角色:客户端(Client)客户端存根(Client Stub)服务端存根(Server Stub)和服务端(Server)。其通信流程如下图所示:graph TDA[Client] -->|调用本地方法| B(Client Stub)B -->|封装请求并发送| C[网络通信层]C -->|传输到远程| D(Server Stub)D -->|调用本地服务| E[Server]E -->|执行结果返回| D。

weixin_42576467的博客 710

程序员高薪必备|Dubbo最全面的入门讲解

【商品网站服务】访问-----> 【订单服务】 实现方式 以 JavaSE 为例,服务提供者,服务消费者都是 JavaSE项目 (1) 创建服务提供者:订单服务 A、 新建 java project 项目名称: link-orderservice-provider 设置 version 为 1.0.0 B、 maven pom.xml 在 下的 标签中加入 JDK1.8 编译插件 C、 创建订单实体类:Order D、 新建订单服务接口:OrderService

weixin_54585403的博客 497

零基础玩转STM32CubeIDE LL库:5分钟搞定串口通信(附完整代码)

本文为零基础开发者提供了一份STM32CubeIDE LL库串口通信的快速实战指南。通过CubeMX配置、LL库核心API详解,以及中断接收与环形缓冲区的完整代码实现,帮助读者在5分钟内搭建稳定可靠的串口收发框架,解决从HAL切换到LL库的常见困惑,提升嵌入式开发效率。

weixin_29159441的博客 308

DeepSeek Harness 本地部署与 AI 智能体开发全攻略

大语言模型(LLM)作为当前人工智能领域的核心技术,通过深度学习架构实现了对自然语言的深度理解与生成能力。其技术原理基于Transformer架构,通过海量文本数据训练,使模型能够捕捉语言的内在规律和语义关联。在工程实践中,LLM的价值在于能够作为智能体(Agent)的核心大脑,驱动各类应用实现自然语言交互、任务自动化和知识推理。常见的应用场景包括智能客服、代码生成、内容创作和数据分析等。本文聚焦于DeepSeek Harness这一开源AI应用开发框架,详细讲解如何从零开始部署这一智能体开发平台,并配置D

weixin_42527464的博客 377

Dubbo深度解析

框架介绍 概述 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 相关概念 dubbo运行架构如下图示 节点角色说明 调用关系说明 服务容器负责启动,加载,运行服务提供者。 服务提供者在启动时,向注册中心注册自己提供的服务。 服务消费

分享Java技术知识,共同成长进步! 659

BambuStudio学习笔记:OpenCSG - 实时构造实体几何(CSG)渲染的 OpenGL 方案

**OpenCSG** 是一个基于 **OpenGL** 的 **构造实体几何(CSG)** 实时渲染库,通过 **深度剥离算法** 实现布尔运算(并集、交集、差集)的可视化。其核心目标是简化复杂几何体的交互式建模,适用于 CAD 原型设计、3D 打印预览、教育工具等场景。

zzzkk2009的专栏 929

Java最全高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发,美团java面试算法题

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.youkuaiyun.com/forums/4f45ff00ff254613a03fab5e56a57acb)收录**需要这份系统化的资料的朋友,可以点击这里获取。

2401_84557608的博客 402

零停机更新黑科技:Spring Boot应用实现无缝升级的实战指南

本文介绍了基于Spring Boot和Tomcat实现零停机更新的技术方案,通过动态端口切换和优雅关闭机制,确保服务更新过程中业务不中断。文章详细解析了核心原理,包括内嵌Tomcat的工作机制、零停机更新的三大技术基石(端口动态切换、优雅关闭和进程接管)。同时提供了完整的Java实现代码,重点展示了端口动态检查、参数动态调整、旧进程优雅终止等关键逻辑。该方案适用于高可用系统升级场景,能够有效避免传统部署方式导致的服务中断问题,实现100%无感知的应用更新。

墨夶的博客 819

thinkphp6/8 - 实现评论区发表评论、回复评论功能数据库表设计与整个逻辑思路过程分析,tp5 评论盖楼等功能(附带源码稍加改造即可使用)

tp5评论区数据库表设计,tp5发表回复评论功能设计,thinkphp5如何做评论功能,tp5 php评论区实现发表回复删除评论,tp5评论区盖楼源码及数据表设计思路,thinkphp评论功能详细教程,thinkphp实现评论与回复功能,thinkphp实现文章评论和回复评论功能,tp5实现评论回复功能,thinkphp如何实现评论区,tp5网站PC移动端h5怎么做评论区发表留言及回复功能,thinkphp实现评论区插件,thinkphp评论区相互发表回复功能详细教程,thinkphp有没有评论区的组件插件

✅ 精选推荐文章 3160

最全高性能RPC通信框架——Dubbo详解,深入浅出带你进军Java开发(1),恒生电子java社招面试

这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录。

2401_84584817的博客 530

深入Scrapy ItemLoader:打造优雅高效的Python爬虫数据清洗流水线

ItemLoader是 Scrapy 提供的声明式数据加载工具。它的核心理念是:将数据提取(从response中取原始值)和数据清洗/验证(处理空值、格式转换、默认值等)分离开。你可以把它想象成一个工厂流水线:原始零件(selector提取的文本)进入,经过一道道工序(输入处理器),组装成最终产品(Item字段)。首先在items.py中定义清晰的数据结构。使用搭配类型注释(虽然Scrapy自身不强制,但对人和IDE友好)。

2201_76125261的博客 69

RPC框架:从原理到选型,一文带你搞懂RPC

而 Spring Cloud 就像品牌机,在 Spring Source 的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。Spring Cloud 基于 Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。

daobuxinzi的博客 6万+

基于深度学习的工业零件缺陷检测系统

工业零件缺陷检测系统摘要 本文介绍了一个基于深度学习的工业零件缺陷检测系统解决方案。该系统采用Faster R-CNN目标检测算法,结合PyTorch框架和OpenCV图像处理库,实现了对工业零件表面缺陷(如裂纹、划痕、凹坑等)的自动检测与定位。系统包含完整的开发流程:从数据采集与标注、数据增强预处理、模型构建与训练,到最终的评估与部署。相比传统机器视觉方法,该深度学习方案具有更强的特征表示能力和环境适应性,能够有效提升工业质检的准确率和效率。文章详细阐述了系统架构设计、实现细节和优化策略,并提供了完整的代

huanghm88的专栏 286

星载SAR的各项指标解读(史上最全)

一、系统指标 系统指标主要指雷达系统的通用的指标,以及和卫星整星相关的指标,主要有一下几项: 工作频段: 雷达体制: 极化方式: 设计s

9277

RPC与RPC框架Dubbo详解

本文介绍了RPC(远程过程调用)的基本概念、工作流程及与HTTP的区别。RPC允许程序像调用本地方法一样调用远程服务,通过提供者、调用方和注册中心三个角色实现。文章对比了RPC与HTTP在设计、协议性能、服务治理等方面的差异,并详细讲解了Dubbo框架的两种使用方式和核心特性。最后指出RPC适合微服务内部通信,而HTTP更适合对外API,实际项目中常结合两者优势使用。

TheChosenOnev的博客 1758

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

rpc详解rpc框架

在互联网应用开发中,随着业务的复杂度增加,一般都会采用分布式架构。分布式架构的核心,就是利用多台普通的计算机组成一个庞大的复杂计算网络,提供高并发、高性能、高可用的系统能力支撑。在分布式架构中,原本的单体应用服务被拆分成多个独立部署的服务,分布式在计算机网络上,这些服务必然,需要通过网络进行数据通信和交互。而RPC框架,就是解决在分布式架构中,各个服务之间的网络通信问题的框架。在Java应用中,JDK 1.1版本的时候就提供了对RPC的支持框架,叫做RMI。由于RMI不能实现跨域语言的远程调用。

刘皇叔说Java的博客 7085

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Dubbo 详解 && Dubbo与其他RPC框架相比有哪些优势?

Dubbo详解摘要 Dubbo是阿里巴巴开源的高性能Java RPC框架,支持分布式服务通信与治理。其核心优势包括:基于Netty的高性能异步通信、动态服务注册发现、多协议兼容(Dubbo/HTTP/gRPC),以及丰富的治理功能(负载均衡、熔断降级)。采用分层架构,关键组件为Provider、Consumer、Registry和Monitor,支持云原生演进。典型应用场景涵盖电商、金融等高并发系统,通过SPI机制实现灵活扩展。对比gRPC/Thrift,Dubbo在服务治理、协议优化及企业级生态集成上更具

csdn_tom_168的博客 1040

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【Dubbo】RPC框架dubbo入门

dubbo入门

qq_43745578的博客 1420

Java-70 深入浅出 RPC Dubbo 详细介绍 上手指南

Apache Dubbo 是一款高性能的 Java RPC 框架,源自阿里巴巴,现为 Apache 顶级项目。其核心特性包括基于 Netty 的高效网络通信、服务自动注册与发现、丰富的负载均衡与容错机制、以及完善的服务治理能力。Dubbo 架构由服务提供者、消费者、注册中心、监控中心等组成,支持同步与异步调用,并可通过注解、XML、API 等多种方式进行配置。Dubbo 强调 SOA 服务治理,通过服务注册、流量控制、服务降级和链路追踪等手段保障系统的稳定性与可维护性。

谢谢你的喜欢 我们一起无限进步 1276

Dubbo--高性能RPC框架

Apache Dubbo 是一款RPC服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。

flytalei的博客 1128

总结Dubbo开源RPC框架

集群:多个机器提供一样的服务(实现高性能、高可用、 可伸缩、高可扩展 )分布式:多个机器提供不同的服务,合起来为一个大服务。

Flora的博客 1305

大牛带你深入Dubbo,高性能RPC通信框架:Dubbo简介和总体大图

假设你正在参与公司一项非常重要的项目开发,在做需求沟通时,要求系统在分布式场景下实现高并发、高可扩展、自动容错和高可用,如果这个项目由你主导,你会怎么做呢?在分布式场景下,可能最先想到的是分布式通信的问题,在Google或国内网站上搜索分布式RPC框架,就会搜索到Dubboo一般熟悉一个框架,首先会查阅官网,然后下载最新代码,仔细阅读代码示例或新手指南,最后动手编写代码或打开示例代码,在开发工具中快速运行。如果已经有不错的编程经验,那么或许能顺利“跑通”,如果是编程新手则可能被一些配置或编译错误难倒。

2401_83384536的博客 1266

【夯实Dubbo】什么是RPC框架?

本文属于【夯实Dubbo】系列文章,该系列旨在用通俗易懂的语言,带大家了解和学习 Dubbo 技术,希望能给读者带来一些干货。系列目录如下(可能随着写作的进行,会做一些调整): 【夯实Dubbo】什么是 RPC 框架? 【夯实Dubbo】Dubbo 的核心概念 【夯实Dubbo】Dubbo 环境的搭建 【夯实Dubbo】Dubbo 和 Spring Boot 整合 【夯实Dubbo】Dubbo ...

3661
上一篇: 独家报道!MySQL所有的安装部署方式详解,绝对提升你的视野
下一篇: 阿里首席架构师,带你深入剖析企业IT转型之道和中台战略架构实战
Java领域指导者
博客等级 码龄7年 404粉丝 265原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值