Dubbo亮点总结

Dubbo是阿里巴巴的一个开源RPC项目,可在http://dubbo.io进行訪问

类似的产品有Hessian、spring httpinvoke 等。  


Dubbo的亮点总结例如以下:

1、服务注冊中心

      相比Hessian类RPC框架,Dubbo有自己的服务中心。 写好的服务能够注冊到服务中心。 client从服务中心寻找服务。然后再到对应的服务提供者机器获取服务

      通过服务中心能够实现集群、负载均衡、高可用(容错) 等重要功能

      服务中心一般使用zookeeper实现。 也有redis和其它一些方式 。 以使用zookeeper作为服务中心为例。 服务提供者启动后会在zookeeper的 /dubbo节点下创建提供的服务节点。包括服务提供者ip、port等信息。 服务提供者关闭时会从zookeeper中移除相应的服务。

     服务使用者会从注冊中心zookeeper中寻找服务,同一个服务可能会有多个提供者, Dubbo会帮我们找到合适的服务提供者


2、集群容错

      当服务调用失败时(比方响应超时),依据我们的业务不同,能够使用不同的策略来应对这样的失败。 

      比方我们调用的服务是一个查询服务,不会改动数据库,那么能够给该服务设置容错方式为failover 。 当调用失败时。自己主动切换到其它服务提供者去调用,当失败次数超过指定重试次数,那么就抛出错误。

     假设服务是更新数据的服务,那就不能使用失败重试的方式了。 由于这样可能产生数据反复改动的问题,比方调用提供者A的插入用户方法,可是该方法业务逻辑复杂,运行过程非常慢,导致响应超时, 那么此时假设再去调用另外一个服务提供者的插入用户方法。将会又反复插入同一个用户。

  对于这样的类型的服务,能够使用容错方式为failfast。假设第一次调用失败,马上报错。不须要重试。

    另外还有以下几种容错类型

    failsafe 出现错误。直接忽略。不重试也不报错

    failback 失败后不报错。会将该失败请求,定时重发。适合消息通知类型的服务

   forking    并行调用多个server,仅仅要在某一台提供者上面成功。那么方法返回。 适合实时性要求较高的查询服务, 可是要牺牲性能。由于每台server会做同一个操作

   broadcast 广播调用全部服务提供者,逐个调用,随意一台报错则报错。

 适合与更新每台提供者上面的缓存  这泓类型的服务


3、直连提供者

   在开发阶段为了方便測试。通常系统client能指定调用某个服务提供者,那么能够在引用服务时加一个url參数去指定服务提供者

<dubbo:reference id="xxxService"interface="com.alibaba.xxx.XxxService"url="dubbo://localhost:20890"/>

4、负载均衡

    当同一个服务有多个提供者在提供服务时。 client怎样正确的选择提供者实现负载均衡dubbo也给我们提供了几种方案

    random  随机选提供者,并能够给提供者设置权重

    roundrobin  轮询选择提供者

    leastactive  最少活跃调用数,同样活跃数的随机。活跃数指调用前后计数差。使慢的提供者收到更少请求,由于越慢的提供者的调用前后计数差会越大。

   consistenthash 一致性hash,同样參数的请求发到同一台机器上


5、服务版本号,服务分组

   通过服务版本号能够控制服务的不兼容升级, 当同一个服务有多种实现时。能够使用服务分组进行区分


6、多协议

   dubbo提供了多种协议给用户选择, 如dubbo、hessian、rmi 。

并可为每一个服务指定不同的传输协议,粒度能够细化到方法。 不同服务在性能上适用不同协议进行传输,比方大数据用短连接协议,小数据大并发用长连接协议。





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398737.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmake 教程

https://www.jianshu.com/p/bbf68f9ddffa 转载于:https://www.cnblogs.com/icmzn/p/8399250.html

王道操作系统考研笔记——2.1.7 进程调度的时机、切换与过程、方式

文章目录2.1.7 进程调度的时机、切换与过程、方式2.1.7.1 进程调度的时机2.1.7.2 进程调度的方式2.1.7.3 进程的切换和过程2.1.7.4 小结2.1.7 进程调度的时机、切换与过程、方式 知识总览 2.1.7.1 进程调度的时机 进程调度&#xff08;低级调度&#xff09;&#xff0c;就是按…

AS(Autonomous System)

在互联网中&#xff0c;一个自治系统&#xff08;英文&#xff1a;Autonomous system, AS&#xff09;是指在一个&#xff08;有时是多个&#xff09;实体管辖下的所有IP网络和路由器的 全体&#xff0c;它们对互联网执行共同的路由策略。 自治系统&#xff08;Autonomous Syst…

HTTP和HTTPS的区别(转)

原文链接&#xff1a;HTTP和HTTPS的区别 HTTPS&#xff08;Secure Hypertext Transfer Protocol&#xff09;安全超文本传输协议 它是一个安全通信通道&#xff0c;它基于HTTP开发&#xff0c;用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换&…

记录一次nginx配置vhost的小bug

话说这篇博客是在是为了保持自己记录生活的习惯而写的&#xff0c;没有什么阅读的价值&#xff0c;各位读者可以直接忽略了。今天在配置一个域名的时候&#xff0c;写了new_example.com&#xff08;举例而已&#xff09; 因为是内测&#xff0c;所以并未想象到深层次的问题&…

王道操作系统考研笔记——2.1.8 调度算法的评价指标

文章目录2.1.8 调度算法的评价指标2.1.8.1 CPU利用率2.1.8.2 系统吞吐量2.1.8.3 周转时间2.1.8.4 等待时间2.1.8.5 响应时间2.1.8.6 小结2.1.8 调度算法的评价指标 知识总览 需要注意的是&#xff0c;这一部分的知识要学会计算 2.1.8.1 CPU利用率 在早期&#xff0c;由于CPU造…

