欢迎来到神奇下载!我们唯一域名是:www.sqxzz.com

Apache Dubbo 官方版 v3.0

更新时间:2022-06-10 09:44:29

软件介绍

Apache Dubbo是一款RPC服务框架,可以用户建立分布式网站服务方案,让网站和通讯更加快速,降低网站负载,避免大量流的时候网站崩溃,软件基于JA开发,可以选择以 XML 配置的方式来配置你的Dubbo应用,可以选择以属配置的方式编辑你的应用,可以选择以API的方式配置应用,可以选择以注解配置的方式来配置您的Dubbo,软件提供的集群负载均衡策略,方便用户配置集群工作方案,新版修复对uilder的不正确处理会导致错误的L被错误地显示,增强为Apache许可证添加一个构建工具模块!

Apache Dubbo软件功能

1、面向接口代理的高能RPC调用

提供高能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。

2、智能负载均衡

内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。

3、服务自动注册与发现

支持多种注册中心服务,服务实例上下线实时感知。

4、高度可扩展能力

遵循微内核+插件的设计原则,所有核心能力如Ptocol、Transport、Sealization被设计为扩展点,平等对待内置实现和第三方实现。

5、运行期流量调度

内置条件、脚本等路由策略,通过配置不同的路由规则,轻松实现灰度发布,同机房优先等功能。

6、可视化的服务治理与运维

提供丰富服务治理、运维工具:随时查询服务元数据、服务健康状态及调用统计,实时下发路由策略、调整配置参数。

Apache Dubbo软件特色

启动时

在启动时依赖的服务是否可用

集群容错

集群调用失败时,Dubbo 提供的容错方案

负载均衡

Dubbo 提供的集群负载均衡策略

线程模型

配置 Dubbo 中的线程模型

直连提供者

Dubbo 中点对点的直连方式

只订阅

只订阅不注册

多协议

在 Dubbbo 中配置多协议

多注册中心

在 Dubbo 中把同一个服务注册到多个注册中心上

服务分组

使用服务分组区分服务接口的不同实现

静态服务

将 Dubbo 服务标识为非动态管理模式

多版本

在 Dubbo 中为同一个服务配置多个版本

分组聚合

通过分组对结果进行聚合并返回聚合后的结果

参数验证

在 Dubbo 中进行参数验证

结果缓存

通过缓存结果加速访问速度

使用泛化调用

实现一个通用的服务测试框架,可通过 GenecService 调用所有服务实现

Ptobuf

使用 IDL 定义服务

GooglePtobuf 对象泛化调用

对 Google Ptobuf 对象进行泛化调用

实现泛化调用

实现一个通用的远程服务 Mock 框架,可通过实现 GenecService 接口处理所有服务请求

回声测试

通过回声测试检测 Dubbo 服务是否可用

上下文

通过上下文存放当前调用过程中所需的环境

隐式参数

通过 Dubbo 中的 Attachment 在服务消费方和提供方之间隐式传递参数

异步执行

Dubbo 服务提供方的异步执行

异步调用

在 Dubbo 中发起异步调用

本地调用

在 Dubbo 中进行本地调用

参数回调

通过参数回调从端调用客户端逻辑

事件

在调用之前、调用之后、出现异常时的时间

本地存根

在 Dubbo 中利用本地存根在客户端执行部分逻辑

本地伪装

如何在 Dubbo 中利用本地伪装实现服务降级

Apache Dubbo使用说明

XML 配置

以 XML 配置的方式来配置你的 Dubbo 应用

pvider.xml 示例

consumer.xml示例

所有标签都支持自定义参数,用于不同扩展点实现的特殊配置,如:

配置之间的关系

不同粒度配置的覆盖关系

以 timeout 为例,下图显示了配置的查找顺序,其它 retes, loadbalance, actives 等类似:

方法级优先,接口级次之,全局配置再次之。

如果级别一样,则消费方优先,提供方次之。

其中,服务提供方配置,通过 L 经由注册中心传递给消费方。

(建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置)。

理论上 ReferenceConfig 中除了intece这一项,其他所有配置项都可以缺省不配置,框架会自动使用ConsumerConfig,ServiceConfig, PviderConfig等提供的缺省配置。

