中小型微服务系统 硬件设备如何部署,QPS大概多少
作为一名合格的开发工程师,不仅仅要在前期开发阶段对业务和技术有深入了解,知道选用哪种合适的技术,业务如何拆分,还要思考后期线上环境,资源,延迟,性能等如何优化维护以及分布式系统一些线上生产的一些问题。
本篇主要针对之前了解的情况对硬件设备资源做一个简单的介绍:
首先分布式系统线上实践问题,我们应该对公司的流量,各个服务,网管,注册中心应该如何部署,部署多少台机器才合适,每台机器的配置如何,每天整体流量有多少,高峰期的请求量有多少,你的整体系统是否扛得住(注:很多公司现在直接使用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大概多少相关推荐
- 基于java基于微服务架构的设备管理系统的设计与实现计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
基于java基于微服务架构的设备管理系统的设计与实现计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java基于微服务架构的设备管理系统的设计与实现计算机毕业设计源码+系统+lw文 ...
- 计算机毕业设计JAVA基于微服务架构的设备管理系统的设计与实现mybatis+源码+调试部署+系统+数据库+lw
计算机毕业设计JAVA基于微服务架构的设备管理系统的设计与实现mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA基于微服务架构的设备管理系统的设计与实现mybatis+源码+调 ...
- 从零开始搭建系统3.2——微服务注册中心开发及部署
从零开始搭建系统3.2--微服务注册中心开发及部署 转载于:https://www.cnblogs.com/provence666/p/8638586.html
- 一个完整的微服务系统,应该包含哪些功能?--转
原文地址:http://chuansong.me/n/405417651660 近几年,微服务架构迅速在整个技术社区窜红,它被认为是IT软件架构的未来方向,大神Martin Fowler也给微服务极高 ...
- CI Weekly #5 | 微服务架构下的持续部署与交付
CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...
- tcpdump如何判断丢包_亿级规模的高可用微服务系统,如何轻松设计?
" 说到大规模微服务系统,往往是一些 7*24 时不间断运行的在线系统.那么如何设计一个大规模的微服务系统呢? 图片来自 Pexels 这样的系统往往有以下的要求: 高可用.这类的系统往往需 ...
- 使用 Spring Cloud 实现微服务系统
使用 Spring Cloud 实现微服务系统 准备工作: 为了方便创建项目,以及各版本以来关系,此次创建项目使用 Spring Assistant插件. 创建单体服务中心项目 启用服务端的服务注册, ...
- 《深入理解 Spring Cloud 与微服务构建》第十八章 使用 Spring Security OAuth2 和 JWT 保护微服务系统
<深入理解 Spring Cloud 与微服务构建>第十八章 使用 Spring Security OAuth2 和 JWT 保护微服务系统 文章目录 <深入理解 Spring Cl ...
- 《深入理解 Spring Cloud 与微服务构建》第十七章 使用 Spring Cloud OAuth2 保护微服务系统
<深入理解 Spring Cloud 与微服务构建>第十七章 使用 Spring Cloud OAuth2 保护微服务系统 文章目录 <深入理解 Spring Cloud 与微服务构 ...
最新文章
- 《BI项目笔记》用Excel2013连接和浏览OLAP多维数据集
- windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux
- 第六周项目一-分数类的雏形(2)
- 离线安装chrome浏览器的postman插件
- Autowired byType 与 byName 策略
- 【Linux】一步一步学Linux——gcc命令(249)
- 参加浙江中医药大学第十二届程序设计竞赛(ACM赛制)的小记
- pip install flask-mongoengine报错
- 云下IDC和云上VPC如何高速稳定互联?——云专线接入方案
- HDU2007 平方和与立方和【序列处理+入门】
- 6个裂变获客增长方法
- mysql median_MySQL中查询中位数?
- 【题解】【中国大学MOOC】(北京大学)人工智能与信息社会测验——1新闻热点与身边的人工智能
- 今天开始做战斗,回合制战斗代码实现第一篇补充,从头开始,简单的2d回合制游戏一些文档方面的知识
- Neutron OVS-DVR
- boot版本是什么 cent os_CentOS下载及版本选择-CentOS LiveCD、LiveDVD和BinDVD区别
- mybait——入门简单项目
- vnpy 查询持仓量_vn.py 数据入库
- matlab 伯德图 横坐标步长_【龙腾原创】教您使用matlab画伯德图(看了你就学会了,比mathcad好用多了。谁用谁知道!)...
- 仓库搬仓实施过程参考