当前位置: 首页 > news >正文

Ubuntu下beanstalkd无法绑定局域网IP地址以及消息队列beanstalkd上的error: JOB_TOO_BIG的解决

一、ubuntu下beanstalkd无法绑定局域网IP地址

    今天因为业务需要,我把之前安装的beanstalkd所绑定的IP地址由127.0.0.1改成局域网IP地址,但是怪了,显示beanstalkd已经启动,查看端口监控也显示IP地址变了,但是使用telnet连接的却依然是连接不上,报错:Unable to connect to remote host: Connection refused。真是奇怪,难道是防火墙的问题?觉得不应该,但还也加上了这个端口的全部accept规则,但是依然不起作用。看来还是得从beanstalkd自身找问题。

    过程是这样的:我安装beanstalkd使用的是apt-get方式,beanstalkd的配置文件路径存在于这个路径文件:/etc/default/beanstalkd,修改之后使用service beanstalkd restart进行重启也没有报什么错误。但是就是不起作用。

root@us78:/# cat /etc/default/beanstalkd
## Defaults for the beanstalkd init script, /etc/init.d/beanstalkd on
## Debian systems.
BEANSTALKD_LISTEN_ADDR=10.78.11.12
BEANSTALKD_LISTEN_PORT=11300
root@us78:/# service beanstalkd restart
root@us78:/# telnet 10.78.11.12 11300
Trying 10.78.11.12...
telnet: Unable to connect to remote host: Connection refused

    后来了解到,这个问题是因为只要是从debian软件包安装的beantalkd,则它同时带有systemd .service和.socket。 当beantalkd由.socket启动时,无论您如何配置.service,它都会去绑定127.0.0.1。此时通过service beanstalkd status也能看到它会忽略我们配置的IP地址(如下日志),解决办法也很简单,就是移除这个路径/lib/systemd/system/beanstalkd.socket的.socket文件,然后重启systemctl daemon-reload and systemctl restart beanstalkd,即可解决,过程如下:

#service beanstalkd status忽略我们配置的IP地址
asdf beanstalkd[4323]: /usr/bin/beanstalkd: inherited listen fd; ignoring option: -l 10.78.11.12
asdf beanstalkd[4323]: /usr/bin/beanstalkd: inherited listen fd; ignoring option: -p 11300
#查看文件内容:/lib/systemd/system/beanstalkd.socket
root@us78:/etc/default# cat /lib/systemd/system/beanstalkd.socket
[Unit]
Description=Beanstalkd socket
Documentation=man:beanstalkd(1)
Before=sockets.target[Socket]
ListenStream=127.0.0.1:11300[Install]
WantedBy=sockets.target
#删除beanstalkd.socket文件并重启
root@us78:/etc/default# mv /lib/systemd/system/beanstalkd.socket /lib/systemd/system/beanstalkd.socket.bak
root@us78:/etc/default# systemctl daemon-reload
root@us78:/etc/default# systemctl restart beanstalkd.

二、消息队列beanstalkd上的error: JOB_TOO_BIG的解决

    今天一个处理处理消息队列的程序出现了报错,其中往beanstalkd添加消息的时候出现:Put error: JOB_TOO_BIG in beanstalk-client/src/Client.php:283,出现此报错的原因是往beanstalkd添加的消息个数(待处理)超过了最大限制,限制是多少呢?我们可以使用beanstalkd -z选项的值,默认是(default is 65535)。通过telnet beanstalkd端口查看stats返回结果可以看到,因此这里需要将此配置进行修改。

    我的系统是Ubuntu 16.04,beanstalkd是使用apt get install安装的,如果你是命令行启动的话直接加上-z选项即可,但不想改成命令行启动,网上看到用户在启动脚本中添加项成功,我尝试

#添加下面这行并修改DAEMON_OPTS这行,后重启
root@u33:$ vim /etc/init.d/beanstalkd
MAX_JOB_SIZE="-z 524280"
DAEMON_OPTS="-l $BEANSTALKD_LISTEN_ADDR -p $BEANSTALKD_LISTEN_PORT $BEANSTALKD_EXTRA -z 1000000"
root@u33:$ service beanstalkd restart

     但telnet通过stats查看仍然没有变化,后看到有DEBIAN用户说在/etc/sysconfig/beanstalkd中添加MAX_JOB_SIZE=-z 524280 选项解决问题,不过我使用的ubuntu,找到/etc/default/beanstalkd配置文件,上篇文章: ubuntu下beanstalkd无法绑定局域网IP地址  刚解决过/etc/default/beanstalkd不生效的问题,在这里添加MAX_JOB_SIZE配置后成功了。

#添加以下行代码执行重启
$ vim /etc/default/beanstalkd
BEANSTALKD_LISTEN_ADDR=0.0.0.0
BEANSTALKD_LISTEN_PORT=11300
#添加以下配置
BEANSTALKD_EXTRA="-z 524280"
root@u33:/# telnet 11.98.127.92 11300
Trying 11.98.127.92...
Connected to 11.98.127.92.
stats
---
total-jobs: 0
max-job-size: 524280

     在这里我发现了一个差异,解决这个问题有两种配置:一种是BEANSTALKD_EXTRA=-z 524280,一种是MAX_JOB_SIZE=-z 524280,看这名称有可能是这样,如果在启动脚本中解决应该使用BEANSTALKD_EXTRA,而在配置文件中解决就使用MAX_JOB_SIZE,我的启动起来了,我也没去尝试,其它朋友可以试试是不是这样。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ZYNQ LWIP(RAW API) TCP函数学习
  • 每日OJ_牛客_点击消除(栈)
  • 反激电路中TL431光耦反馈参数的计算,环路设计思路
  • Stream流的思想和获取Stream流
  • 极越造车2.0:01销量回暖,07杀出血路,ASD抢跑FSD
  • 实战外网配置——光猫桥接+路由器PPPoE拨号+防火墙外网链路健康检查+外网流量负载均衡
  • 【Go】-基于Gin和GORM的小清单项目
  • PPStructure核心源码研究(三)LayoutPredictor类详解
  • 昇思MindSpore AI框架MindFormers实践3:ChatGLM3-6B对一段文字进行提取
  • Qt 边框border - qss样式
  • 如何从github上clone项目
  • 品牌借势华为三折叠手机上市热点文案
  • 基于Java+Mysql实现(web)大型企业管理系统
  • 大数据Flink(一百一十八):SQL水印操作(Watermark)
  • 项目实战 (11)---搜索进度
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【Amaple教程】5. 插件
  • 10个最佳ES6特性 ES7与ES8的特性
  • express.js的介绍及使用
  • Redis学习笔记 - pipline(流水线、管道)
  • TypeScript迭代器
  • Vue 动态创建 component
  • Vue官网教程学习过程中值得记录的一些事情
  • vue总结
  • 浮动相关
  • 记一次和乔布斯合作最难忘的经历
  • 如何解决微信端直接跳WAP端
  • 设计模式 开闭原则
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • NLPIR智能语义技术让大数据挖掘更简单
  • 树莓派用上kodexplorer也能玩成私有网盘
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​​​【收录 Hello 算法】9.4 小结
  • ‌移动管家手机智能控制汽车系统
  • #QT(一种朴素的计算器实现方法)
  • $$$$GB2312-80区位编码表$$$$
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (八)Flink Join 连接
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (一) springboot详细介绍
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)3D模板阴影原理
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • .NET精简框架的“无法找到资源程序集”异常释疑