❤️‍🔥 FolkMQ 的“内存保护”是怎么回事儿?


folkmq 提供了一个内存保护模式。当内存使用超过 80% 时,开始拒收对端的消息(通过告警异常反馈)。此特性,直接由 socket.d 提供支持。好处是:

  • 服务端不会 oom(服务端支持)
  • 客户端也不会 oom(客户端支持)

示例:

  • 启动服务端(中间件):
java -Xmx256M -jar folkmq-server.jar
  • 用客户端简单压测一下:
public class Test {
public static void main(String[] args) throws Exception {
MqClient client = FolkMQ.createClient("folkmq://127.0.0.1:1860").connect();

while (true){
client.publish("test", new MqMessage("hi"));
}
}
}
  • 当服务端内存超出限制时,客户端就会收到告警异常:
Exception in thread "main" org.noear.socketd.exception.SocketDAlarmException: Server memory usage over limit: 80.17%
	at org.noear.socketd.transport.core.impl.ProcessorDefault.onReceive(ProcessorDefault.java:125)

如果从订阅的角度,就会拒收中间件发来的消息(中间件,会延时再试)。

如果是客户端,还可定制内存比例:

MqClient client = FolkMQ.createClient("folkmq://127.0.0.1:18602")
.config(c -> c.maxMemoryRatio(0.8F))//0.2 到 1.0 之间
.connect();

相關推薦

2024-06-25

题 fury 升为 0.5.1 liteflow 升为 2.12.1 socket.d 升为 2.5.7 folkmq 升为 1.7.2 smartsocket 升为 1.5.44 smarthttp 升为 1.4.3 undertow 升为 2.2.32.Final 项目仓库地址? gitee:https://gitee.com/noear/solon github:https://github.com/noear/solon 官网?

2023-09-25

定时任务看板列表支持作业分组名排序 4.8.8.43 ⏱️2023.09.14 #I7YQ9V [新增] 验证特性 [DataValidation] 支持 [Display] 和 [DisplayName] 特性设置 {0} 4.8.8.42 ⏱️2023.09.01 #I7XB3T [新增] 监听日

2023-11-25

松快捷地扩大存储空间,满足不断增长的数据需求。 🛠️ 修复PolarDB加回集群的问题 针对用户反馈的PolarDB加回集群时存在的问题,我们进行了深入的排查和修复。现在,即使没有选择重搭,也不会再出现报错的情况,保证了

2024-10-10

,大家要对着文档边做边学。 2、微信鸿蒙原生版功能怎么现在才出来? 参考问题1,虽然切换一种新的编程语言,不是大问题,但一些技术问题,用新的工具解决后,它的稳定性也要重新测试。原生鸿蒙系统的公测,华为

2024-03-08

FolkMQ,作一个最简单的消息中间件(单机版,约 180K TPS)。面向简单,面向未来! 功能简介 角色 功能 生产端(或发起端) 发布消息、定时消息(或叫延时)、顺序消息、可过期消息、事务消息。发送消息

2023-11-29

FolkMQ,是一个内存型消息中间件。它采用了类似 Redis 的策略(内存运行 + 快照持久化) 功能 发布消息、发布定时消息(支持 Qos0、Qos1) 订阅、取消订阅 ACK,自动重试、有策略的延时(可做分布式事务应用) 主要特点

2024-01-03

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

2024-01-18

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

2024-02-07

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

2024-02-24

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

2024-06-05

FolkMQ 是个“新式”的消息中间件。强调:“小而巧”、“简而强”。可内嵌,可单机,可集群(部署包为 9Mb)。 功能简表 角色 功能 生产者(客户端) 发布普通消息、Qos0消息、定时消息、顺序消息、可过

2024-05-18

存的限流(当内存使用超过80%时,开始限流) 增加 folkmq:wss:// 协议头支持 增加 与小程序的兼容性 添加 客户端虚拟命名空间支持 sokcet.d 升为 2.4.17 面向简单编程 1) 启动服务 docker run -p 18602:18602 -p 8602:8602 noearorg

2024-06-14

FolkMQ 是个“新式”的消息中间件。强调:“简而强”。可内嵌,可单机,可集群(部署包为 9Mb)。 功能简表 角色 功能 生产者(客户端) 发布普通消息、Qos0消息、定时消息、顺序消息、可过期消息、事务

2024-04-17

编程 1) 启动服务 docker run -p 18602:18602 -p 8602:8602 noearorg/folkmq-server:1.4.2 2) 编写程序 引入一个小依赖 <dependency> <groupId>org.noear</groupId> <artifactId>folkmq-transport-netty</artifactId> <version>1.4.2</version> &