1、2.1.0 开始支持,注意声明:xmlns:p="http://www.spngframework.org/schema/p"

2、引用缺省是延迟初始化的,只有引用被注入到其它 Bean,或被 getBean() 获取,才会初始化。如果需要饥饿加载,即没有人引用也立即生成动态代理,可以配置:dubbo:reference ... init="true" />

动态配置中心

Dubbo 2.7 中的动态配置中心

配置中心(v2.7.0)在 Dubbo 中承担两个职责:

1、外部化配置。启动配置的集中式存储 (简单理解为 dubbo.pperties 的外部化存储)。

2、服务治理。服务治理规则的存储与。

启用动态配置,以 Zookeeper 为例

为了兼容 2.6.x 版本配置,在使用 Zookeeper 作为注册中心,且没有显示配置配置中心的情况下,Dubbo 框架会默认将此 Zookeeper 用作配置中心,但将只作服务治理用途。

外部化配置

外部化配置目的之一是实现配置的集中式管理,这部分业界已经有很多成熟的专业配置系统如 Apollo, Nacos 等,Dubbo 所做的主要是保证能配合这些系统正常工作。

外部化配置和其他本地配置在内容和格式上并无区别,可以简单理解为 dubbo.pperties 的外部化存储,配置中心更适合将一些公共配置如注册中心、元数据中心配置等取以便做集中管理。

优先级

外部化配置默认较本地配置有更高的优先级,因此这里配置的内容会覆盖本地配置值,关于 各配置形式间的覆盖关系 有单独一章说明,你也可通过以下选项调整配置中心的优先级:

-Ddubbo.config-center.highest-poty=false

作用域

外部化配置有全局和应用两个级别,全局配置是所有应用共享的,应用级配置是由每个应用自己且只对自身可见的。当前已支持的扩展实现有Zookeeper、Apollo

Zookeeper

默认所有的配置都存储在 /dubbo/config 节点,具体节点结构图如下:

ame,用于不同配置的环境隔离。

config,Dubbo约定的固定节点,不可更改,所有配置和服务治理规则都存储在此节点下。

dubbo/application,分别用来隔离全局配置、应用级别配置:dubbo是默认gup值,application对应应用名

dubbo.pperties,此节点的node value存储具体配置内容

Apollo

Apollo中的一个核心概念是命名空间 - name(和上面zookeeper的name概念不同),在这里全局和应用级别配置就是通过命名空间来区分的。

默认情况下,Dubbo会从名叫dubbo(由于 Apollo 不支持特殊后缀 .pperties )的命名空间中读取全局配置()

由于 Apollo 也默认将会在 dubbo name 中存储服务治理规则(如路由规则),建议通过单独配置 gup 将服务治理和配置文件托管分离开,以 XML 配置方式为例:

这里,服务治理规则将存储在 governance name,而配置文件将存储在 dubbo name,如下图所示:

关于文件配置托管,相当于是把 dubbo.pperties 配置文件的内容存储在了 Apollo 中,应用通过关联共享的 dubbo name 继承公共配置, 应用也可以按照 Apollo 的做法来覆盖个别配置项。

自己加载外部化配置

所谓 Dubbo 对配置中心的支持,本质上就是把 .pperties 从远程拉取到本地,和本地的配置做一次融合。理论上只要 Dubbo 框架能拿到需要的配置就可以正常的启动,它并不关心这些配置是自己加载到的还是应用直接塞给它的,所以Dubbo还提供了以下API,让用户将自己组织好的配置塞给 Dubbo 框架(配置加载的过程是用户要完成的),这样 Dubbo 框架就不再直接和 Apollo 或 Zookeeper 做读取配置交互。

服务治理

Zookeeper

默认节点结构:

name,用于不同配置的环境隔离。

config,Dubbo 约定的固定节点,不可更改,所有配置和服务治理规则都存储在此节点下。

dubbo,所有服务治理规则都是全局的,dubbo 为默认节点

configurators/tag-uter/condition-uter,不同的服务治理规则类型,node value 存储具体规则内容

Apollo

所有的服务治理规则都是全局的,默认从公共命名空间 dubbo 读取和订阅:

属配置

以属配置的方式来配置你的 Dubbo 应用

