laravel隊列并發(fā)消費 為什么大多數(shù)PHP框架都沒有實現(xiàn)類似Laravel中隊列的功能?
為什么大多數(shù)PHP框架都沒有實現(xiàn)類似Laravel中隊列的功能?事實上,這與框架的定位有關(guān)。Laravel是一個完整的堆棧框架,所以構(gòu)建許多常用函數(shù)是正常的。大多數(shù)框架都有命令行模式,其余的是異步操作
為什么大多數(shù)PHP框架都沒有實現(xiàn)類似Laravel中隊列的功能?
事實上,這與框架的定位有關(guān)。Laravel是一個完整的堆??蚣埽詷?gòu)建許多常用函數(shù)是正常的。
大多數(shù)框架都有命令行模式,其余的是異步操作、發(fā)布、添加到隊列(MQ或redis),然后訂閱、偵聽和執(zhí)行命令行內(nèi)容。
如何設(shè)計一個MQ消息隊列?
1. 在上圖中定義消息發(fā)送和消耗的過程
2。為消息定義消息協(xié)議,如ActiveMQ、stomp、XMPP等。定義消息協(xié)議,定義消息隊列需要滿足的場景
是否要保證消息的可靠性,必要時要保證存儲的高可用性
是否支持同步和異步消息
是否要保證消息的順序
是否需要延遲消息要支持
很多開源的實現(xiàn)功能可以參考詳細信息。例如,rocketmq是高度可靠的,Kafka是高吞吐量的,但不是高度可靠的。
Laravel這個框架到底好在哪?或者有推薦一個比較值得學(xué)習(xí)的Php框架么?
Laravel是一個簡單而優(yōu)雅的PHP框架,它簡化了開發(fā)過程,并有大量的擴展包可供使用。使用laravel可以方便地實現(xiàn)用戶認證、電子郵件、隊列、事件、廣播、策略等功能,并提供了手工工具來提高開發(fā)效率。許多開發(fā)人員認為它的過度封裝會導(dǎo)致性能下降。與ThinkPHP相比,學(xué)習(xí)成本高,而且很難開始。然而,thinkphp5與laravel有許多相似之處。如果您使用thinkphp5,最好使用laravel。如果你有時間的話,你最好兩個都學(xué)并嘗試一下。另一些人說,他們不能做的次數(shù),因為他們嘗試他們。你只有試過才能知道。簡言之,學(xué)習(xí)它們沒有壞處,如果你有更多的技能,你就不會感到壓力。