文档章节

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

mac_zhao
 mac_zhao
发布于 2014/09/29 11:34
字数 350
阅读 250
收藏 3

最近做了一个分布式的测试系统,目前实现了主要的架构和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/

© 著作权归作者所有

共有 人打赏支持
mac_zhao
粉丝 42
博文 249
码字总数 304671
作品 0
普陀
程序员
私信 提问
使用zookeeper实现分布式共享锁

分布式系统中经常需要协调多进程,多个jvm,或者多台机器之间的同步问题,得益于zookeeper,实现了一个分布式的共享锁,方便在多台服务器之间竞争资源时,来协调各系统之间的协作和同步。 pa...

学良
2013/06/05
0
10
堆叠式的文件系统--MTFS

MTFS(MulTi File System)是一个基于副本的可靠性增强系统。它通过维持文件的多个副本,提高分布式存储系统的可靠性。 MTFS是一个堆叠式的(stackable)文件系统,它本身不提供数据的存储能...

pkuelelixi
2012/07/17
841
0
分布式锁与实现(一)基于Redis实现

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、...

rechardchensir
2018/10/08
0
2
分布式锁与实现(一)——基于Redis实现

概述 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consisten...

飓风2000
2018/09/12
0
0
海量图片存储--MogileFS分布式存储集群的实现

分布式存储 当下互联网飞速发展,海量并发所产生的数据量以几何方式增长,随着信息链接方式日益多样化,数据存储的结构也发生了变化,在这样的压力下我们不得不重新审视大量数据的存储所带来...

jungege1216
2014/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript继承(二)——借用构造函数

JavaScript继承(一)——原型链中提出原型链继承的两个问题:一是原型的数据共享问题,二是创建子类型的实例时,不能向父类型的构造函数中传递参数。这两个问题的根源还是在于使用原型模式创...

Bob2100
33分钟前
0
0
day25:比较两个文件内容|杀进程|并发备份数据库|并发进程备份mysql库|监控全国CDN网站节点|

1、有两个文件 a.txt 和 b.txt,把 a.txt 中有的但 b.txt 中没有的行找出来,并写入列 c.txt,然后计算 c 的行数; 注释:比较两个文件两个文件不同,可以用的方法:diff md5sum grep -vf $1 $...

芬野de博客
49分钟前
4
0
抓包工具Charles

背景介绍 Charles是一款很实用,界面很友好(至少跟fiddler比起来),功能强大的抓包神器,因为它是基于 java 开发的,所以跨平台,Mac、Linux、Windows下都是可以使用的,并且在Android和i...

Jack088
50分钟前
2
0
徒手撸一个简单的RPC框架

徒手撸一个简单的RPC框架 之前在牛逼哄哄的 RPC 框架,底层到底什么原理得知了RPC(远程过程调用)简单来说就是调用远程的服务就像调用本地方法一样,其中用到的知识有序列化和反序列化、动态...

不学无数的程序员
今天
2
0
Java 面试题目最全集合1000+ 大放送,能答对70%就去BATJTMD试试~

2019,相对往年我们会发现今年猎头电话少了,大部分企业年终奖缩水,加薪幅度也不如往年,选择好offer就要趁早,现在开始准备吧,刷一波Java面试题,能回答70%就去BATJTMD大胆试试~ 以下是2...

mikechen优知
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部