首页 > 其他分享 >FolkMQ "单线程"消息中间件 v1.0.32 发布

FolkMQ "单线程"消息中间件 v1.0.32 发布

时间:2024-02-07 10:34:31浏览次数:27  
标签:单线程 32 服务端 v1.0 集群 FolkMQ https folkmq

简介

  • 采用 “单线程” + “多路复用” + "内存运行" + "快照持久化" + "Broker 集群模式"(可选)
  • 基于 Socket.D 网络应用协议 开发。全新设计,自主架构!
角色 功能
生产端 发布消息(Qos0、Qos1)、定时消息(Qos0、Qos1)、可过期消息(Qos0、Qos1)
消费端 订阅、取消订阅
消费端 消费-ACK(自动、手动)
服务端 发布-Confirm、订阅-Confirm、取消订阅-Confirm、派发-Retry、派发-Delayed
服务端 内存运行、快照持久化(自动、停机、手动)
服务端 集群热扩展、集群高可用

特点

  • 高吞吐量、低延迟

FolkMQ 纯内存运行,每秒能处理几十万条消息,最低延迟不到1毫秒。

  • 可扩展性

FolkMQ Broker 集群支持 folkmq-server 节点热扩展。流量高时随时加,流量低时可减

  • 持久性、可靠性

消息被快照持久化(类似于 redis)到本地磁盘,并且支持数据备份防止数据丢失

  • 高可用

集群内任何节点坏掉只要还有“一个”同类节点,仍可提供服务

  • 快(单机版,180K TPS)。

有点像 Redis 之于 MySql。

  • 支持绝对顺序消息

通过配置实现

本次更新

  • 服务端的消息主处理,改为单线程模式

向 redis 学习。消息的主处理,基本在内存里进行。所以改成单线程后,性能没啥变化。

  • 添加 单机模式下绝对有序支持
//消息绝对有序配置支持(发送有序,接收有序)
MqClient client = FolkMQ.createClient("folkmq://127.0.0.1:18601?ak=ak1&sk=sk1",
                "folkmq://127.0.0.1:18602?ak=ak1&sk=sk1")
        .config(c->c.sequenceMode(true).coreThreads(1).maxThreads(1))
        .connect();
  • 添加 集群安全停止支持。实现一端停止,另一端完全无感知(不异常,不卡顿)

新的高可用演示视频:https://www.bilibili.com/video/BV1Ha4y1R73b/

  • 添加 管理接口支持
//管理接口,一般用于用户自己开发管理界面,通过接口管理 FolkMQ
String json = client.call(MqApis.MQ_QUEUE_VIEW_MESSAGE, token, "demo","demoApp").get();

代码仓库

官网

标签:单线程,32,服务端,v1.0,集群,FolkMQ,https,folkmq
From: https://www.cnblogs.com/noear/p/18010700

相关文章

  • 在ubuntu上用命令烧写SD卡&&在Windows上用Win32DiskImager工具一键烧写SD卡
    准备一张16GB以上的SD卡。linux系统上的操作:将SD卡插入PC主机。输入命令lsblk查看SD卡名称: 输入 sudoumount/dev/sdb*  输入命令进行烧写:pv-tprebde10-nano-sdcard.img|sudoddof=/dev/sdbbs=1M 从ubuntu上卸载SD卡,拔掉SD卡插到DE10-Nano开发板。Windows......
  • tensorflow 2.x 多机单卡 分布式训练配置笔记.18010232
    tensorflow2.x多机单卡分布式训练配置笔记tensorflow2.x多机单卡demo代码演示。配置笔记多机多卡属于tensorflow的tf.distribute.MultiWorkerMirroredStrategy策略,下面为详细的环境配置和demo代码环境、版本操作系统:Ubuntu22.04Python环境:anaconda23.11.0、Python......
  • esp32笔记[14]-使用软串口双机通信
    摘要两个esp32之间使用软串口(SoftSerial)进行通信.平台信息ArduinoIDE:2.2.1node_a:esp32c3node_b:esp32s2原理简介软串口SoftSerial[https://www.arduino.cc/reference/en/libraries/espsoftwareserial/][https://blog.csdn.net/qq_43126437/article/details/106166......
  • GIS基础知识 - 坐标系、投影、EPSG:4326、EPSG:3857(转)
    原文:https://www.cnblogs.com/haolb123/p/16553036.html作者:我命由我不由天—hao最近接手一个GIS项目,需要用到PostGIS,GeoServer,OpenLayers等工具组件,遇到一堆地理信息相关的术语名词,在这里做一个总结。1.大地测量学(Geodesy)大地测量学是一门量测和描绘地球表面的学科,也包......
  • P3219 [HNOI2012] 三角形覆盖问题&P1222 三角形 题解
    严格单$\log$做法,附实现细节和代码。考虑从左往右扫描线,发现每次操作是线段上端点$-1$,插入线段,删除退化成点的线段。如果某时刻一条线段被另一条完全覆盖,那么这条线段显然不会产生贡献,可以删去。最后得到的线段一定是左端点单调递增时,右端点也单调递增,可以用set维护。当两......
  • 32-Java中字符串、json、map之间的互相转换
    Java中字符串、json、map之间的互相转换 1.map转String、jsonObject对象packagemap;importjava.util.HashMap;importjava.util.Objects;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;publicclassMapDemo3{publicstatic......
  • Drvsetup.dll 是 Windows 操作系统中的一个动态链接库文件,用于设备驱动程序的安装和配
     Drvsetup.dll是Windows操作系统中的一个动态链接库文件,用于设备驱动程序的安装和配置过程中。该文件通常位于C:\Windows\System32文件夹下。Drvsetup.dll主要负责设备驱动程序的安装和配置过程中的一些核心功能,包括驱动程序的复制、注册、配置和卸载等。在设备驱动程序......
  • 【STM32+HAL库】---- 硬件IIC驱动0.96OLED
    硬件开发板:STM32G0B1RET6软件平台:cubemax+keil+VScode内容原著声明部分代码借鉴学习于以下视频和文章:https://www.bilibili.com/video/BV1MV411o7P5/?spm_id_from=333.999.0.0&vd_source=2c974fb85c05e13d278d1bbe4cddc944https://blog.csdn.net/weixin_56565733/article/de......
  • 简单方法使 kernel32.dll 发生重定位
    简单方法使kernel32.dll发生重定位系统启动后kernel32.dll在每个进程的加载地址都相同。。。。吗?相信很多人都知道这个,因为这个是远程线程注入的基础,类似的还有user32.dll之类的系统dll。不过这个概念是错误的,或者说它在绝大多数时候是正确的因为通常来说这些系统dll默......
  • [ABC328G] Cut and Reorder 题解
    [ABC328G]CutandReorder题解状压fw实锤思路观察到排列操作只会做一次,答案的编号一定是一段一段的。所以可以考虑\(f_s\)表示前\(popcount(s)+1\)个\(a\)元素,放进\(b\)中\(s\)的最小代价转移可以考虑放置一段,每放一段需要\(c\)的代价。专业看起来复杂度非......