如果你的应用足够简单,例如,不需要多注册中心或多协议,并且需要在spng容器享配置,那么,我们可以直接使用 dubbo.pperties 作为默认配置。

Dubbo 可以自动加载 classpath 根目录下的 dubbo.pperties,但是你同样可以使用 JVM 参数来指定路径:-Ddubbo.pperties.file=xxx.pperties。

映规则

可以将 xml 的 tag 名和属名组合起来,用 ‘.’ 分隔。每行一个属。

dubbo.application.name=foo 相当于

dubbo.registry.address=10.20.153.10:9090 相当于

如果在 xml 配置中有超过一个的 tag,那么你可以使用 ‘id’ 进行区分。如果你不指定 id,它将作用于所有 tag。

dubbo.ptocol.rmi.port=1099 相当于

dubbo.registry.china.address=10.20.153.10:9090 相当于

如下,是一个典型的 dubbo.pperties 配置样例。

重写与优先级

优先级从高到低:

JVM -D 参数:当你部署或者启动应用时,它可以轻易地重写配置,比如,改变 dubbo 协议端口;

XML:XML 中的当前配置会重写 dubbo.pperties 中的;

Pperties:默认配置,仅仅作用于以上两者没有配置时。

1、如果在 classpath 下有超过一个 dubbo.pperties 文件,比如,两个 jar 包都各自包含了 dubbo.pperties,dubbo 将随机选择一个加载,并且打印错误志。

2、如果 id 没有在 ptocol 中配置,将使用 name 作为默认属。

自动加载环境变量

在 Dubbo 中自动加载环境变量

从 2.7.3 版本开始,Dubbo 会自动从约定 key 中读取配置,并将配置以 Key-Value 的形式写入到L中。

支持的 key 有以下两个:

1、dubbo.labels,指定一些列配置到 L 中的键值对,通常通过 JVM -D 或系统环境变量指定。

增加以下配置:

最终生成的 L 会包含 tag1、tag2 两个 key: dubbo://xxx?tag1=value1&tag2=value2

2、dubbo.env.keys,指定环境变量 key 值,Dubbo 会尝试从环境变量加载每个 key

最终生成的 L 会包含 DUBBO_TAG1、DUBBO_TAG2 两个 key: dubbo://xxx?DUBBO_TAG1=value1&DUBBO_TAG2=value2

近期热门

1
UEStudio增强版是 UltraEdit 的开发环境版本,软件功能非常强大,界面简洁明晰、作方便快捷,设计 […]
2
DLL函数查看器是一款易于使用的dll函数查看工具。软件具备了简单直观的用户界面,拖动dll文件到窗口,或者双 […]
3
精易csharp编程助手也就是精易c#编程助手,是一款辅助c#快速开发的工具,主要功能模块包括常用代码、网页提 […]
4
Alactty是一款跨平台的OpenGL终端仿真器,可以通过这款软件快速运行脚本,添加了对Windows的支持 […]
5
VSCodium(VScode二进制版本)免费下载是编程开发分类下一款电脑软件,神奇下载小编给各位带来了VSC […]
6
Dxpress版是一款优秀实用的控件库软件。Dxpress19中文版软件能够帮助用户设计具有图形和高级和高级功 […]
7
Kratos提供非常多的服务框架,可以帮助用户在搭建网站和应用的时候快速配置通讯,配置HTTP服务,配置数据分 […]
8
CDS是一款自动化软件,您可以在软件上建立多种自动化作业方式,有效提升企业工作效率,优化复杂的工作流程,您可以 […]
9
夜神助手全称是夜神模拟器连接助手,因为作者在安卓逆向学习过程中,经常使用夜神模拟器调试程序经常打开很多命令行窗 […]
10
MyBB是一款论坛开发软件,如果你需要设计论坛就可以直接通过这款软件部署到使用,不需要自己原创代码就可以立即创 […]

声明:本站所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助 转载需标注!

Copyright © 2018-2023 All Rights Reserved. 神奇下载网站备案编号:苏ICP备12036411号

抵制不良游戏软件,拒绝盗版。 注意自我保护,谨防受骗上当。 适度娱乐益脑,沉迷伤身。合理安排时间,享受健康生活。

共 20 次查询,耗时 1.050 秒