分布式消息系统尝试(rabbitmq, celery, redis)
最近在调整游戏的后台架构,之前因为需要快速出产品,所以整个代码都揉成一团,也基本没有做任何分层处理。现在服务器端的开发也开始逐渐招进来,所以打算打算换一套统一的架构,以后做新游戏只要做其中的业务逻辑即可。 其实之前在腾讯的时候,基本不会用到
最近在调整游戏的后台架构,之前因为需要快速出产品,所以整个代码都揉成一团,也基本没有做任何分层处理。现在服务器端的开发也开始逐渐招进来,所以打算打算换一套统一的架构,以后做新游戏只要做其中的业务逻辑即可。
其实之前在腾讯的时候,基本不会用到message queue这种,所有的分布式处理都是由自己写c++ server来互相通信的。这样的处理虽然开发量稍微大一点,但是性能和灵活性确实很高。
现在自己在外面做,虽然自己已经封装了一套server的框架出来,但是毕竟还有太多的轮子需要自己制造,所以就想到了之前一直有了解过celery,来看一下这种基于message queue的任务系统能达到什么性能。
RabbitMQ
celery首推的mq是rabbitmq,所以需要先安装一下:
在mac下用brew 安装:
brew install rabbitmq
安装成功之后,即可启动server了。
不过在这之前,我们先把后台管理的插件打开:
rabbitmq-plugins enable rabbitmq_management
之后执行如下命令,启动server:
rabbitmq-server
这个时候就可以通过?http://127.0.0.1:15672/?来访问后台管理端了,默认的用户名和密码是guest guest,可以自己在页面上修改。截图如下:
?
Redis
celery也支持redis作为broker和backend,所以redis也需要安装一下,这里就不赘述了?
Celery
安装命令为:
pip install celery
?
性能测试
新建 t.py:
from celery import Celery app = Celery(backend='amqp', broker='amqp://') @app.task def add(x, y): return x + y
以及测试文件 test.py:
import time from t import add t1 = time.time() result = add.delay(1, 2) print result.get() print time.time() - t1
?
启动celery worker:
celery -A t worker --loglevel=info -c 2
执行 python test.py 输出结果为:
0.545017004013
修改 t.py 为:
from celery import Celery app = Celery(backend='redis', broker='redis://') @app.task def add(x, y): return x + y
?
测试结果为:
0.603708028793
?
无论是rabbitmq还是redis,性能都慢的让人无法接受,最终还是放弃了用celery做任务分布的想法,还是老老实实的用server通信吧。
原文地址:分布式消息系统尝试(rabbitmq, celery, redis), 感谢原作者分享。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

通用矩陣乘法(GeneralMatrixMultiplication,GEMM)是許多應用程式和演算法中至關重要的一部分,也是評估電腦硬體效能的重要指標之一。透過深入研究和優化GEMM的實現,可以幫助我們更好地理解高效能運算以及軟硬體系統之間的關係。在電腦科學中,對GEMM進行有效的最佳化可以提高運算速度並節省資源,這對於提高電腦系統的整體效能至關重要。深入了解GEMM的工作原理和最佳化方法,有助於我們更好地利用現代計算硬體的潛力,並為各種複雜計算任務提供更有效率的解決方案。透過對GEMM性能的優

訊息已發出但被對方拒絕是所發送的訊息已經成功地從設備發送出去,但由於某種原因,對方並沒有接收到這條訊息。更具體地說,這通常是因為對方已經設定了某些權限或採取了某些操作,導致你的訊息無法被正常接收。

7月29日,在AITO问界第四十万台新车下线仪式上,华为常务董事、终端BG董事长、智能汽车解决方案BU董事长余承东出席发表演讲并宣布,问界系列车型将于今年8月迎来华为乾崑ADS3.0版本的上市,并计划在8月至9月间陆续推送升级。8月6日即将发布的享界S9将首发华为ADS3.0智能驾驶系统。华为乾崑ADS3.0版本在激光雷达的辅助下,将大幅提升智驾能力,具备融合端到端的能力,并采用GOD(通用障碍物识别)/PDP(预测决策规控)全新端到端架构,提供车位到车位智驾领航NCA功能,并升级CAS3.0全

蘋果16系統中版本最好的是iOS16.1.4,iOS16系統的最佳版本可能因人而異添加和日常使用體驗的提升也受到了很多用戶的好評。蘋果16系統哪個版本最好答:iOS16.1.4iOS16系統的最佳版本可能因人而異。根據公開的消息,2022年推出的iOS16被認為是一個非常穩定且性能優越的版本,用戶對其整體體驗也相當滿意。此外,iOS16中新功能的新增和日常使用體驗的提升也受到了許多用戶的好評。特別是在更新後的電池續航力、訊號表現和發熱控制方面,使用者的回饋都比較正面。然而,考慮到iPhone14

4月11日,華為官方首次宣布HarmonyOS4.2百機升級計劃,此次共有180餘款設備參與升級,品類覆蓋手機、平板、手錶、耳機、智慧螢幕等設備。過去一個月,隨著HarmonyOS4.2百機升級計畫的穩定推進,包括華為Pocket2、華為MateX5系列、nova12系列、華為Pura系列等多款熱門機型也已紛紛展開升級適配,這意味著會有更多華為機型用戶享受到HarmonyOS帶來的常用常新體驗。從使用者回饋來看,華為Mate60系列機種在升級HarmonyOS4.2之後,體驗全方位躍升。尤其是華為M

1.被加入黑名單:訊息已發出但被對方拒收了一般是被拉黑了,這時你將無法向對方發送訊息,對方也無法收到你的訊息。 2.網路問題:如果接收方的網路狀況不佳,或有網路故障,就可能導致訊息無法成功接收。此時,可以嘗試等待網路恢復正常後再次發送訊息。 3.對方設定了免打擾:如果接收方在微信中設定了免打擾功能,那麼在一定時間內,發送方的訊息將不會被提醒或顯示。

Linux和Windows是兩種常見的作業系統,分別代表了開源的Linux系統和商業的Windows系統。在這兩種作業系統中,都存在著命令列介面,用於使用者與作業系統互動。在Linux系統中,使用者使用的是Shell命令列,而在Windows系統中,使用者使用的是cmd命令列。 Linux系統中的Shell命令列是一個非常強大的工具,可以完成幾乎所有的系統管理任

Oracle資料庫中修改系統日期方法詳解在Oracle資料庫中,修改系統日期的方法主要涉及修改NLS_DATE_FORMAT參數和使用SYSDATE函數。本文將詳細介紹這兩種方法及其具體的程式碼範例,幫助讀者更好地理解並掌握在Oracle資料庫中修改系統日期的操作。一、修改NLS_DATE_FORMAT參數方法NLS_DATE_FORMAT是Oracle數據
