Dubbo简介 ApacheDubbo是一款RPC服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了Java、Golang等多语言SDK实现。使用Dubbo开发的微服务原生具备相互之间的远程地址发现与通信能力,利用Dubbo提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。 背景 SpringFramework6.0于11月16日正式发布GA版本,SpringBoot3.0也于11月25日正式发布GA版本,并且Spring6&SpringBoot3最低支持JDK1...

  0AznDZ5mcO55   2023年11月01日   65   0   0 Java

使用IDL定义服务具有更好的跨语言友好性,然而Triple协议并不是和IDL强绑定的,也可以使用JavaInterface+Pojo的方式定义服务并启用Triple协议,具体可参见示例。 更多Triple和IDL使用方式,请参考官方示例 前置条件 JDK版本>=8 已安装Maven 创建工程 首先创建一个空的maven工程$mvnarchetype:generate\ -DgroupId=org.apache.dubbo\ -DartifactId=tri-stub-demo\ -DarchetypeArtifactId=maven-archetype-quickstart\ -D...

  0AznDZ5mcO55   2023年11月01日   118   0   0 Java

扩展设计理念 可扩展性是任何一个系统所追求的,对于Dubbo来说是同样适用。 什么是可扩展性 可扩展性是一种设计理念,代表了我们对未来的一种预想,我们希望在现有的架构或设计基础上,当未来某些方面发生变化的时候,我们能够以最小的改动来适应这种变化。 可扩展性的优点 可扩展性的优点主要表现模块之间解耦,它符合开闭原则,对扩展开放,对修改关闭。当系统增加新功能时,不需要对现有系统的结构和代码进行修改,仅仅新增一个扩展即可。 扩展实现方式 一般来说,系统会采用Factory、IoC、OSGI等方式管理扩展(插件)生命周期。考虑到Dubbo的适用面,不想强依赖Spring等IoC容器。而自己造一个小的I...

  0AznDZ5mcO55   2023年11月01日   43   0   0 Java

Dubbo提供动态配置同机房/区域优先的服务治理能力,可以在无需重启应用的情况下,动态配置同机房/区域优先。 Dubbo可以通过XML配置,注解配置,动态配置同机房/区域优先,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置 开始之前 请确保成功运行Dubbo-Admin 背景信息 当应用部署在多个不同机房/区域的时候,应用之间相互调用会出现跨区域的情况,跨区域调用会增加响应时间。同机房/区域优先是指应用调用服务时,优先调用同机房/区域的服务提供者。Dubbo-Admin提供了动态的同机房/区域优先能力,能够帮助您快速动态配置同机房/区域优先,避免了跨区域带来的网络延时,从而减少了调用...

  0AznDZ5mcO55   2023年11月01日   33   0   0 Java

