作为一名合格的开发工程师,不仅仅要在前期开发阶段对业务和技术有深入了解,知道选用哪种合适的技术,业务如何拆分,还要思考后期线上环境,资源,延迟,性能等如何优化维护以及分布式系统一些线上生产的一些问题。

本篇主要针对之前了解的情况对硬件设备资源做一个简单的介绍:

首先分布式系统线上实践问题,我们应该对公司的流量,各个服务,网管,注册中心应该如何部署,部署多少台机器才合适,每台机器的配置如何,每天整体流量有多少,高峰期的请求量有多少,你的整体系统是否扛得住(注:很多公司现在直接使用K8S docker 实现,但是你至少得知道你的每个服务能扛多少,应该部署多少个,其本质都是一样的),对硬件资源要有一个可计算,可测量的概念。

本篇就针对中小型的系统进行一个基本硬件分析:

中小型的系统,大概拆分10~20个服务,(庞大的互联网公司,一般都是成千上百个),当然这里只是介绍一些重要的服务,其他的服务可以做一个旁类对比

  • 服务注册中心:简单的思考下,就知道每秒的QPS最多也就几十个,但是为了保证分布式产生的一些问题(分区容错性等)这里考虑部署2台机器,每台机器4核8G(每台机器可以抗每秒几百请求是没问题的,上千也可以),高可用冗余,任何一台机器死掉,都不会影响系统的运行。(注:如果使用ZK作为服务注册中心,那么根据实际的需要就部署3台,配置灵活调整)
  • 网关系统:因为网关系统是整个系统服务的一个入口,配置4核8G的机器,请求每台机器每秒几百是没有问题的(具体的跟你业务系统每个请求处理时间有关),但是在量上应该多一点,3~4台,保证每台机器的压力小一点,从而进一步保证可靠性。
  • 业务服务:这个需要根据实际业务来判定,应为在每个系统中,都存在冷服务和热服务,针对单次业务处理周期长,QPS等进行实际的测试才能做出最优的配置,但一般情况下,每个服务4核8G,每台机器抗几百请求是完全没问题的,但是如果业务处理周期太长,一个SQL之类的都要几秒钟,这种可能就问题大了,因此,针对核心的业务如果可以,还是最好优化以及实际的压测,毕竟是产品的核心,需要自己保证
  • 数据库:数据库应该是整个系统中最重要的资源之一,我们常规的都是使用Mysql,那么多少合适?推荐至少8核16G起,物理机最佳,这样的配置只要SQL不是太烂,几百并发请求问题不大,上千也是可能的。32核64G,平时抗个每秒几百上千的请求完全没问题,最多可以抗每秒几千请求也没问题,但是此时会导致Mysql机器的负载很高,CPU使用率很高,磁盘IO负载很高,网络负载很高。

总结

理论如果没有用于实践,那么它永远都是理论,当它被你自己实践了,那么它就是你的经验,即使结果最后不理想,因此,针对项目的实际生产环境的配置,刚开始可以参考别人标准的进行部署,但后期需要自己根据线上的数据反馈进行后期调整,让 发布上线->数据反馈->调整优化->发布上线  形成一个闭环,持续改进。

