侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

用vertx实现高吞吐量的站点计数器

2022-07-04 星期一 / 0 评论 / 0 点赞 / 63 阅读 / 1838 字

工具:vertx,redis,mongodb,log4j 源代码地址:https://github.com/jianglibo/visitrank 先看架构图: 如果你不熟悉v

工具:vertx,redis,mongodb,log4j

源代码地址:https://github.com/jianglibo/visitrank

先看架构图:


如果你不熟悉vertx,请先google一下。我这里将vertx当作一个容器,上面所有的圆圈要么是verticle,要么是module,反正都是监听event loop。中间有一条线隔开,左边是处理http请求,是异步verticle,右边是定时任务,workerverticle(同步模型)。这是0.0.3版本的架构,如果以后加入大数据处理结果,那么左边的http会加入统计结果的模块,当然不一定要在同一台机器上了。

目前这个架构下,用jmeter测试,并发10000没有一点问题(我手头没有产生足够多请求的机器),然后我用桌面的电脑,配置jmeter如下:

1000并发,一直请求2天(48小时)

throughout在10000,也就是每秒钟完成10000个请求,48小时就是3600×48×10000=1728000000,大概产生17亿条记录。没有问题。我观察了一下,每10分钟大概产生1.5G的日志,当日库timer每次需要执行4分钟左右,由于mongodb的插入锁存在,在这4分钟内,如果对当日库发出查询请求,目前尚未测试,但是基本不会查询原始数据,查询应该在mapreduce结果库中查询,没做一次mapreduce需要多少时间,目前尚未测试(还没开始写代码)。

如果您想运行这个系统,github的readme有说明,不过在这里重复一下:

vertx runmod com.m3958~visitrank~0.0.3 -conf conf.json


广告 广告

评论区