功能简介

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

中间件特点

  • 高吞吐量、低延迟

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

  • 可扩展性

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

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

  • 可集群、高可用

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

本次更新

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

启动服务:

docker run -p 18602:18602 -p 8602:8602 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:ws://127.0.0.1:18602")
.nameAs("demoapp")
.connect(); //订阅主题,并指定加入的消费者分组
client.subscribe("demo", null, true, message => {
console.log(message);
}); //发布消息
client.publish("demo", FolkMQ.newMqMessage("helloworld!"));
} main();

代码仓库

官网

FolkMQ 作个简单的消息中间件(最简单的那种), v1.3.1 发布的更多相关文章

  1. .Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布

    .Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing ...

  2. 【转】C#类的分类(静态类、实例类、嵌套类、结构、简单的抽象类、简单的密封类)

    静态类 -------------------------------------------------------------------------------- 静态类就是在class关键字前 ...

  3. CORS跨域请求之简单请求与非简单请求

    先来看一个例子 定义server01的项目,在路由表中添加一条路由记录 url(r'^getData.html$',views.get_data) 对应的视图函数 from django.shortc ...

  4. Python入门一:简单得不能再简单了##

    从python的语法上看,简单得不能再简单了. 想学它,请移步廖雪峰python2.7教程以及python3.这实在是最好的入门教程.参考资料太多: 外国的教程 Python 入门指南 Python ...

  5. 学python2.7简单还是python3.0简单,两者区别

    学python2.7简单还是python3.0简单,谈谈两者区别 1. 使用__future__模块 Python 3.X 引入了一些与Python 2 不兼容的关键字和特性.在Python 2中,可 ...

  6. 要多简单就有多简单的H5拍照加水印

    来一个简单粗暴的gif演示图 先来html 内容 <video id="video" width="320" height="240" ...

  7. JMS学习篇《一》ActiveMQ消息中间件的简单介绍与用法-概念篇

    原创说明:本篇博文为本人原创作品,转载请注明出处 1.何为消息中间件 消息中间件是一种在分布式应用中互相交换信息的一种技术,常见的成熟消息中间件有:RabbitMQ.SonicMQ,activeMQ. ...

  8. python 简单简绍以及简单的语法

    一.Pthon介绍 Pyhton的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆在阿姆斯特丹打发时间,决心开发一款新的脚本解释程序,作为ABC语言的 ...

  9. socket.io简单入门(一.实现简单的图表推送)

    引子:随着nodejs蓬勃发展,虽然主要业务系统因为架构健壮性不会选择nodejs座位应用服务器.但是大量的内部系统却可以使用nodejs试水,大量的前端开发人员转入全堆开发也是一个因素. 研究本例主 ...

  10. kettle教程(1) 简单入门、kettle简单插入与更新。打开kettle

    本文要点:Kettle的建立数据库连接.使用kettle进行简单的全量对比插入更新:kettle会自动对比用户设置的对比字段,若目标表不存在该字段,则新插入该条记录.若存在,则更新.   Kettle ...

随机推荐

  1. SpringBoot实现动态数据源配置

    场景描述: 前一阵子接手的新项目中需要使用2个数据源. 一个叫行云数据库,一个叫OceanBase数据库. 就是说,我有时候查询要查行云的数据,有时候查询要查 OceanBase 的数据,咋办? 废话 ...

  2. LyScriptTools 调试控制类API接口手册

    LyScriptTools模块中的DebugControl类主要负责控制x64dbg调试器的行为,例如获取或设置寄存器组,执行单步命令等,此类内的方法也是最常用的. 插件地址:https://gith ...

  3. React 的学习笔记一 (未完结)

    一.React 是什么 React 是一个声明式,高效且灵活的用于构建用户界面的 JavaScript 库.使用 React 可以将一些简短.独立的代码片段组合成复杂的 UI 界面,这些代码片段被称作 ...

  4. PHP使用cookie做浏览历史记录

    /** * @param $article文章详情 * @param int $count记录数 * tp须引入cookie类 */ function addHistory($article,$cou ...

  5. git~issue在github/gitlab中的使用

    本文档适用于github和gitlab issue介绍 GitHub 中的 issue 功能是一种用于跟踪项目中任务.缺陷.功能请求和讨论的工具.通过 issue,项目成员可以提出问题.报告 bug. ...

  6. Python-open函数-读写文件

    一.open 函数语法 open() 函数的作用是打开一个文件,并返回一个 file对象(即文件对象). open 是一个动作,可以理解为我们打开文档的点击动作. file 对象是一个实物,可以理解为 ...

  7. 【译】我为 .NET 开发人员准备的 2023 年 Visual Studio 10 大新功能

    原文 | James Montemagno 翻译 | 郑子铭 Visual Studio 2022 在 2023 年发布了许多令人难以置信的功能,为 .NET 开发人员提供了大量新工具来提高他们的工作 ...

  8. NEMU PA 3-2 实验报告

    一.实验目的 在上一章节我们完成了Cache的实现,但是这只是在速度上提高了取指和存取操作数的效率,而在访问的安全性上没有得到有效提升. 在PA3-2中我们要完成的,就是在NEMU中实现分段机制. 二 ...

  9. NVME学习笔记杂谈—名词定义

    1.5 定义1.5.1 Admin QueueAdmin Queue 是标识符为 0 的 Submission Queue 和 Completion Queue .Admin Submission Q ...

  10. 解决putty连接报 connection refused

    Ubuntu中换个速度快点的源后 执行 $sudo apt-get install openssh-server 安装ssh协议 执行ifconfig显示Ubuntu的ip地址 xp中用putty输入 ...