内网服务器集群架构
一、重要知识抢先知道
看下图,我们是要构建一套内网的服务器集群,然后接入到数据中心
上线服务器的过程:
1、你们公司刚刚开发出一套应用软件,想要发布上线
2、你和公司的运营等业务相关人员一起预估了上线后短期内可能吸引的用户量,预估出一系列性能指标
3、根据这些性能指标,你开始设计规划出需要哪些硬件设备:交换机、服务器、网线、网卡、磁盘等,可能还有防火墙(你不信任数据中心的防火,自己的要进一步做一些防护,这个也很合理,还可能有VPN设备当然也可以自己部署软件vpn一切都看自己的需求),然后咨询各个销售商讨价还价,最后出一个大概的采购清单,提交上级审批
4、审批通过后,网上下单,设备邮寄到数据中心楼下
5、跟数据中心借一个带轱辘的小拖车,装上设备,运到二楼,跟你的小伙子两个一起把服务器搬进机房,上架到机柜上
6、拿出提前打好标签的网线,按找之前的规划接好网络
7、装好操作系统,配置好IDRAC接口,就可以回公司远程操作了,通过IDRAC可以远程连接上服务器实现开关机
8、在公司通过ssh远程到一台一台的服务器,完成你的集群架构配置
具体怎么配置呢,这就是我们接下来要研究的主题了
二、集群架构介绍
2.1 什么是内网服务器集群
内网:内网就是我们自己的服务器自己内部通信的网络,因为数据中心已经帮我们把网络层的东西都架构好了,我们只需要组织好我们服务器间的网络环境就行,
集群:就是多台集群协调工作,是一个集体,有人负责做这件事,有人负责做那件事,最终分工合作来共同完成一整件事情,而不是每台服务器各自为战。
所以,对于集群来说,就像是有一群人组团去战斗,有两个关键点是你需要考虑的
- 1、时间一致
- 2、网络通信要畅通
这两个关键点都是跟群体协作息息相关,除了这两个之外,其他的就是每台服务器自身的一些问题处理了
2.2 为何要构建服务器集群
来储备几个知识,一点一点逼近问题的答案
一、软件大致分类
- 1、单机应用软件:给用户使用,为满足用户的某种需求而开发的软件,例如本地播放音乐、画图需求、做ppt需求等
- 2、网络应用软件:把单机应用软件的交互方式由直接与本机交互,改成了通过网络交互,例如网络听歌、网络看电影、网络游戏等
- 3、系统软件:主要实现计算机硬件的管理,给上层提供操作硬件的简单接口
- 4、嵌入式软件:运行在特定的嵌入式系统中,用于控制和管理特定的硬件设备,不像应用软件那样提供很多功能,嵌入式往往实现的功能都比较专一,应用领域比如汽车电子系统、医疗设备、家用电器洗衣机微波炉、电饭煲等
二、所有网络应用软件都包含两大部分功能
- 1、业务逻辑:业务就是办事的流程,是应用软件的核心
- 2、网络通信:是软件与用户交互的一种便捷高效的方式
三、网络应用软件的两大部分功能都是如何开发出来的?—–>拿来主义
- 1、业务逻辑部分:程序员用某一种或者多种编程语言实现(例如java、python、go、php),部分重复的轮子直接下载别人写好的功能(例如mysql、redis、kafka、nginx等)。这部分实现之后称之为应用
- 2、网络通信部分:都是用别人写好的功能,一般都不会自己开发。这部分称之为服务
四、总结与强调
- 1、网络应用的构成=负责业务逻辑的应用程序+负责网络通信的服务程序
- 2、web网络应用肯定也属于网络应用的一种,所以
web网络应用=web应用+web服务(这个概念非常重要,直接影响你对后续概念的理解)
五、一款网络应用软件的开发流程与集群化部署
三、集群性能指标与容量预估
集群的规模多少是需要经过计算的,一些常规的性能指标qps、tps、rt、load、pv、uv、带宽、并发连接数、数据库空间日增长量如下
https://egonlin.com/?p=8705
四、集群的五层架构
4.1、什么是分层
一个集群中有多台服务器,分层就是将他们划分成不同的角色,每种角色只负责自己的份内之事,即一种角色的服务器上只部署特定的网络应用程序,一般不会混着来,除非你真的很穷。
4.2 为何要对集群中的服务器进行分层
了解了集群指标与容量预估之后,我们知道了一台集群内应该具备多少台服务器才能抗住预期的压力
但仅知道这一点根本没啥用,
1、作为架构师你就相当于一个将军