11300 是什么
11300 是 beanstalkd 的默认端口,这是一款轻量任务队列:客户端 put 任务,消费者 reserve 领取,处理成功后 delete,失败则 release 或让它超时后自动回到队列。语义简单、部署零依赖,因此在新旧 PHP 项目、图片处理与邮件发送这类异步场景里长期存在。它没有认证也没有加密,任何能连上 11300 的客户端都能读取队列,甚至抢走本该由生产消费者处理的任务。
基本信息
| 服务 | beanstalkd(默认 11300) |
|---|---|
| 协议 | TCP(文本协议) |
| 用途 | 异步任务队列(支持延迟与优先级) |
| 认证 | 无 |
| 常用客户端 | PHP、Go、Python 库 |
| 安全等级 | 仅应用网段 |
典型使用场景
- 异步解耦:把耗时任务丢给队列后台处理
- 延迟任务:用 delay 参数实现定时与重试
- 队列排障:查看积压、查看未被删除的任务
- 安全核查:确认端口未跨网段开放
- 容量评估:任务到达速率与消费能力的匹配
- 可靠性设计:为关键任务增加幂等与补偿逻辑
常用 beanstalkd 命令
| 命令 | 作用 | 关注点 |
|---|---|---|
| stats | 服务器总体统计 | 当前任务数与连接数 |
| stats-tube <tube> | 指定队列统计 | 积压看 ready 与 buried |
| peek-ready <tube> | 查看就绪任务 | 确认任务内容是否符合预期 |
| peek-buried <tube> | 查看被搁置任务 | buried 增长说明消费端持续失败 |
查看队列状态
查看队列状态
telnet queue01 11300
# 输入: stats / stats-tube default / peek-ready default / peek-buried default
ss -lntp | grep 11300 # 监听核对
# 监控建议: 对 buried 数量做告警,而不是只看进程存活
# 连接管理: 结合 ss 观察消费者连接数是否稳定reserve 会把任务锁定一段时间(TTR):消费者处理超时未删除时任务会自动回到队列,因此同一条任务可能被处理两次,业务侧要保证幂等。
buried 状态是判断消费端问题的关键信号:任务被反复失败搁置后不会自动重试,需要人工 kick 或修复消费逻辑。
beanstalkd 默认不做持久化:服务重启时队列中的任务会丢失,对可靠性要求高的业务需要额外落地记录。
队列积压通常是消费能力不足而不是网络问题:先看消费端的处理耗时与并发数,再怀疑队列本身。
任务体积不要过大:大消息会占用更多内存并拖慢传输,把大对象放到存储、队列里只传引用更稳。