想更好的使用dubbo,最好刷几遍用户指南,dubbo用户指南几乎包含了所有dubbo所有的特性

用户指南地址:https://dubbo.gitbooks.io/dubbo-user-book/demos/subscribe-only.html

以下是自己在用户指南各个项的理解 具体用户法查阅用户指南的对应项

启动时检查

concumer启动时 是否能够从注册中心订阅下来所有服务,如果没有服务则会抛出对应的异常(可关闭检查)

集群容错

dubbo多服务部署的情况下,如果消费者调用服务出错的容错方式

  • Failover Cluster 出错后 重试其他服务 可以设置重试次数

  • Failfast Cluster   失败后立即抛出错误

  • Failsafe Cluster出现异常时 直接忽略 当成功处理

  • Failback Cluster 失败后记录日志 并定时重发

  • Forking Cluster 广播调用集群所有服务,一个成功则返回,可以设置最大广播数量

  • Broadcast Cluster 广播调用所有 一个失败则失败

以上都是dubbo默认提供的实现,可以通过实现cluster扩展接口 自定义扩展容错

负载均衡

dubbo在多服务集群部署情况,负载均衡的策略

  • Random LoadBalance 随机分配,可以对高性能的服务设置权重来更大机率随机到
  • RoundRobin LoadBalance 轮询 , a b c服务 相互轮询调用,会出现b服务如果没有及时响应 后面都会分配到b服务 的问题
  • LeastActive LoadBalance 最少活跃调用数   服务响应慢的会减少调用次数
  • ConsistentHash LoadBalance  根据调用参数 hash来定位到调用到哪个服务,相同参数总是命中同一个服务

以上都是默认提供负载均和策略 可以实现com.alibaba.dubbo.rpc.cluster.LoadBalance 自定义策略

线程模型

在处理io请求的时候线程池模型选择(比如哪些请求需要加入到线程池处理,线程池的选择 fiex  cache 等 具体参考用户指南)

直连提供者

consumer直接配置provider地址订阅服务,不需要从zookeeper订阅

只订阅

provider配置不注册服务到注册中心,消费端通过直连订阅服务

只注册

多注册中心情况,配置某一服务不注册到他的注册中心 注册到另一注册中心(适用于 某注册中心还未部署)

静态服务

意思就是 配置服务发布的时候是禁用的,需要管理人员到dubboadmin手动开启服务

多协议

provider对不同的服务 使用不同的协议对外部暴露服务 比如大文件传输的用特定的协议

dubbo已经实现的协议

  • com.alibaba.dubbo.rpc.injvm.InjvmProtocol
  • com.alibaba.dubbo.rpc.dubbo.DubboProtocol
  • com.alibaba.dubbo.rpc.rmi.RmiProtocol
  • com.alibaba.dubbo.rpc.http.HttpProtocol
  • com.alibaba.dubbo.rpc.http.hessian.HessianProtocol

可以实现Protocol 自定义协议。dubbox支持reset协议 不知道是不是通过这个扩展接口实现的哇 

多注册中心

比如一个机房在青岛 一个在广州 可以配置青岛和广州的注册中心,服务奖注册到这2各个注册中心

服务分组

指相同Service 有多个种实现,进行分组,consumer可以根据分组订阅对应的服务

多版本

相同服务发布多个版本,consumer根据需要订阅对应版本的服务

分组聚合

provider一个分组多个实现的时候   consumer可以同同时订阅2个服务,让后将结果聚合

参数验证

通过在Server接口的方法参数打上特定的验证注解  @NotNull // 不允许为空Size(min = 1, max = 20) // 长度或大小范围 进行consumer调用的参数校验

结果缓存

dubbo对于provier的多种缓存策略

  • lru 基于最近最少使用原则删除多余缓存,保持最热的数据被缓存。
  • threadlocal 当前线程缓存,比如一个页面渲染,用到很多 portal,每个 portal 都要去查用户信息,通过线程缓存,可以减少这种多余访问。
  • cache 与 JSR107 集成,可以桥接各种缓存实现(不太懂)

以上是默认提供的缓存策略,可以通过扩展接口自定义实现

泛化引用

对于consumer  没有api实现和实体信息 ,传递参数和响应结果都以map结构存储

泛化实现

应用于泛化服务端没有接口api和实体信息 对服务的发布

回声测试

用于检查所有服务是否可用  服务均默认实现EchoService 获得容器所有实现了这个接口的bean 进行测试。详情查看用户指南

上下文信息

provider 和consumer可以根据上下文获取服务器信息和调用信息 ,闲情查看用户指南

隐式参数

通过RpcContext.setAttachment(key,value) 可以在服务间调用时进行隐式参数传递类似cookie获取客户端隐式传入的参数,用于框架集成,不建议常规业务使用

String index = RpcContext.getContext().getAttachment("index");

异步调用

调用服务端立即响应 返回 future  当结果完成 在将值设置进去

本地调用

貌似是个伪协议。不会进行RPC  consumer 自定义服务实现。  订阅服务优先订阅本地

参数回调

貌似用于用于服务端回调客户端回调接口实现类方法进行通知

事件通知

在调用之前 调用之后 生异常 的回调方法

本地方法

意思是指cusumer调用服务方法我们自己可以在本地实现一个代理。代理类可以对调用服务之前之后做一些操作,如cusumer做缓存

本地伪装

意思是指。服务端全部挂掉了之后 调用我们的实现类 实现数据返回。比如授权失败 服务器异常。而不会抛出一个异常

