首页
技术笔记
网址导航
Json在线解析
二维码
Ip地址查询
在线流程图
新用户注册
|
会员登录
在线工具
开发笔记
毒鸡汤
网址导航
免费在线流程图
11赞
924
当前位置:
开发笔记
>
编程语言
> 正文
大型的 PHP应用 ,通常使用什么应用做 消息队列 的?
作者:夏晶阳--艺术 | 2021-08-29 00:01
一直在用Redis做消息队列,忽然想到,会不会有更好的呢?
一直在用Redis 做消息队列,忽然想到,会不会有更好的呢?
回复内容:
我们用beanstalk,qps1000左右 如果是单纯做队列服务建议beanstalkd(小巧、性能好),如果考虑到高可用、海量可以用kafka。 不如你先指出现有方案有哪些方面不不够好。 感觉这个问题和 PHP 没啥关系?消息队列选型更多考虑业务的场景:
* 性能,比如每秒有多少消息啊,如果你每秒有几万的消息量,那 Beanstalk、RabbitMQ 之列的就不能拿来直接用了。
* 可靠性,消息是否允许丢失?是否需要持久化?
* 高可用,是否可以容忍宕机?
* 是否需要分布式
* 运维成本,你们公司的开发(运维)是否有能力维护好这个消息队列
* 客户端支持,这个才是语言层面的东西。比如 Kafka 是个很好的消息队列,但是他的 PHP 客户端写的不太好,自己重新写也比较难,那么在选型的是否就要慎重。
在权衡这些因素以后,才能决定如何选择。
有哪些消息队列: Message queue
性能对比:
http://
bravenewgeek.com/dissec
ting-message-queues/
redis,rabbitmq 用redis,rabbitmq这两个 这个要看你的应用场景,一般来说用redis比较简单,但是redis不能实现消息没有正常处理,其他进程仍然能够处理这个消息的情况,也就是没有对消息有一个处理完成确认的过程。
如果要完整的消息队列,用过的有:gearman,rabbitmq, 都是不错的。 php-resque gearman。如果要求跨网络不丢消息还可以选择kafka workerman
推荐阅读
程序员
使用php检测bot
如何解决《使用php检测bot》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Azure表中查询结果大小的限制是多少?
如何解决《Azure表中查询结果大小的限制是多少?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
PySpark 1.5如何从几秒钟将时间戳截断到最近的分钟
如何解决《PySpark1.5如何从几秒钟将时间戳截断到最近的分钟》经验,为你挑选了1个好方法。 ...
[详细]
程序员
seaborn heatmap y轴逆序
如何解决《seabornheatmapy轴逆序》经验,为你挑选了2个好方法。 ...
[详细]
程序员
Safari不在服务器端的refresh/onbeforeunload上运行回调函数(调用客户端代码)
如何解决《Safari不在服务器端的refresh/onbeforeunload上运行回调函数(调用客户端代码)》经验,为你挑选了1个好方法。 ...
[详细]
程序员
当A和B被排序时,找到最小A [i] ^ 2 + B [i] ^ 2
如何解决《当A和B被排序时,找到最小A[i]^2+B[i]^2》经验,为你挑选了3个好方法。 ...
[详细]
程序员
流星:如何使用用户名或密码登录用户
如何解决《流星:如何使用用户名或密码登录用户》经验,为你挑选了1个好方法。 ...
[详细]
程序员
添加Swift枚举大小写是否需要对主要semver版本进行更新?
如何解决《添加Swift枚举大小写是否需要对主要semver版本进行更新?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
将BIGSERIAL转换为BIGINT
如何解决《将BIGSERIAL转换为BIGINT》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Scikit Learn TfidfVectorizer:如何获得具有最高tf-idf分数的前n个术语
如何解决《ScikitLearnTfidfVectorizer:如何获得具有最高tf-idf分数的前n个术语》经验,为你挑选了1个好方法。 ...
[详细]
程序员
复杂化在定制时会冻结Apple Watch
如何解决《复杂化在定制时会冻结AppleWatch》经验,为你挑选了0个好方法。 ...
[详细]
程序员
为什么在JS中你不能在原型上设置非函数
如何解决《为什么在JS中你不能在原型上设置非函数》经验,为你挑选了1个好方法。 ...
[详细]
程序员
静态只读字段和性能
如何解决《静态只读字段和性能》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何告诉析构函数不被调用?
如何解决《如何告诉析构函数不被调用?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何在制作Swift Command line工具时使用carthage库?
如何解决《如何在制作SwiftCommandline工具时使用carthage库?》经验,为你挑选了0个好方法。 ...
[详细]
程序员
Tesseract在openCV Mat上失败(安装问题?)
如何解决《Tesseract在openCVMat上失败(安装问题?)》经验,为你挑选了1个好方法。 ...
[详细]
程序员
声明具有相同类型的多个TypeScript变量
如何解决《声明具有相同类型的多个TypeScript变量》经验,为你挑选了2个好方法。 ...
[详细]
程序员
基于相同的索引连接两个列表
如何解决《基于相同的索引连接两个列表》经验,为你挑选了1个好方法。 ...
[详细]
程序员
将行复制粘贴到Excel电子表格中,而不覆盖下面的现有内容
如何解决《将行复制粘贴到Excel电子表格中,而不覆盖下面的现有内容》经验,为你挑选了1个好方法。 ...
[详细]
程序员
R中for循环的矢量化
如何解决《R中for循环的矢量化》经验,为你挑选了1个好方法。 ...
[详细]
吐了个 "CAO" !
吐个槽吧,看都看了
会员登录
|
用户注册
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
关注作者
Tags | 热门标签
actionscrip
bash
c#
c++
c语言
erlang
flutter
go
golang
java
javascript
lua
node.js
perl
php
python
scala
typescript
RankList | 热门文章
1
如何在visual studio上以管理员身份运行最近的项目或解决方案
2
使用正则表达式替换字符串中的参数
3
Python Scatter Plot,每个X都有多个Y值
4
删除由角度组件创建的主机HTML元素选择器
5
如何设置'crates.io'的本地存储库?
6
Azure Portal无法创建新的os磁盘,vm映像等
7
如何管理iOS apns令牌更改
8
使用Javascript在每个第二个字符后添加冒号(:)
9
IB Designables:无法更新自动布局状态:代理引发了"CALayerInvalidGeometry"异常
10
SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo失败:提供nodename或servname,或者不知道
11
抛出constexpr功能
12
通过IO了解Haskell中的纯函数
13
在Yii2中的视图文件中使用ArrayHelper
14
尾递归与原始递归
15
语法错误:'delimiter'在这里输入无效
16
为什么不能满足相关类型的From <>的更高的kinded特性限制,但Into <>可以吗?
17
如何将Future [Vector [UserLocation]]转换为Future [Vector [User]]
18
是否可以构建一个惰性条件元函数
19
制作填充图Matplotlib-错误:类型升级无效
20
在R中将两个列值粘贴在一起时省略NA值
DevBox开发工具箱 | 专业的在线开发工具网站
京公网安备 11010802040832号
|
京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有