美文网首页
Dubbo-基础特性介绍

Dubbo-基础特性介绍

作者: 洛神灬殇 | 来源:发表于2018-11-29 23:12 被阅读0次

    1.注册中心

    1.1 Zookeeper注册中心

           可以用于生产的注册中心服务级别,zk本身支持cp服务级别,保重服务的一致性,建立长连接机制,进行实时推送服务状态情况。本身带有选举算法和同步一致性,故此功能稳定,可配合集群功能,failover机制进行故障切换,保证服务一致性。建议使用dubbo-2.23版本以上。服务的稳定性有赖于注册中心的稳定性。

    1.2 Redis注册中心

         Redis自身高强度的读写速度以及集群模式的构建,数据安全和稳定性的保障,内存以及持久化的机制保证数据的完整性等。采用客户端双写的集群方式进行构建注册中心,性能高。可以用于生产级别。但是必须要求服务器时间同步,保证心跳检测去除过期数据。

    1.3 Multicast注册中心

       去中心化,内置服务机制,无需外置注册中心即可实现调用,依赖于网络拓扑和路由,跨机房或者跨网断,会出现无法注册情况。一般用于开发测试级别

    1.4 Simple注册中心

        DogFooding服务,自身作为注册中心,其实本身也是一个标准的RPC服务,暂时只是作为测试,不支持集群同时也无法解决单点问题。

    2.健康中心

    2.1 Simple健康中心

        不支持集群,采用Jfreechart报表,宕机不会影响RPC服务。

    3.Rpc服务协议

    3.1 Dubbo服务协议

        Dubbo服务协议也是最常用的服务协议,采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用)。在大文件传输的时候,单一长连接会成为瓶颈问题。可用于生产级别。

     3.2 Rmi服务协议

            基于原生java rmi服务功能,建立远程方法调用,基于Tcp协议,建立操作可能会因为3+4问题造成性能问题。偶尔连接失败,需要重建stub服务。可以作为生产级别

     3.3 Hessian服务协议  

          与原生Hessian框架进行兼容操作,基于Http服务协议,频繁创建连接和释放链接是其瓶颈问题,需要hessian框架的支持,可用用于生产级别。

    3.4 Rest服务协议

    4.传输协议

    4.1 Netty Transporter

        JBoss服务的NIO框架,性能较好,一次请求进行两次服务事件处理,需要屏蔽无用事件。可用用于生产

    4.2 Mina Transporter

        老牌NIO,稳定,消息队列为进行及时派送的时候,会出现FullGC服务问题。可以用于生产

    4.3 Grizzly Transporter

        sun的NIO框架,应用于Glashfish服务器,无法扩展线程池,以及filter无法拦截下一个filter。测试

    5.序列化服务

    5.1 Java原生服务

    性能较差,java原生支持,可用于生产

    5.2 Hessian 序列化

        性能较好,多语言支持,Hessian版本兼容不好,各个版本都不容易见人,dubbo内置3.2.1hessian源码。容易起冲突。生产

    5.3 Dubbo 序列化

       内置POJO传送服务类元信息不进行传送,故此在采用大量pojo对象传输时候,性能较好。试用

    5.4 JSON序列化

        纯文本序列化,默认为fastjson,多语言支持,但是性能较差。可用于生产。

    6 代理对象生成

    6.1 Javassist-ProxyFactory

        通过字节码生成代替反射,性能较好,依赖于永久性存储区大小,支持生产。

    6.2 Java-ProxyFactory

        jdk原生支持,性能较差,支持生产。

    7 失败执行策略

    7.1 FailOver

           基本用于在失败故障之后,进行切换其他服务,通常用于读取数据操作,推荐使用。重试机制会导致出现延长时间调用。

    7.2 FailFast

            基本上会在失败故障之后,立刻失败,返回错误,通常用于写数据操作,对于那些非幂等的数据操作。

    7.3 FailSafe

    基本上会在失败故障之后,忽略执行的错误或者异常,会出现调用信息失败!

    7.3 FailBack

           基本上会在失败故障之后,会进行相关的操作保存失败后的请求信息,等待故障恢复后,进行定时重发,一般用于消息队列或者服务调用重试、事务关系的相关重试保证最终一致性的。

    8.负载均衡策略

    8.1 Random loadbalance

       随机性质的调用服务,按照权重设置随机概念进行分配,

    8.2 RoundRobin loadbalance

       轮询方式进行,按照公约后的权重分配设置轮询比率。

    8.3 LeastActive loadbalance

       最少活跃调用次数,进行调用前后的计数差,根绝调用计数差,分配服务调用,使得调用满的服务分配给更少的服务调用。

    8.4 ConsistentHash loadbalance

        一致性Hash算法,是根据不同的参数分摊到不同的服务,根绝hash算法分配到不同的服务。


    相关文章

      网友评论

          本文标题:Dubbo-基础特性介绍

          本文链接:https://www.haomeiwen.com/subject/nzmqcqtx.html