Readme.MD

August 22, 2019 · View on GitHub

消息队列 NewLife.MQ

NewLife.MQ 是一个轻量级消息队列,无延迟分发,支持消费组和消息去重,不支持集群部署。

主要特点:

  • 轻量级。服务端和客户端都是通过nuget引用NewLife.MQ即可,也可以在Windows上直接安装发行版NewLife.MQServer
  • 低延迟。默认不做持久化,发布消息后直接分发到目标队列,客户端长连接实时消费。(特别适用于跨系统异步通信)
  • 消费者。支持广播消息给多个消费者。
  • 消息延迟和去重。支持延迟消息,支持对重复发送的消息进行去重,降低消费成本。

2019-02-20 v2.0混合测试通过

1, 实现了基础的发送与消费
2, 每个Topic下有一个队列,目前使用并行字典实现,自增消息ID为key,便于查找和删除 3, 每个消费组(相同登录用户)记录消费偏移量

// 初始化客户端
var client = new MQClient
{
    Servers = new[] { "tcp://127.0.0.1:6789" },
    Log = XTrace.Log,

    Topic = "测试主题",
};

// 发布消息
var msgid = client.Public("发布测试").Result;
XTrace.WriteLine("msgid={0}", msgid);

// 消费消息
client.OnConsume = msgs =>
{
    foreach (var item in msgs)
    {
        XTrace.WriteLine("消费到 {0}", item);
    }
};
client.StartConsume();

主要术语:

  • MQHost 消息队列主机,管理多主题的订阅和发布
  • Topic 主题队列,每个主题有一个队列用于缓冲保存消息,同时记录多个消费者
  • Consumer 消费者,发布到主题的消息,会广播给各个消费者。多个订阅者构成消费者集群,消息只推送给其中一个订阅者。
  • Subscriber 订阅者,使用相同消费者标识的不同来源,视为不同订阅者,比如同一个消费者账号的不同网络连接。

新生命开源项目矩阵

各项目默认支持net4.5/net4.0/netstandard2.0

项目年份状态.NET Core说明
基础组件支撑其它中间件以及产品项目
NewLife.Core2002维护中算法、日志、网络、RPC、序列化、缓存、多线程
XCode2005维护中数据中间件,MySQL、SQLite、SqlServer、Oracle
NewLife.Net2005维护中网络库,千万级吞吐率,学习gRPC、Thrift
NewLife.Cube2010维护中Web魔方,权限基础框架,集成OAuth
中间件对接各知名中间件平台
NewLife.Redis2017维护中Redis客户端,微秒级延迟,百亿级项目验证
NewLife.RocketMQ2018维护中支持Apache RocketMQ和阿里云消息队列
NewLife.Thrift2019维护中Thrift协议实现
NewLife.Hive2019维护中纯托管读写Hive,Hadoop数据仓库,基于Thrift协议
NewLife.MQ2016维护中轻量级消息队列
NoDb2017开发中NoSQL数据库,百万级kv读写性能,持久化
NewLife.Cache2018维护中自定义缓存服务器
NewLife.Ftp2008维护中Ftp客户端实现
NewLife.MySql2018开发中MySql驱动
产品平台产品平台级,编译部署即用,个性化自定义
AntJob2019开发中蚂蚁调度系统,大数据实时计算平台
Stardust2018开发中星尘,微服务平台,分布式平台
XLink2016维护中物联网云平台
XProxy2005维护中产品级反向代理
XScript2010维护中×C#脚本引擎
NewLife.DNS2011维护中×DNS代理服务器
NewLife.CMX2013维护中×内容管理系统
SmartOS2014保密中C++11嵌入式操作系统,完全独立自主,ARM Cortex-M芯片架构
GitCandy2015维护中×Git管理系统
其它
XCoder2006维护中×码神工具,开发者必备
XTemplate2008维护中×模版引擎,T4(Text Template)语法
X组件 .NET2.02002存档中.NET2.0日志、网络、RPC、序列化、缓存、Windows服务、多线程
X组件 .NET4.02002存档中.NET4.0日志、网络、RPC、序列化、缓存、Windows服务、多线程

新生命开发团队

网站:http://www.NewLifeX.com 博客:https://nnhy.cnblogs.com QQ群:1600800