博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DUBBO笔记
阅读量:5943 次
发布时间:2019-06-19

本文共 1402 字,大约阅读时间需要 4 分钟。

hot3.png

dubbo笔记

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

一、架构特点

1、连通性

  • 注册中心只负责注册与查找,不做请求转发
  • 服务提供者向注册中心注册提供的服务,汇报调用时间到监控中心
  • 服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心
  • 注册中心、服务提供者、服务消费者三者都是长连接
  • 服务提供者宕机,注册中心立即推送通知消费者
  • 注册中心和监控中心全部宕机,不影响已运行的提供者跟消费者
  • 服务消费者可以直接连接服务提供者

2、健壮性

  • 监控中心宕机不影响使用
  • 注册中心对等集群,任意一台宕机自动切换另一台
  • 注册中心全部宕机,服务提供者跟服务消费者仍能通过本地缓存通讯
  • 服务提供者无状态,任意一台宕机后不影响使用
  • 服务提供者全部宕机,服务消费者无法使用,并且无限次重连等待提供者恢复

3、伸缩性

  • 注册中心为对等集群,可动态增加机器部署实例,所有客户端自动发现新的注册中心
  • 服务提供者无状态,可动态增加机器部署实例,注册中心自动推送新的服务到消费者

4、升级性

后期集群规模进一步扩大后,不会影响系统动态部署、流计算

二、简单配置

1、服务提供者

定义服务接口 UserInfoService.java:

public interface UserInfoService {    UserInfo queryUser(String userName)}

服务提供方实现接口 UserInfoServiceImpl.java:

public class UserInfoServiceImpl implements UserInfoService {    public UserInfo queryUser(String userName){    return new UserInfo(userName);    }}

用Spring配置声明暴露服务 provider.xml

2、服务消费者

通过spring配置引用远程服务 consumer.xml

注意:

  1. 标签“dubbo:registry” address中的地址必须要有地址协议
  2. UserInfoService接口需单独打包,在服务提供方和消费方共享
  3. Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true"
  4. dubbo有调用失败重试机制,特别是在你debug的情况下,需要设置timeout 与 retries,retries默认为2(即失败后重试两次,总共是3次)对于非幂等性的写操作,比如新增记录,最好设置为retries="0"

转载于:https://my.oschina.net/1181360/blog/3045461

你可能感兴趣的文章
css选择器
查看>>
使用多线程
查看>>
Django--Uploaded Files以及Handlers
查看>>
在IIS(64位)上部署WCF服务访问Oracle数据库
查看>>
个人在 laravel 开发中使用到的一些技巧(持续更新)
查看>>
iOS之KVO
查看>>
数组的代替品
查看>>
BZOJ-1878: [SDOI2009]HH的项链(莫队算法)
查看>>
Python3 定时访问网页
查看>>
两种算法解决查找子串的问题:hdu1711
查看>>
老板,让我们专注的工作【写给老板的一封信】
查看>>
LBS突围:从微信到微博
查看>>
SFB 项目经验-40-Skype for Business-呼入正常-呼出不正常
查看>>
吴忌寒江卓尔批“闪电网络”背后,是链圈和矿圈的的利益之争
查看>>
python的cls,self,classmethod,staticmethod
查看>>
应用系统中常见报表类型解析
查看>>
[Silverlight入门系列]使用MVVM模式(9): 想在ViewModel中控制Storyboard动画?
查看>>
3 项目计划
查看>>
SQL Server 2008 下载地址(微软官方网站)
查看>>
如何对已经发布过的InfoPath模板进行修改
查看>>