jenkins自动化构建iOS应用配置过程中遇到的问题

最近配置jenkins来自动构建iOS应用&#xff0c;期间遇上不少问题。在这里分享给大家,也给自己留个底&#xff0c;方便下次解决问题。 首先说明下基本情况&#xff0c;我们因为部署jenkins的机器不是Mac,所以不能安装Xcode插件&#xff0c;我不知道这个插件能给我们带来多少便捷…

用户体验设计的五个原则(转)

【编者按】本文作者&#xff0c;现Aura Marker Studio创始人路意Louis&#xff0c;曾带过五年多的用户体验设计团队。这篇文章是他带团队这几年沉淀下来的一些经验和思考。 “设计&#xff0c;必须是充满诗意的。” 带过五年多的用户体验设计团队&#xff0c;从几个人到二十几个…

js遍历 for-of

for-of遍历 entries() 返回一个遍历器对象&#xff0c;用来遍历[键名, 键值]组成的数组。对于数组&#xff0c;键名就是索引值&#xff1b;对于 Set&#xff0c;键名与键值相同。Map 结构的 Iterator 接口&#xff0c;默认就是调用entries方法。keys() 返回一个遍历器对象&…

王道操作系统考研笔记——2.1.9 调度算法

2.1.9 调度算法 知识总览 学习各种调度算法的思路 算法思想算法规则这种调度算法是用于作业调度还是进程调度&#xff1f;抢占式或是非抢占式优点和缺点是否会导致饥饿&#xff08;某进程/作业长期得不到服务&#xff09; 2.1.9.1 先来先服务 知识点说明英文名FCFS&#xff0…

程序员的春天来了,赏花去!说走就走

2019独角兽企业重金招聘Python工程师标准>>> 经历了寒冷的隆冬&#xff0c;阳春三月终于到来&#xff0c;在温暖如棉的风里&#xff0c;赶紧去户外走走吧&#xff0c;享受大自然赐予我们的无限美……春意盎然&#xff0c;正是赏花好时节&#xff0c;每天久坐电脑前的…

关于个人防火墙的真相

原文作者&#xff1a;MaD 原文标题&#xff1a;The truth aboutpersonal firewalls电子邮件&#xff1a;mad-factormail.ru作者国籍&#xff1a;俄罗斯声明&#xff1a;1、本人翻译水平有限&#xff0c;有不当之请大家理解。如部分看不懂可以和原文对照。 2、欢迎转…

NOI2015 程序自动分析

Luogu 写个并查集来维护就行了。先合并所有相等的变量&#xff0c;如果有两个不相等的变量相等&#xff0c;那么就输出NO。注意得先合并所有相等的变量&#xff0c;再来判断。因为如果两个操作一起搞的话&#xff0c;可能会有两个变量在某次查询的时候不相等&#xff0c;但后面…

王道操作系统考研笔记——2.2.0 交互式系统调度算法

2.2.0 交互式系统调度算法 知识总览 2.2.0.1 时间片轮转 知识点说明英文名RR&#xff0c;Round-Robin算法思想公平地、轮流地为各个进程服务&#xff0c;让每个进程在一定时间间隔内都可以得到响应算法规则按照各进程到达就绪队列的顺序&#xff0c;轮流让各个进程执行一个时…

Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置1.Tomcat的下载 地址:https://tomcat.apache.org/download-80.cgi下载上图标示文件即可.然后解压到一个方便的文件夹即可.2.Tomcat的启动 如果你的Tomcat的JDK配置好的话,理…

王道操作系统考研笔记——2.3.1 进程同步和进程互斥

文章目录2.3.1 进程同步和进程互斥2.3.1.1 什么是进程同步&#xff1f;2.3.1.2 什么是进程互斥2.3.1.3 小结2.3.1 进程同步和进程互斥 知识总览 2.3.1.1 什么是进程同步&#xff1f; 在前面&#xff0c;我们说过进程具有异步性的特征。 而我们想让进程执行的顺序是可预知的&…

王道操作系统考研笔记——2.3.2 进程互斥的软件实现方法

文章目录2.3.2 进程互斥的软件实现方法2.3.2.1 单标志法2.3.2.2 双标志先检查法2.3.2.3 双标志后检查法2.3.2.4 Peterson算法2.3.2.5 小结2.3.2 进程互斥的软件实现方法 知识总览 2.3.2.1 单标志法 单标志法的算法思想是&#xff1a;两个进程在访问完临界区后会把使用临界区的…

js处理上下文代码的2个阶段

1、进入执行上下文 当进入执行上下文(代码执行之前)时&#xff0c;VO里已经包含了下列属性(前面已经说了)&#xff1a; 函数的所有形参(如果我们是在函数执行上下文中) — 由名称和对应值组成的一个变量对象的属性被创建&#xff1b;没有传递对应参数的话&#xff0c;那么由名称…

deep learning入门学习

根据知乎的一些大牛的回答总结出的deep learning入门学习的一些material&#xff1a; BE NOTED THAT SOME VIDEOS ARE ON YOUTUBE! I BELIEVE THAT YOU KNOW HOW TO ACESS THEM. 1. Andrew Ng的机器学习前四章的内容(线性回归与逻辑回归) http://open.163.com/special/opencour…

QTP基础学习(二)启动与设置

1、启动QTP选择要求的Add-in 默认带有3个Add-in&#xff0c;之后可以安装其他的Add-in&#xff0c;如.net的Add-in 2、设置QTP的选项 点击Tools-Options&#xff0c;弹出如下框&#xff1a; 3、建立记录和运行设置 点击Automatic-Record and Run Settings&#xff0c;如下图&am…