javascript - NATS 与分子。如何更改 NATS max_payload 值?
问题描述
我的问题是我需要增加 NATS 接收的 max_payload 值,但我不知道在哪里可以做到。
该项目使用 Moleculer 并且 NATS 被创建为带有 docker 的容器。
当我尝试发出大于 1MB 的请求时,NATS 返回:
ERROR - NATS error. 'Maximum Payload Violation
内部停靠站日志 NATS 返回:
cid:1 - maximum payload exceeded: 1341972 vs 1048576
我尝试了以下项目:
- 在 Moleculer Broker 配置中更改传输器(https://moleculer.services/docs/0.12/transporters.html);
- 为 NATS 添加配置文件以修改一些选项(https://hub.docker.com/_/nats);
分子经纪人配置的代码示例:
const brokerConfig: BrokerOptions = {
...,
transporter: "NATS",
transit: {
maxQueueSize: 100000,
disableReconnect: false,
disableVersionCheck: false,
},
...
}
nats 配置文件的代码示例:
{
max_payload: 1000000
}
使用 NATS 配置文件运行 docker 时出错:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/home/matheus/nats-server.conf\\\" to rootfs \\\"/var/lib/docker/overlay2/08959b2fce0deb2abea27e103f7f4426b7ed6f3ef64b214f713ebb993c2373e6/merged\\\" at \\\"/var/lib/docker/overlay2/08959b2fce0deb2abea27e103f7f4426b7ed6f3ef64b214f713ebb993c2373e6/merged/nats-server.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type. error Command failed with exit code 125.
解决方案
您应该为 NATS 创建一个配置文件。并将其作为 Docker 卷推送到容器并将其设置command
为-c nats-server.conf
nats-server.conf
max_payload: 4Mb
启动容器
docker run -d -p 4222:4222 -v ~/nats-server.conf:/nats-server.conf nats -c /nats-server.conf
推荐阅读
- javascript - 从零开始 d3 轴时间刻度
- c++ - 下面的代码中虚函数是如何工作的
- php - 当id将与输入框名称扩展id匹配时,如何将动态输入框值插入到单列表格中
- c# - 如何将变量从 Windows 窗体应用程序传递到另一个非窗体类,两者都在同一个 Visual Studio 项目中?
- php - XAMPP PHP 和 Mongo DB 连接身份验证在数据库管理员上失败
- java - 如何使用 Hibernate 连接到 Oracle 12c PDB
- python - 无法将 NDVI 层导出到 Google Drive
- android - cardview kotlin 的 Layoutparams 未解决
- selenium - 机器人类在文件上传案例中工作不一致
- php - 未返回 set_checkbox 值