延迟暴露

指定延迟时间之后 对外部暴露服务 如服务初始化需要一定时间

并发控制

限制某个服务的并发访问最大并发数。。

连接控制

限制consumer数量

延迟连接

减少长连接数量。当调用发起时才建立连接

粘带连接

集群情况下。订阅者 总是向一个提供者发起连接,除非提供者挂了,才切换到另外一台。同事是默认开启延迟连接

令牌验证

服务端定义token   ,注册中心进行控制 是否下发令牌给consumer,方式consumer绕过注册中心像provider发起连接

路由规则

注册中心,定义路由规则 哪些consumer能够订阅服务

服务降级

用于临时屏蔽某个服务

优雅停机

停机时不会立马停机,而是先标识服务为停机状态。不接受新的调用,新的调用来了之后让他们访问别的服务。然后等线程池里面的任务执行完了之后在停机

执行kill -9 PID  是不会优雅停机的

主机配置

貌似默认是配置内网ip  如果要配置公网ip 手动的配置

日志适配

貌似是配置日志 和日志输出策略

访问日志

记录每次调用的访问日志记录

线程自动dumb

当线程池满了之后  哪些线程在等待处理。的日志输出配置

netty4

新增对netty4的支持配置

ryo和FST

配置启用更搞笑的序列化

dubbo-刷一遍用户指南(三)的更多相关文章

  1. dubbo用户指南

    用户指南 入门 背景 需求 架构 用法 快速启动 服务提供者 服务消费者 依赖 必需依赖 缺省依赖 可选依赖 成熟度 功能成熟度 策略成熟度 配置 Xml配置 属性配置 注解配置 API配置 示例 启 ...

  2. dubbo用户指南-总结

    dubbo用户指南-总结 入门 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用 ...

  3. scons用户指南翻译(附gcc/g++参数详解)

    scons用户指南 翻译 http://blog.csdn.net/andyelvis/article/category/948141 官网文档 http://www.scons.org/docume ...

  4. 【Flume NG用户指南】(1)设置

    作者:周邦涛(Timen) Email:zhoubangtao@gmail.com 转载请注明出处:  http://blog.csdn.net/zhoubangtao/article/details ...

  5. Android官方技术文档翻译——Gradle 插件用户指南(1-3)

    不知道是什么网络问题,上午一直发不了博客,其它页面基本正常,就是在写博客这里,每次打开都是响应超时.刚才用了VPN,顺便试了一下,竟然能够编辑.想是CDN之类的问题吧. 这次翻译的是Gradle 插件 ...

  6. Android官方技术文档翻译——Gradle 插件用户指南(5)

    昨晚把第五章未译完的几句话攻克了.只是第六章没怎么译,明后天又是周末,假设周一前第六章翻译完的话,周一再发第六章. 本文译自Android官方技术文档<Gradle Plugin User Gu ...

  7. 阿里云API网关(5)用户指南(调用 API)

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  8. Android官方技术文档翻译——Gradle 插件用户指南(4)

    最近赶项目,白天基本没时间,只有晚上在家的时候才能看一看.昨天晚上只翻译完了第四章,今天就只发第四章吧. 本文译自Android官方技术文档<Gradle Plugin User Guide&g ...

  9. Android官方技术文档翻译——Gradle 插件用户指南(7)

    本文译自Android官方技术文档<Gradle Plugin User Guide>,原文地址:http://tools.android.com/tech-docs/new-build- ...

随机推荐

  1. jQuery - 选中复选框则弹出提示框

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. jQuery - 当当网我的订单页

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. android.os.Process.killProcess(android.os.Process.myPid())与Activity生命周期的影响

    如果通过finish方法结束了一个Activity,那么根据Activity的生命周期,则会自动调用Activity的销毁方法onDestory(),但是在项目中遇到这样的一个问题,就是​Activi ...

  4. poi读取word2003(.doc文档)中的表格

    poi读取word2003(.doc文档)中的表格 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API.在网上见到好多通过po ...

  5. servlet中的中文乱码问题

    老师总会说道:学完这个知识点,我们来谈谈中文乱码问题. 乱码的问题总是无处不在,处理不好会给用户带极差的用户体验. 那么我们来记录一下servlet中的乱码问题吧! 1.服务器向客户端响应时出现的乱码 ...

  6. codeforces 916E Jamie and Tree dfs序列化+线段树+LCA

    E. Jamie and Tree time limit per test 2.5 seconds memory limit per test 256 megabytes input standard ...

  7. PCB决策引擎:多维决策表转决策树

    准备设计一个PCB使用的决策引擎,需要用到决策表,而单维决策表不能满足业务要求, 这里主要是为了实现:用户编辑的是决策表,实际底层存储的是树结构,树的的各个节点挂上业务决策逻辑. 这里将多维决策表转决 ...

  8. POJ 2286 The Rotation Game IDA*

    (再一次感谢学长幻灯片) ID A* 随便自己yy了一下. 额嗯 思路什么的都没有问题 就是改不对.. 无奈地删代码...边删边交. 删啊删 哎呦 AC了 ... ... ... 找删的那一段 . o ...

  9. Jquery 获取父页面下指定iframe里的指定元素

    var div1=$("#iframe1",window.parent.document).contents().find("#div1");

  10. backface-visibility当元素不面向屏幕时是否可见

    html代码 <h1>div1可见</h1> <div class="div1">div---1</div> <h1>d ...