分布式流控系统 dimit

码农软件 · 软件分类 · 网络工具包 · 2019-02-24 17:59:08

软件介绍

dimit

分布式流控系统 QQ: 527645454 (开发讨论群)

快速开始

    
        
            io.github.dzh
            dimit-core
        
        
            io.github.dzh
            dimit-zk
        
    
  • 初始化StoreSystem

String uri = "dimit-zk://dzh/dimit?host=127.0.0.1:2181&sleep=1000&retry=3";
DimitStoreSystem dss = DimitStores.newStoreSystem(URI.create(uri), null);
  • 依次创建流控Conf,配置结构层次:

- DimitConf             定义一个流控器
    - ChannelGroupConf  通道组配置
        - ChannelConf   通道配置

 

注: 参考单位测试 dimit-demo/../TestZkStoreConfDemo

  • 初始化Dimiter,依据流控Conf创建对应的运行时数据

// init dimiter and runtime channels
String uri = "dimit-zk://dzh/dimit?host=127.0.0.1:2181&sleep=1000&retry=3";
Dimiter dimiter = Dimiter.newDimiter(URI.create(uri), null, dimitConfId);
ChannelGroupWrapper group = demo.initChannelGroup(channelGroupConfId);
group.newChannel(ChannelConfId_1, ChannelType.SEND);
group.newChannel(ChannelConfId_2, ChannelType.SEND);

// select
List selected = group.select(TagA,TagB);
V result = null;
for(ChannelWrapper channel : selected) {
    try{
        result = channel.call(new ChannelCallable{
            // TODO request
            ...
        });
        // TODO parse result
        ... 
        break;
    }catch(RateLimiterException e){
        LOG.info(e.getMessage(), e);
    }catch(InvalidChannelException e){
        LOG.error(e.getMessage(), e);
    }catch(Exception e){  // or break
        LOG.error(e.getMessage(), e);
    }
}

// program exit
dimiter.close();

注: 参考单位测试 dimit-demo/../TestDimiterDemo

特性列表

  • 流量控制

    • ChannelConf定义max-tps, Channel实例的tps = max-tps / Channel总数

  • Tag筛选

    • ChannelConf定义通道的tag列表,ChannelGroupWrapper.select(...)时选择满足条件的Channel组

  • 主备切换

    • ChannelConf定义通道ChannelStatus, select返回的可用通道列表里PRIMARY优先于STANDBY

  • 质量分析

    • 启用Channel的质量分析功能(stat.enable=true 默认开启),在ChannelWrapper.call()时采集stat信息

  • 异常切换

    • 通过stat信息动态计算ChannelWrapper.priority(), 影响select结果

  • Web管理

    • TODO

环境依赖

  • JDK1.7 or higher

  • maven 3

  • protobuf 3

  • servlet-api v3.1.0 TODO 使用wep4j

本文地址:https://www.codercto.com/soft/d/48.html

Data Structures and Algorithms

Data Structures and Algorithms

Alfred V. Aho、Jeffrey D. Ullman、John E. Hopcroft / Addison Wesley / 1983-1-11 / USD 74.20

The authors' treatment of data structures in Data Structures and Algorithms is unified by an informal notion of "abstract data types," allowing readers to compare different implementations of the same......一起来看看 《Data Structures and Algorithms》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具