想更好的使用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. Ubuntu17.10 下配置caffe 仅CPU i386可以直接apt install caffe-cpu,但是怎么运行mnist代码我懵逼了

    Ubuntu16.04下配置caffe(仅CPU)  参考:http://blog.csdn.net/zt_1995/article/details/56283249   第二次配置caffe环境,依 ...

  2. B3038 上帝造题的七分钟2 线段树

    这就是一道变得比较奇怪的线段树,维护每个区间的最大值和区间和,然后关键在于每次取根号的话数值下降的特别快,不用几次就都是1了,所以每次暴力单点修改,然后直接找区间最大值,假如区间最大值是1的话,就直接 ...

  3. Java-java-com-util-common-service:ServiceException.java

    ylbtech-Java-java-com-util-common-service:ServiceException.java 1.返回顶部 1. package com.shineyoo.manag ...

  4. E20170813-ts

    explicitly  adv. 明白地,明确地;

  5. E20170809-mk

    collapse   n. 垮台; (身体的) 衰弱;               vt. 使倒塌; 使坍塌; 使瓦解;                vi. 崩溃; 倒塌; 折叠; (尤指工作劳累后 ...

  6. D - Replacement

    Problem description Little Petya very much likes arrays consisting of n integers, where each of them ...

  7. Git教程(3)git工作区与文件状态及简单示例

    基础 目录: working driectory  工作目录,就是我们的工作目录,其中包括未跟踪文件及暂存区和仓库目录. staging area   暂存区,不对应一个具体目录,其实只是git di ...

  8. Java基础12一IO流

    1.IO流的原理 利用数据通道实现程序和数据源之间数据的的读写操作.  2.IO流分类 输入流.输出流.字节流.字符流.节点流.过滤流  3.InputStream 字节输入流 实现类FileInpu ...

  9. 上传文件到linux系统方法

    linux,windows filezilla 方法/步骤     下载 Filezilla client工具,此客户端为免费软件,下载完成后安装,安装一路下一步在这里就不过多阐述了,下载地址 htt ...

  10. 附加MySQL数据库的方法

    下面讲解附加MySQL数据库的方法. (1)将“光盘\Code\04\Project\数据库”文件夹中的扩展名为.sql的文件拷贝到本地机器中. (2)在如图1所示的MySQL工作台界面中,单击Dat ...