想更好的使用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. HDU 5289 Assignment (ST算法区间最值+二分)

    题目链接:pid=5289">http://acm.hdu.edu.cn/showproblem.php?pid=5289 题面: Assignment Time Limit: 400 ...

  2. expect安装测试-自动登陆脚本

    安装: yum list | grep expect yum install expect 参考:http://www.cnblogs.com/iloveyoucc/archive/2012/05/1 ...

  3. spring boot测试

    今天在springside里试了spring boot,果然很方便,内置容器,不需要配置web.xml,简单几个文件就可以实现增删改查操作,一些配置如tomcat端口之类的直接写在applicatio ...

  4. DCloud-MUI:utils

    ylbtech-DCloud-MUI:utils 1.返回顶部 1.init mui框架将很多功能配置都集中在mui.init方法中,要使用某项功能,只需要在mui.init方法中完成对应参数配置即可 ...

  5. 第7章 Android中访问网络资源

    http://developer.android.com/index.html->https://developer.android.com/index.html https://develop ...

  6. Sudoku(dfs)

    http://poj.org/problem?id=2676 填九宫格 思路:将每一行,每一列及每一个3*3块中出现的数字标记上,将可填的空的位置记录下来,枚举1-9,填入合适的数. #include ...

  7. Python 32 通信循环 连接循环 粘包问题

    一:通信循环 二:连接循环 三:粘包问题

  8. Websocket实现前后台通信,demo小测试

    新需求大概如下:用户登录系统,登录成功之后建立websocket连接,实现通信 总体思路:前端不是我负责,只是简单的做个功能,先实现登录,把用户标识存入HttpSeesion,再建立websocket ...

  9. ArrayList 扩容原理

    面试中经常问到的问题之一就是List的扩容机制了,他是怎么做到扩容的,大家都能答出来底层是数组,复制一个数组来扩容,但是再具体一点来说,大家就不知道该怎么说了,如果不看源码说这么多确实就差不多了,但是 ...

  10. prim解决最小生成树问题

    #include <iostream> #include <algorithm> #include <stdio.h> #include <math.h> ...