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-01-14

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

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

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/

2023-10-19

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

2022-10-19

18 成为 "Current" 版本。 node --watch(实验性) 运行时最近增加的一个令人兴奋的功能是支持使用 node --watch 选项在 "watch" 模式下运行。在 "watch" 模式下运行,当导入的文件被改变时,会重新启动进程。 $ node --watch index.js 该功能

2023-11-24

写入操作结束时强制刷新数据。 新增实验性的 WebSocket 客户端 使用 --experimental-websocket flag,可以添加一个全局的 WebSocket 对象,符合 WHATWG 的标准。 修复 vm.Script 的 V8 编译缓存支持 详情查看发布公告。 延伸阅读:N

2022-03-08

了 WHATWG 标准接口获取资源,这是一个基于 Promise 的 HTTP 客户端,可以用来简化 HTTP 请求,在浏览器环境已支持,浏览器环境的兼容性实现参考 Web/API/fetch,使用方式与浏览器中使用 Fetch API 一致。 Fetch API 主要包含以下四个接

2024-02-07

热扩展、集群高可用 特点 高吞吐量、低延迟 FolkMQ 纯内存运行,每秒能处理几十万条消息,最低延迟不到1毫秒。 可扩展性 FolkMQ Broker 集群支持 folkmq-server 节点热扩展。流量高时随时加,流量低时可减 持久性

2024-01-18

服务端 集群热扩展 特点 高吞吐量、低延迟 FolkMQ 纯内存运行,每秒能处理几十万条消息,最低延迟不到1毫秒。 可扩展性 FolkMQ Broker 集群支持 folkmq-server 节点热扩展。流量高时随时加,流量低时可减 持久性

2023-10-23

的边缘案例问题,Response对象缺少statusText属性等。WebSocket客户端请求头Host字段遗漏端口的问题也已解决。 总体来说,Bun 1.0.7对该项目的Node.js兼容性做出了长足的改进,使其可以运行更多依赖Node.js API的程序。同时也修复了许多

2023-03-24

在环境中解析 package.json 文件。 扩大了对加密的支持: 增加了对 node:crypto 中 createCipheriv 和 createDecipheriv API 的支持,扩大了可用的加密功能范围。 错误浮现: package.json 中的依赖解析错误现在以一种 lazy 的方式浮出水面,最