点播同时并发怎么算带宽_我们是怎么干到上万并发的

背景说明

最近实验室缺人被导师抓去到某公司参与云计算这一块的中间件开发,业务不提。整个的业务流程相对的比较复杂。甲方所给的需求不明要求不明,最后给我们的只有一个UI界面 还有一地的坑 做完系统分析和接口设计,工作量从原来的3个接口 到后来的27个接口。不禁感叹甲方心黑啊。还好老板当人,强势的1p,最终只要求做接口的并发设计,最终要求达到3000并发量。

系统架构

我们的系统结构一开始并没有设计的那么复杂,采用了常见的SSM当人架构,也做好了规约说明,最后实现功能这部分加起来用了半天时间。之后的半个月,我们花了大量的时间在维护程序的健壮性和部署上,因为一定程度上这也是我们第一次参与企业级的开发。针对学校开发多了很多细节上的要求,产品需要交付的彻底健壮,没有较大的差错。 ps: 现在的java框架跟python的区别越来越小了。
此外,这次的项目甲方爸爸给了还算多的预算,采购了两台ecs服务器8核16G1M外网带宽,负载均衡采用10m的SLB服务器而不是本地nginx服务器,在数据库上采用rds服务器还有redis云服务器。
纵然甲方爸爸万分支持,但是该吐槽的还是得吐槽,没有需求文档,没有确切的工期划分,只要想到了什么就想加什么上去这个必须吐槽。很多的时间浪费在了返工重整上了,甲方需求不明真的是小公司通病。之前做c++高并发的量化交易的时候就发觉到了。此外,很多东西信手捏来,啥子别人有那我也要,您早说啊。
因此我们的项目架构采用了这样的流程进行开发:step1. 在Ecs服务器上采用Tomcat+Docker的方式进行部署实现。
部署过程和日常部署最终决定采用docker容器进行部署,减少服务器的基本环境的污染,增大可部署的效果。废话就不多说了 上代码。

docker run --name tomcat_l -p 8887:8080 -v /opt/conf:/usr/local/tomcat/conf -v /opt/docker_tomcat_dir_l/webapps:/usr/local/tomcat/webapps -v /opt/docker_tomcat_dir_l/logs:/usr/local/tomcat/logs  --restart=on-failure:10  -d tomcat:8.5.16
docker cp /etc/localtime tomcat_l:/etc/localtime
docker cp /etc/timezone tomcat_l:/etc/timezone

这里做了目录映射 端口映射以及 重启策略 同时实现同步时区 ps: 直接使用目录映射会出现问题无法创建容器,于是就曲线救xx。

step2. 在slb添加Tomcat容器在主机上所开启的端口。 这里就有点简单了,也不用写代码。挺方便的,而且效果比nginx好多了step3. 进行http接口测试 bug fix
在测试的时候功能测试暂没有发现问题,于是为了维护程序健壮性,除却阿里所指的情况,我们也添加了一些自己的case,从而达到扩展功能的目的(然而最骚的是阿里的接口出现了更新)。

42f79a66fa3b558dc15cf64f4fe368fb.png


今天和甲方沟通的时候,甲方问到场景和文档为什么会存在差异,出现了这么多的情况不同步。还好git仓库有commit查询的功能。不然真的是比窦娥还冤了。然后在压力测试时,压力峰值不超过600。修改了server.xml,也修改了catalina.sh,但是提高的效率并不高。我鬼使神差的加了阿里云的外网带宽,然后并发就上去了。。。。。
回头进行分析,才慢慢发现问题在哪。

traceroute -n

我们不仅测试了本地请求到slb,还测试了slb到ecs网络,ecs网络到阿里服务器。最后发现问题出现在ecs服务器到阿里这块走的是外网地址 不是内网。
至此,算是找到了问题在哪。
提一嘴:部署这块真的是坑多啊。step4. 和甲方保持沟通step5. 提高并发,修改配置,添加新部件,解决问题step6. 配置https

测试工具

推荐的测试工具是postjson以及jmeter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值