zoukankan      html  css  js  c++  java
  • dubbo负载均衡与服务降级以及Zookeeper认证

    1.Dubbo集群与负载均衡

    2.服务降级:指的是当服务器资源紧张的时候,暂停掉一些不重要的微服务,从而将所有的服务器的资源统一交由另外一个核心的微服务处理

      • 【dubbo-api】如果要想实现服务降级的处理,在Dubbo之中需要为业务接口设计一个降级时的处理业务类即可

    package com.yootk.dubbo.service;
    import com.yootk.dubbo.service.IMessageService;
    import com.yootk.dubbo.vo.Message;
    public class IMessageServiceMock implements IMessageService {
        @Override
        public Message echo(Message msg) {
            Message echoMessage = new Message() ;
            echoMessage.setSender("【ECHO】Nothing...");
            echoMessage.setTitle("【ECHO】Nothing...");
            echoMessage.setContent("【ECHO】Nothing...");
            return echoMessage;
        }
    }
    

      • 【dubbo-echo-consumer】所有的服务降级的处理操作全部都是在客户端上处理完成的,修改客户端的接口注入配置

    @Reference(mock="true",check=false)
    private IMessageService messageInstance;
    

      

      那么现在就有一个问题了,如果所有的业务接口都使用这样的一种Mock实现类型,这个时候一定会造成代码的维护困难,所以还有一种简单的做法,让数据直接返回null,一旦服务不可用,返回一个null对象,而这种配置只需要在消费端的注解上定义即可。

    @Reference(mock="return null",check=false)
    private IMessageService messageInstance;

    3.ZooKeeper认证:在以后实际的开发之中,一定要为ZooKeeper设置ACL认证,才可以更好的进行注册内容的保护,同时防止其他用户盗取你的网络资源。

     • 【zookeeper-cluster-*】为根目录设置Zookeeper的认证信息,同时建议删除已经存在的所有dubbo路径信息

        • 删除当前已经存在的所有dubbo的路径:deleteall /dubbo

        • 追加一个新的数字认证信息:addauth digest zkuser:hellolee

        • 为zkuser的账户设置权限:setAcl / auth:zkuser:hellolee:crwda

     • 【zookeeper-echo-*】修改服务提供者与服务消费者的dubbo.properties配置文件,追加账户信息:

      dubbo.registry.username=zkuser
      dubbo.registry.password=hellolee
    

     • 【zookeeper-echo-*】修改服务提供者与服务消费者的spring配置文件

       • 【zookeeper-echo-provider】spring-dubbo-provider.xml:

        <!-- 在进行Dubbo服务注册的时候一定要将服务注册到ZooKeeper之中 -->
        <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}"
                        timeout="${dubbo.provider.timeout}" file="${dubbo.registry.file}"
                        username="${dubbo.registry.username}"
                        password="${dubbo.registry.password}" client="curator"/>

       • 【zookeeper-echo-provider】spring-dubo-consumer.xml:

        <!-- 在进行Dubbo服务注册的时候一定要将服务注册到ZooKeeper之中 -->
        <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}"
            timeout="${dubbo.provider.timeout}"
            username="${dubbo.registry.username}"
            password="${dubbo.registry.password}" client="curator"/>

    4.Dubbo直连与Token认证

      • 修改服务提供端的配置文件,引入token的配置项:

    <dubbo:provider timeout="${dubbo.provider.timeout}"
                        dispatcher="message" threadpool="fixed" threads="8" token="true"/>
    

      • 修改消费端的@Reference注解,将其设置为默认形式的引用配置:在日后所有的项目开发之中,dubbo服务端一定要开启token认证,这才是标准的项目开发。

    @Reference(mock="return null",check=false)
    private IMessageService messageInstance;

       

  • 相关阅读:
    4月19日 疯狂猜成语-----第五次站立会议 参会人员:杨霏,袁雪,胡潇丹,郭林林,尹亚男,赵静娜
    prototype
    angularJs scope的简单模拟
    angularjs DI简单模拟
    洗牌算法
    深入探索 TCP TIME-WAIT
    Logitech k480 蓝牙键盘连接 ubuntu 系统
    在 centos6 上安装 LAMP
    vlc 播放器的点播和广播服务
    Linux 文件系统及 ext2 文件系统
  • 原文地址:https://www.cnblogs.com/wxl123/p/11116246.html
Copyright © 2011-2022 走看看