zoukankan      html  css  js  c++  java
  • dubbo学习笔记

    dubbo学习:
    1.安装注册中心zookeeper

    2.需要暴露服务的接口实现类上加入@Service注解,注意此处为dubbo的注解,并非spring的注解。
    接口调用方需要使用注解@reference远程注入服务提供方的接口
    dubbo配置文件:
    dubbo:application
    dubbo:registry 注册中心zookeeper地址
    dubbo:annotation 扫描制定包里的@service @reference等注解。

    3.dubbo admin 管理界面,需要从注册中心获取到服务提供者和消费者的信息进行图形化管理,可实现负载均衡、权重调整、访问控制、服务降级等操作。

    4.用于传输数据的pojo需要implements Serializable,服务器之间传递数据需要序列化。
    5.注册中心挂了,服务调用者还是可以调用服务提供者的服务,原因是调用者consumer本地缓存。如果provider变更了信息,注册中心会通知consumer去更新本地缓存。
    6.消费者调用服务提供者存在超时机制。timeout=1000ms retries=2 重试次数(默认重试次数2次,超时时间为1s)
    @service(timeout=1000ms,retries=0)
    @Reference(timeout=1000ms,retries=0)
    超时时间在consumer和provider都可设置,优先级:消费方 > 提供方 建议超时时间设置在服务提供方。因为服务提供方明确知道本服务需要耗费多少时长。
    7.多版本:本地升级后可通过@service(version="v1.0")设置,新旧服务同时提供服务。
    8.负载均衡:@service(weight=10) @Reference(loadbalance="random")
          1.Random 随机按照权重分配 默认为random。
          2.RoundRobin 按权重轮询
          3.LeastActive 最少活跃调用数,相同活跃数随机。
          4.ConsistentHash:一致性Hash,相同参数的请求总是发送到同一提供者。
    9.集群容错:
           1.Failover Cluster 失败重试,当出现失败重试其他服务器默认重试两次,使用retries配置,一般用于读操作。涉及到写操作的不能重试机制。
            @Reference(cluster="failover") 默认容错机制
            2.FailFast Cluster 快速失败 只发起一次调用,失败立即报错通常适用于写操作。
            3.FailSafe Cluster 失败安全,出现异常时,直接忽略。返回空结果。
           4.FailBack Cluster 失败自动恢复,后台记录失败请求,定时重发。
           5.Forking Cluster 并行调用多个服务器,只要一个成功即返回。
           6.Broadcast Cluster 广播调用所有提供者,逐个调用,有报错就返回报错。
    10.服务降级:指当服务器压力增大时,对用户的某些请求不处理或者换种简单方式处理,从而释放服务器资源以保证核心业务能正常执行或高效运作。
          1.@Reference(mock=force:return null) 表示消费方对该方法的调用直接返回null值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。
          2.@Reference(mock=fail:return null) 表示消费方在对该方法调用在失败后,再返回null值不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

    Is life always this hard , or is it just when you are a kid ? Always like this .
  • 相关阅读:
    微软Enterprise Library 4.0将支持依赖注入
    javascript cookies 存、取、删除实例
    动态调用 WebService(转)
    IE缓存是什么?cookies是什么?
    序列化
    PKI
    ASP.NET的(HttpModule,HttpHandler)(转)
    PKI基础 二.PKI基础5.数字证书及应用(转,一个加密解密的全过程)
    AOP技术基础(转)
    getChildByName()与getChildAt()效率比较
  • 原文地址:https://www.cnblogs.com/alela/p/15266166.html
Copyright © 2011-2022 走看看