【草稿】【实践】模拟高并发场景 => 锻炼高可用、高性能的系统架构设计能力

我们(是我自己而已呢)打算先搞几个物理服务器(当前有8台树莓派可用),弄个小型交换机和几根六类网线,组成一个迷你机房。然后在这个内网环境中搞事。

【这里放几张树莓派组装图】

但是最近发现树莓派涨价厉害,而且对于我们后面高并发场景的模拟来说,树莓派有点儿不够给力(我猜的),所以打算卖了这几个派,去闲鱼上换几个dell r710 服务器来用,目前看上的配置是:12核24线程、32G内存 2T硬盘,据说是包邮。这玩意儿我以前在学校实验室看过,2U不厚但挺大的,老重老重了。打算先买两个回来,再顺带买个电费计量器,放在老家(不知道电费有没有便宜点儿),然后做个内网穿透,就可以开始远程操控。

一切的配置都对齐标准:

  1. 学用k8s,搞个集群出来,然后分配十来个实例;
  2. 搭建gitlab作为代码仓库,外加文档wiki网站。这两个好像都可以在NAS上面实现,就是一个托管而已;
  3. 从零开始搭建,从零开始记录,也会招有兴趣的朋友来一起组队做,前期我负责基础的服务器、网络和电路搭建。后续在一起做系统架构设计、方案评审、代码编码;
  4. 由于这些整体下来需要不少时间,整体周期偏长,但是我相信一整套坐下来,可以收获不少。特别是对于在工作中拧螺丝的同学们,相信在我们这里是可以实现造火箭的理想的;
  5. 因为我们会先写一个用户并发访问的模拟程序,尽量去模拟现实的中高并发场景(时间流量趋势图、随机等策略),一台服务就可以构造出百万级别的请求量;
  6. 然后我们再开始去设计系统来满足这些虚拟用户的访问需求。这块是我们的重点,也是我们要迭代和学习的内容;
  7. 基建之一:r日志与监控不能少,特别是监控。我们需要去打点,衡量每一个虚拟用户(线程or协程)访问的耗时,以耗时来衡量用户体验(流不流畅)。只是用户具体的需求,无法模拟,只能参考现实(其实先把典型电商场景搭起来就够玩很久了);
  8. 最后,我们记录会同步在这个博客中,tag主题就叫:亿级流量架构研发(前期我们会从万级开始演化,并做好记录、监控)

欢迎有兴趣的朋友加入一起聊聊,当然,我们也希望你能够:

  1. 有责任心、有耐心,参加了就要一起耐心的,花时间去做好每一个细节,把它当成跟你工作开发的系统服务一样认真对待。越认真,越有收获,敷衍了事不止学不到东西,我们也不会欢迎的哈。前期我会自己先慢慢搭建,慢慢找人,宁缺毋滥嘛;
  2. 通过这个项目,我们(我和你们)可以学到:技术文档撰写能力、[关键]亿级流量分布式系统开发经验(虽是模拟,但至少不是纸上谈兵)、团队协作能力、项目管理能力;
  3. 我的微信:cenyol,公众号:群二少。刚开通没内容,后续会同步这个系统的技术实践文章过去;

初步的大体思路:

  1. 模拟淘宝(典型且大家熟悉常见需求场景),主要完成核心链路,包括:百万用户注册请求、千万登录请求、亿级浏览(商品列表、商品详细页面、购物车、订单列表、订单详情)、千万级下单请求和支付请求。用户数量我们会最终逐渐积累到6亿条、商品数据我们会到100亿条。这一块的数据,后面可以具体参考淘宝当前的宏观数据指标。
  2. 不涉及图片、CDN等相关技术的应用。核心重点技术是:缓存(Redis和本地缓存)、MQ(Kafka和RMQ)、MySQL(索引、垂分、水平)、ES、数仓等等。我也是在持续学习中,后面边学边用更加高效的技术和组件框架;
  3. 做好监控打点,通过大盘实时观测了解到我们系统的负载能力,知己知彼;
  4. 因为我们模拟是为了锻炼我们的能力,更加聚焦在于核心链路、高并发场景的编码能力。所以也就没有考虑去做一个贴近现实,有实用的分布式系统。一来,有商业价值的地方多了人去做;二来一旦那么做了,那我们的精力将会大部分花在其他边边角角,无法聚焦提升我们的高并发能力。这是我个人的想法,欢迎不同想法的朋友评论交流;
  5. 初期(2022年)可能会达到5台服务器;
posted @ 2022-03-29 11:36  Cenyol  阅读(8)  评论(0编辑  收藏  举报