中小型微服务系统 硬件设备如何部署,QPS大概多少相关推荐

  1. 基于java基于微服务架构的设备管理系统的设计与实现计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java基于微服务架构的设备管理系统的设计与实现计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java基于微服务架构的设备管理系统的设计与实现计算机毕业设计源码+系统+lw文 ...

  2. 计算机毕业设计JAVA基于微服务架构的设备管理系统的设计与实现mybatis+源码+调试部署+系统+数据库+lw

    计算机毕业设计JAVA基于微服务架构的设备管理系统的设计与实现mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA基于微服务架构的设备管理系统的设计与实现mybatis+源码+调 ...

  3. 从零开始搭建系统3.2——微服务注册中心开发及部署

    从零开始搭建系统3.2--微服务注册中心开发及部署 转载于:https://www.cnblogs.com/provence666/p/8638586.html

  4. 一个完整的微服务系统,应该包含哪些功能?--转

    原文地址:http://chuansong.me/n/405417651660 近几年,微服务架构迅速在整个技术社区窜红,它被认为是IT软件架构的未来方向,大神Martin Fowler也给微服务极高 ...

  5. CI Weekly #5 | 微服务架构下的持续部署与交付

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  6. tcpdump如何判断丢包_亿级规模的高可用微服务系统,如何轻松设计?

    " 说到大规模微服务系统,往往是一些 7*24 时不间断运行的在线系统.那么如何设计一个大规模的微服务系统呢? 图片来自 Pexels 这样的系统往往有以下的要求: 高可用.这类的系统往往需 ...

  7. 使用 Spring Cloud 实现微服务系统

    使用 Spring Cloud 实现微服务系统 准备工作: 为了方便创建项目,以及各版本以来关系,此次创建项目使用 Spring Assistant插件. 创建单体服务中心项目 启用服务端的服务注册, ...

  8. 《深入理解 Spring Cloud 与微服务构建》第十八章 使用 Spring Security OAuth2 和 JWT 保护微服务系统

    <深入理解 Spring Cloud 与微服务构建>第十八章 使用 Spring Security OAuth2 和 JWT 保护微服务系统 文章目录 <深入理解 Spring Cl ...

  9. 《深入理解 Spring Cloud 与微服务构建》第十七章 使用 Spring Cloud OAuth2 保护微服务系统

    <深入理解 Spring Cloud 与微服务构建>第十七章 使用 Spring Cloud OAuth2 保护微服务系统 文章目录 <深入理解 Spring Cloud 与微服务构 ...

最新文章

  1. 《BI项目笔记》用Excel2013连接和浏览OLAP多维数据集
  2. windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux
  3. 第六周项目一-分数类的雏形(2)
  4. 离线安装chrome浏览器的postman插件
  5. Autowired byType 与 byName 策略
  6. 【Linux】一步一步学Linux——gcc命令(249)
  7. 参加浙江中医药大学第十二届程序设计竞赛(ACM赛制)的小记
  8. pip install flask-mongoengine报错
  9. 云下IDC和云上VPC如何高速稳定互联?——云专线接入方案
  10. HDU2007 平方和与立方和【序列处理+入门】
  11. 6个裂变获客增长方法
  12. mysql median_MySQL中查询中位数?
  13. 【题解】【中国大学MOOC】(北京大学)人工智能与信息社会测验——1新闻热点与身边的人工智能
  14. 今天开始做战斗,回合制战斗代码实现第一篇补充,从头开始,简单的2d回合制游戏一些文档方面的知识
  15. Neutron OVS-DVR
  16. boot版本是什么 cent os_CentOS下载及版本选择-CentOS LiveCD、LiveDVD和BinDVD区别
  17. mybait——入门简单项目
  18. vnpy 查询持仓量_vn.py 数据入库
  19. matlab 伯德图 横坐标步长_【龙腾原创】教您使用matlab画伯德图(看了你就学会了,比mathcad好用多了。谁用谁知道!)...
  20. 仓库搬仓实施过程参考

热门文章

  1. 文件粘滞位(粘着位)的作用
  2. [转]网易相册照用不误(解决网易相册的跨服使用)突破防盗链
  3. python怎么实现检验_python实现KMO检验和Bartlett's球形检验
  4. java的格式输入语句是_java输入输出语句是什么
  5. Node多版本控制器(nvs)
  6. Openlayers 高德腾讯、百度、天地图坐标相互转换
  7. 用拉普拉斯变换求零状态响应_拉普拉斯算子的FPGA实现方法
  8. 2022年我应该怎么学习SAP?下篇
  9. SCADA 总体设计(二)
  10. 关于计算机专业大三方向,计算机专业哪个方向比较好