作者:ApacheDubboContributor陈景明 背景 在一些业务场景,往往需要自定义异常来满足特定的业务,主流用法是在catch里抛出异常,例如: publicvoiddeal(){ try{ //doSomething ... }catch(IGreeterExceptione){ ... throwe; } } 或者通过ExceptionBuilder,把相关的异常对象返回给consumer: provider.send(newExceptionBuilders.IGreeterExceptionBuilder() .setDescription('异常描述信息'); 在...

  0AznDZ5mcO55   2023年11月01日   39   0   0 Java

作者:顾欣 Triple是Dubbo3提出的基于HTTP2的开放协议,旨在解决Dubbo2私有协议带来的互通性问题。Triple基于HTTP/2定制自己的流控,支持通过特定的异常通知客户端业务层服务端负载高情况,保护了服务端被大流量击垮,提高系统高可用能力。 一、流控反压现状 客户端和服务器端在接收数据的时候有一个缓冲区来临时存储数据,但是缓冲区的大小是有限制的,所以有可能会出现缓冲区溢出的情况,HTTP通过流控保护数据溢出丢失风险。 1、HTTP/1流控 在HTTP/1.1中,流量的控制依赖的是底层TCP协议,在客户端和服务器端建立连接的时候,会使用系统默认的设置来建立缓冲区。在数据进行...

  0AznDZ5mcO55   2023年11月01日   98   0   0 Java

背景 随着Dubbo3.1的release,Dubbo在云原生的路上又迈出了重要的一步。在这个版本中添加了ProxylessMesh的新特性,DubboProxylessMesh直接实现xDS协议解析,实现Dubbo与ControlPlane的直接通信,进而实现控制面对流量管控、服务治理、可观测性、安全等的统一管控,规避Sidecar模式带来的性能损耗与部署架构复杂性。 什么是ServiceMesh ServiceMesh又译作“服务网格”,作为服务间通信的基础设施层。Buoyant公司的CEOWillianMorgan在他的这篇文章WHAT’SAServiceMesh?ANDWHYDOINE...

  0AznDZ5mcO55   2023年11月01日   71   0   0 Java

URL简介 在阐述地址推送性能的具体优化之前,我们有必要先了解一下与之息息相关的内容--URL。 定义 在不谈及dubbo时,我们大多数人对URL这个概念并不会感到陌生。统一资源定位器(RFC1738――UniformResourceLocators(URL))应该是最广为人知的一个RFC规范,它的定义也非常简单。 因特网上的可用资源可以用简单字符串来表示,该文档就是描述了这种字符串的语法和语义。而这些字符串则被称为:“统一资源定位器”(URL) 一个标准的URL格式至多可以包含如下的几个部分 protocol://username:password@host:port/path?key=...

  0AznDZ5mcO55   2023年11月01日   34   0   0 Java

特性说明 通过对protocol进行配置,dubbo3可以支持端口的协议复用。比如使用Triple协议启动端口复用后,可以在相同的端口上为服务增加Dubbo协议支持,以及Qos协议支持。这些协议的识别都是由一个统一的端口复用服务器进行处理的,可以用于服务的协议迁移,并且可以节约端口以及相关的资源,减少运维的复杂性。 在服务的创建阶段,通过从Config层获取到服务导出的协议配置从而创建不同的Protocol对象进行导出。在导出的过程中,如果不是第一次创建端口复用的Server,那么Exchanger会将Protcol层传递的数据保存到Server,用于后续处理该协议类型的消息。 当客户端的...

  0AznDZ5mcO55   2023年11月01日   82   0   0 Java

以下是一个Dubbo属性配置的例子dubbo-spring-boot-samples application.properties Springbootapplication spring.application.name=dubbo-externalized-configuration-provider-sample BasepackagestoscanDubboComponent:@com.alibaba.dubbo.config.annotation.Service dubbo.scan.base-packages=com.alibaba.boot.dubbo.demo.provid...

  0AznDZ5mcO55   2023年11月01日   69   0   0 Java

在1月27日,新年伊始,Dubbo3.1.5和3.2.0-beta.4正式通过投票发布。本文将介绍发布的变化一览。 Dubbo3.1.5版本是目前Dubbo3的最新稳定版本,我们建议所有的用户都升级到最新的稳定版本。Dubbo3.2.0-beta.4版本是目前Dubbo3的最新特性版本,包括了如SpringBoot3、JDK17、服务粒度的线程池隔离等新特性的支持,欢迎大家尝鲜使用。 Dubbo3.1.5 新特性 DubboQoS支持记录请求的记录,便于进行审计 支持在服务映射失败以后定时进行重试,降低由于元数据中心抖动带来的影响 支持在初始化NacosClient的时候进行健康检查,如果...

  0AznDZ5mcO55   2023年11月01日   41   0   0 Java

本文将基于DubboSamples示例演示如何快速搭建并部署一个微服务应用。 背景 Dubbo作为一款微服务框架,最重要的是向用户提供跨进程的RPC远程调用能力。如上图所示,Dubbo的服务消费者(Consumer)通过一系列的工作将请求发送给服务提供者(Provider)。 为了实现这样一个目标,Dubbo引入了注册中心(Registry)组件,通过注册中心,服务消费者可以感知到服务提供者的连接方式,从而将请求发送给正确的服务提供者。 目标 了解微服务调用的方式以及Dubbo的能力 难度 低 环境要求 系统:Windows、Linux、MacOS JDK8及以上(推荐使用JDK17) G...

  0AznDZ5mcO55   2023年11月01日   88   0   0 Java

目标 从零上手开发基于Dubbo的微服务 难度 低 环境要求 系统:Windows、Linux、MacOS JDK8及以上(推荐使用JDK17) Git IntelliJIDEA(可选) Docker(可选) 动手实践 本章将通过手把手的教程一步一步教你如何从零开发一个微服务应用。 1.启动注册中心 对于一个微服务化的应用来说,注册中心是不可或缺的一个组件。只有通过注册中心,消费端才可以成功发现服务端的地址信息,进而进行调用。 为了让本教程更易于上手,我们提供了一个基于ApacheZookeeper注册中心的简易启动器,如果您需要在生产环境部署注册中心,请参考生产环境初始化一文部署高可用的...

  0AznDZ5mcO55   2023年11月01日   44   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~