注册中心的好处在于不必知道每个微服务的地址,所有微服务自动注册,注册中心负责查找分发
消费端,服务端,注册中心是长链接---注册中心用长链接来检测心跳
消费端把调用时间存储在本地内存,每隔一分钟发送给注册端,服务端爸调用次数记录在内存,每隔一分钟发送给注册中心
dubbo的也可以设置线程池大小,拒绝策略---类似tomcat
直连提供者是在消费端的接口处配置要直连的服务提供端地址
<dubbo:reference id="xxxService" interface="com.alibaba.xxx.XxxService" url="dubbo://localhost:20890" />
服务端注册的时候可以设置为静态服务---不由注册中心自动删除
大数据用短链接协议,小数据高并发用长链接协议
服务端先定义协议
<dubbo:protocol name="dubbo" port="20880" />---长协议,传输方式:NIO异步传输 序列化:Hessian二进制序列化
<dubbo:protocol name="rmi" port="1099" />---短协议,传输方式:同步传输 序列化:Java标准二进制序列化
然后具体到每个接口的协议选择-----通信协议的选择一般根据数据大小,并发量选择长链接的还是短链接的协议
<dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" protocol="dubbo" />
<!-- 使用rmi协议暴露服务 -->
<dubbo:service interface="com.alibaba.hello.api.DemoService" version="1.0.0" ref="demoService" protocol="rmi" />
同理多注册中心也是,而且消费引用端也可指明不同注册中心
version和group一样是为了区分引用
group有另外一个用处就是merger合并结果,可以指明这个接口(方法)哪些组可以合并结果
cache在消费引用端配置缓存策略
lru 基于最近最少使用原则删除多余缓存,保持最热的数据被缓存。
threadlocal 当前线程缓存,比如一个页面渲染,用到很多 portal,每个 portal 都要去查用户信息,通过线程缓存,可以减少这种多余访问。
jcache 与 JSR107 集成,可以桥接各种缓存实现。
<dubbo:reference interface="com.foo.BarService" cache="lru" />
回声测试
用于试探调用过程的联通性,排除业务接口本身代码的影响
所有服务自动实现 EchoService 接口,只需将任意服务引用强制转型为 EchoService,即可使用。
// 远程服务引用
MemberService memberService = ctx.getBean("memberService");
EchoService echoService = (EchoService) memberService; // 强制转型为EchoService
// 回声测试可用性
String status = echoService.$echo("OK");
assert(status.equals("OK"));
隐式参数
类似cookie把参数放在全局的上下文中,当前调用完成即清空,每调用一次重新设置一次
id---host+方法名,在被调用放获取
调用方:
RpcContext.getContext().setAttachment("index", "1"); // 隐式传参,后面的远程调用都会隐式将这些参数发送到服务器端,类似cookie,用于框架集成,不建议常规业务使用
xxxService.xxx(); // 远程调用
被调用方:
public class XxxServiceImpl implements XxxService {
public void xxx() {
// 获取客户端隐式传入的参数,用于框架集成,不建议常规业务使用
String index = RpcContext.getContext().getAttachment("index");
}
}
本地调用---针对既是消费端又是服务端的情况,自己消费自己的服务
参看:
https://blog.csdn.net/ywb201314/article/details/80917196
服务方用什么协议。在哪个端口暴露服务
消费方用什么协议获取服务。在哪个端口暴露自己的服务
》》
既是消费方又是服务方,协议名获取服务,端口上暴露服务
<dubbo:protocol name="协议名" port="端口" />
executes 服务端的并发数
actives 消费端的并发数
accepts 服务端链接数控制
connections 消费端连接数控制
每个10分钟导出一份dump
<dubbo:application ...>
<dubbo:parameter key="dump.directory" value="/tmp" />
</dubbo:application>
相关推荐
Dubbo高级视频教程,适合想提升的开发人员,实战性强。
Dubbo视频教程--高级篇--第24节--简易版支付系统介绍Dubbo视频教程--高级篇--第24节--简易版支付系统介绍
视频主要包含dubbo的分布式系统的架构,从初级到高级的一些用法,视频的下载地址和解压密码
现在分布式架构师开发的潮流,在工作,面试中经常会遇到和别问到,这里提供分布式架构dubbo框架实战的高级篇视频教程百度云分享,希望对大家有帮助。
【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题...
我感觉很不错的宝贝,现在和大家分享,希望能够帮到大家,如果你需要可以下载看看,很适合喜欢研究技术的人员
dubbo资源 dubbo-admin dubbo demo
Dubbo分布式服务基础入门、高级进阶,ZooKeeper注册中心集群,提供教程中的所有文档、源码,并有学员群提供学习交流和技术服务支持
java高级技术Dubbo视频教程,需要学习Dubbo高级技术的朋友可以下载看看,绝对物超所值
Dubbo高级技术视频教程 从传统工程改到dubbo框架,包括第三方框架的安装\集成\持续集成等。
dubbo示例代码dubbo-sample
dubbo在项目里的一些心得dubbo在项目里的一些心得dubbo在项目里的一些心得
incubator-dubbo-dubbo-2.6.1
Dubbo高级教程及源码
dubbo资源包
本套视频从分布式系统的基本概念出发,由浅入深,讲解了RPC原理,Dubbo基本使用,Dubbo高可用场景以及Dubbo原理,涉及了分布式系统中服务注册、服务发现、负载均衡、灰度发布、集群容错、服务降级等核心概念的讲解及...
作为一个重要的技术研究课题,在当当网我们根据自身的需求,为Dubbo实现了一些新的功能,并将其命名为Dubbox(即Dubbo eXtensions)。 由此可见Dubbo是大量企业项目实施分布式服务化(微服务)架构的首选! 本...
dubbo 基础篇+高级篇 视频下载 ZooKeeper教程 Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架
前段时间排查某问题的时候,想要快速知道某些dubbo接口(三无)的响应结果,但不想启动项目(因为这些项目不是你负责的,不会部署而且超级笨重),也不想新建一个dubbo客户端项目(占地方),也不想开telnet客户端...