想更好的使用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. 【Linux】Linux下配置apache

    一.获取软件: http://httpd.apache.org/   httpd-2.4.10.tar.gz 二.安装步骤: 解压源文件: 1) tar zvxf  httpd-2.4.10.tar. ...

  2. 一段程序的人生 第10章: server

    从第0章開始看 第拾章 server     一切基本安顿下来,我開始认真的检阅一下我所栖身的文件夹.来到了外面的大世界,果然不一样.越是细致查看越是认为这里真是一个再好只是的地方. 这个文件夹里面有 ...

  3. Linux gadget驱动分析1------驱动加载过程

    为了解决一个问题,简单看了一遍linux gadget驱动的加载流程.做一下记录. 使用的内核为linux 2.6.35 硬件为芯唐NUC950. gadget是在UDC驱动上面的一层,如果要编写ga ...

  4. vim copy termi

    用vim写代码时,经常遇到这样的场景,复制多行,然后粘贴. 这样做:1. 将光标移动到要复制的文本开始的地方,按v进入可视模式.2. 将光标移动到要复制的文本的结束的地方,按y复制.此时vim会自动将 ...

  5. Spring:延迟初始化

    ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化.提前实例化意味着作为初始化过程的一部分,ApplicationContext实例会创建并 ...

  6. 【CTSC 2007】 数据备份

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1150 [算法] 首先,有一个很显然的结论 : 如果要使距离和最小,必须选择相邻的办公 ...

  7. B1230 [Usaco2008 Nov]lites 开关灯 线段树

    就是线段树维护异或和.之前我线段树区间修改down都是修改当前区间,结果debug出不来,改成每次向下了. 题干: Description Farmer John尝试通过和奶牛们玩益智玩具来保持他的奶 ...

  8. PCB MS SQL表值函数与CLR 表值函数 (例:字符串分割转表)

    将字符串分割为表表经常用到,这里 SQL表值函数与CLR  表值函数,两种实现方法例出来如下: SELECT * FROM FP_EMSDB_PUB.dbo.SqlSplit('/','1oz/1.5 ...

  9. ruby --Paperclip::NotIdentifiedByImageMagickError

    首先,如果遇到这个问题,Paperclip::NotIdentifiedByImageMagickError,先检查下环境变量是否配置了ImagicMagick的路径. cmd下path 查看,首先加 ...

  10. File入门及路径名问题

    package com.io.file; import java.io.File; /** * @author 王恒 * @datetime 2017年4月20日 下午2:53:29 * @descr ...