For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的不断发展,越来越多的app应用软件被开发推广上线,今天南宁达内培训就给大家简单介绍一下,软件开发系统架构基础知识分享。
服务列表和调用关系。
这一点在系统架构的文档中应该有描述。举例来说,在我们这个系统中,当我们发起一个登录请求时,对应上面的架构就是:gateway-member-auth-mysql(redis)。了解了调用关系之后,等你要分析登录业务的性能时,就可以一层层剥离问题了。
服务的规模。
服务中都有一个副本数量,看到这个副本数量之后,对应系统的大容量,就要有概念了。一个副本能支持的大容量是多少呢?这需要通过压测得知,而整个系统能支持多大的容量,就要根据副本做相应的扩展模型来计算了。
系统的容量根据每个业务系统的不同有很大的差别,像对一些共用服务(比如说ID服务),由于业务逻辑非常简单,所以单副本的容量就会高。而一些业务服务(比如说电商的订单服务、银行中的转帐服务),由于业务逻辑复杂,单副本的容量就会低一些。做压测的人对这些内容都要有事先的了解和大概的计算,以便判断它和终的容量是否差距较大。
硬件投入。
知道了服务的规模,当然也要知道硬件的规模。由于在K8s+Docker这样的服务编排逻辑中,我们事先并不知道每个服务会被调用到哪个硬件资源上,所以无法直接根据某个硬件资源来做相应的计算。但是在系统架构的规划中,应该明确给出每个服务应该配置多少的资源,如果你是容器化的服务,直接限制就好了。限制资源是为了让整个系统更加稳定,不要产生相互的影响。
技术栈。
知道了上面的结构之后,就要分析出整个架构所使用的技术组件有哪些,一一列出。如果有足够的信息支撑,也可以知道每个组件是如何使用的。比如说分库分表、读写分离、单元化部署等等和压测有关的关键技术。
容量所需的资源
我们还能大概计算一下容量所需的资源。比如,根据我的经验,登录服务在一个6C12G的容器(这里指的是登录链路上的所有服务都有这样的硬件配置)中,700TPS是稳稳的可以撑得住的,要是极端一点,上1000TPS也不是不可能,但对应的响应时间也会增加。这个时候会需要多少硬件资源呢,上面说了,登录业务涉及member和auth两个服务、一个MySQL、一个Redis。如果我们是想支撑2000TPS的登录业务,那就是近3倍的资源需求(先这样线性计算,实际项目中还是要进行横向扩展测试,同时我们还需要考虑冗余,即水位系数),那么总共需要的资源是多少呢?这里我拿CPU来计算一下,其他资源类似。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。