FolkMQ 增加 Node.js 客户端,v1.3.1 发布


FolkMQ,作一个最简单的消息中间件(单机版,约 180K TPS)。面向简单,面向未来!

功能简介

角色 功能
生产端(或发起端) 发布消息、定时消息(或叫延时)、顺序消息、可过期消息、事务消息。发送消息(rpc)
支持 Qos0、Qos1
   
消费端(或接收端) 订阅、取消订阅。消费-ACK(自动、手动)。监听(rpc)
   
服务端 发布-Confirm、订阅-Confirm、取消订阅-Confirm、派发-Retry、派发-Delayed
服务端 单线程、内存运行、快照持久化(自动、停机、手动)、Broker 模式集群、集群热扩展

中间件特点

  • 高吞吐量、低延迟

集群模式每秒能处理百万消息,最低延迟不到1毫秒。

  • 可扩展性

集群模式支持服务节点热扩展。流量高时随时加,流量低时可减。视频:

  • 《FolkMQ - "多中心" 集群模式部署视频》

  • 持久性、可靠性

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

  • 可集群、高可用

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

  • 《FolkMQ - 集群"高可用性"测试视频》

本次更新

  • 新增 javascript 语言客户端实现(浏览器, uniapp[h5, android, ios], weixin, node.js)
  • 调整 docker 基础镜像改为:adoptopenjdk/openjdk11-openj9 (内存可省一半)
  • 调整 folkmq-broker 更名为:folkmq-server-broker (相互兼容,体验不变)
  • 添加 folkmq-server 对 ws 输传协议的支持
  • 添加 rpc 异常传导机制
  • 完善 顺序消息的消费逻辑(改为串行消费),更适合数据库有序同步之类的场景
  • 完善 许可证本地处理机制(基于rsa签名机制)

启动服务:

docker run -p 18602:18602 -p 8602:8602 -e folkmq.schema='ws' noearorg/folkmq-server:1.3.1

新功能示例(for Js or Node.js Demo):

const {FolkMQ} = require("@noear/folkmq");

async function main() {
//创建客户端,并连接
const client = await FolkMQ.createClient("folkmq🇼🇸//127.0.0.1:18602")
.nameAs("demoapp")
.connect();

//订阅主题
client.subscribe("demo", null, true, message => {
console.log(message);
});

//发布消息
client.publish("demo", FolkMQ.newMqMessage("helloworld!"));
}

main();

代码仓库

  • https://gitee.com/noear/folkmq
  • https://github.com/noear/folkmq

官网

  • https://folkmq.noear.org

相關推薦

2024-06-27

9Mb)。 功能简表 角色 功能 生产者(客户端) 发布普通消息、Qos0消息、定时消息、顺序消息、可过期消息、事务消息、广播消息     消费者(客户端) 订阅、取消订阅。消费-ACK(自动、

2024-06-14

9Mb)。 功能简表 角色 功能 生产者(客户端) 发布普通消息、Qos0消息、定时消息、顺序消息、可过期消息、事务消息、广播消息     消费者(客户端) 订阅、取消订阅。消费-ACK(自动、

2024-06-05

9Mb)。 功能简表 角色 功能 生产者(客户端) 发布普通消息、Qos0消息、定时消息、顺序消息、可过期消息、事务消息、广播消息     消费者(客户端) 订阅、取消订阅。消费-ACK(自动、

2024-05-28

强”。 功能简表 角色 功能 生产者(客户端) 发布普通消息、Qos0消息、定时消息、顺序消息、可过期消息、事务消息、广播消息     消费者(客户端) 订阅、取消订阅。消费-ACK(自动、

2024-05-18

功能简表 角色 功能 生产者(客户端) 发布消息、定时消息(或叫延时)、顺序消息、可过期消息、事务消息。支持 Qos0、Qos1     消费者(客户端) 订阅、取消订阅。消费-ACK(自动、手动

2024-10-10

web端更新 增加删除COS原始视频功能 增加跳转外部URL安全提示 增加编辑器内容自动保存 更新layui-v2.9.16 优化findUserActiveSession和findUserActiveTokens 优化文章和提问最大可用tag数量 优化用户锁定相关 优化错误日志记录

2024-01-14

one的应用会更加方便与易于使用 v1.3.1 版本更新内容 增加了每日用量统计 增加了监控徽标 增加了移动端导航支持 增加了telegram通知 增加了版本显示 dashboard卡片可以自定义标题 修复监控器排序问题 修复类型问题

2022-07-21

发布,资源授权管理中心。 此版本更新内容包括: 增加限定授权支持(限定某资源空间) solon 升级为:1.9.3 snack3 升级为:3.2.31 water 升到为:2.8.1(需要 water server 2.8.0+ 配套) 详情查看:https://gitee.com/noear/grit/releases/

2024-02-24

内存占用与快照大小 优化 安全停止延时改为4秒 优化 客户端相关参数校验 优化 客户端的心跳间隔为6秒 优化 停止打印信息 sokcet.d 升为 2.4.3 新功能示例(事务消息): //准备(1.取名字;2.添加响应实现) MqClient clien

2024-04-17

功能简表 角色 功能 生产者(客户端) 发布消息、定时消息(或叫延时)、顺序消息、可过期消息、事务消息。支持 Qos0、Qos1     消费者(客户端) 订阅、取消订阅。消费-ACK(自动、手动

2023-11-29

is 之于 MySql。 //使用 MacBook pro 2020 + JDK8 本机测试,单客户端发与收(跑分难免有波动,我是选了好看点的) Helloworld 1、启动服务 docker run -p 18602:18602 -p 8602:8602 noearorg/folkmq-server:1.0.8 2、编写客户端代码 maven import &l

2024-01-03

s ClientDemo { public static void main(String[] args) throws Exception { //客户端 //MqClient client = FolkMQ.createClient("folkmq://127.0.0.1:18602").connect(); //tcp 端口 MqClient client = FolkMQ.createClient("folkmq:ws://127.0.0.1:18603").connect(); //ws 端口 //订阅 client.subscribe("demo

2024-05-18

提供支持。好处是: 服务端不会 oom(服务端支持) 客户端也不会 oom(客户端支持) 示例: 启动服务端(中间件): java -Xmx256M -jar folkmq-server.jar 用客户端简单压测一下: public class Test { public static void main(St

2023-10-19

值的新实验性 flag (--experimental-default-type) 内置 WebSocket 客户端 针对 test runner 的许多更新 …… 公告写道,当 Node.js 20 本月晚些时候成为长期支持版本 (LTS) 时,Node.js 21 将取代 Node.js 20 成为"Current"版本。根据发布时间表,Nod