- 动感地带,我的地盘我做主:
当我们访问京东,淘宝,拼多多等一系列国名品牌购物APP的时候,一进去就是光彩夺目的商品信息。那么你觉得这些信息资源都是存在哪个里面呢?
当然是存到数据库里面了,那么多的数据放在一个数据库里肯定是不行的,所以在大型的电商公司都会有自己的 数据中心。
其实数据中心并没有那么高大上,不也就是几百台服务器根据标准有规律的存放在一起。如一个机架(Rack),可以类比成放衣服的柜子,一个机架上面一层层的放的都是服务器,如图:
每个机架(Rack)里的服务器可能需要相互通信,那么就在每个机架的上面放一个交换机(也叫做 接入层 ),这个交换机的作用很简单就是用于数据交换。当然数据中心必须要保证高可用,则在每个机架的顶层交换机上面得使用两张网卡,相应的在每个机架的服务器也都要使用两张网卡与对应的交换机进行绑定,使得两张网卡当一张网卡来用。这种技术叫做:
LACP(Link Aggregation Control Protocol)
那么接入层交换机(Access Layer)之间也必须要有一个带宽大,性能高的交换机使其之间高速稳定的通信,这个交换机叫 汇聚层交换机如上面的第一张图右边的那个交换机。
汇聚层将多个机架里的服务器连接在一起,使之相互通信,这样组成了一个集群,在这个集群里面服务器通过二层实现互通,这个区域称为 可用区 或者 (POD)。
如果有许多个可用区如何将其连接起来?
这时候就要用到 – 核心层交换机
现在整个数据中心的结构差不多就是这样了。那数据都是存放在服务器里面的,但是出于安全考虑(如果有人潜入机房将,某台存放重要数据的服务器“借”走了咋办?)会使用到一种叫做 VPC(虚拟空间) 的技术。作用就是将服务器里面的数据进行加密,即使被别人借走也无法查看里面的数据。那么自己需要看这个加密的数据咋办呢?
放一台 OVS (Openvswitch),其作用就是实现数据从虚拟空间到物理空间的相互转换。那如何实现这个转换呢? 这里用到了 VXLAN 技术,但前提是必须有 VXLAN ID 才能转换并查看。概念图参考即可:
有些数据是商品的信息,有些数据(如某些功能代码)是一些功能的实现如 下单,加入购物车,付款等。 我们必须将这些服务分门别类,这样当需要使用到某个服务时能快速找到并调用。那么这里会用到个中后台分离的概念
那么问题又来了,如何在几千种服务种快速找到自己需要的服务呢?
- RPC 框架
- 服务注册中心
- 发现中心
这些技术等着如果有兴趣的话可以自己去发掘其中的奥秘。
全国那么多人用淘宝等APP如果访问同一个Rack那服务器肯定会奔溃的,则必须要使用负载均衡利用 Nginx 实现,将不同流量根据情况进行均摊保证数据中心的稳定性。
到这里整个数据中心就弄好了,那手机访问数据中心下单等信息如何通过互联网等相关协议进行传输呢?
欲知后事如何,请听下节讲解! 😄