用Django+MySQL+Celery+RabbitMQ实现一个分布式测试系统

最近做了一个分布式的测试系统,目前实现了主要的架构和MVP(minimum viable product)版本的基本功能。在架构设计、数据库设计、具体实现等方面,(算是目前我做的架构最复杂的测试系统)还是花了2-3周的时间,终于MVP版本算是出来了(今后根据需求和精力再考虑丰富更多的功能)。

使用Python开发,界面部分目前还没做;架构上使用到的东西,主要使用了:Django+DjangoRestFramework+MySQL+Celery+RabbitMQ。
如下图:

architecture diagram of test execution API

architecture diagram of test execution API

(此图在:http://www.processon.com/view/link/53a6e2440cf266a8fabce8b0)
应该来说,该系统的可扩展性还是比较好的,任务都是异步处理,而且可以实现分布式的worker来同时处理RabbitMQ中的消息。今后,如果调用量到了很大的数量级,还可以好好优化和水平扩展更多的worker。

在搭建该系统的过程中,由于以前都没在项目中实际用到这些技术,所以还是走了各种弯路,踩过一些坑。不细说了,参考资料中的网页链接或许值得一读。

参考资料:
http://mathematism.com/2010/02/16/message-queues-django-and-celery-quick-start/
http://maemual.net/?p=543
http://ashin.sinaapp.com/article/137/

master

Stay hungry, stay foolish.

发表评论

电子邮件地址不会被公开。 必填项已用*标注