探索技术,追求本源,我是倾城之夏。
本期我们就来一起探讨要成为 Java 架构师,要驾驭大型互联网的架构与落地,我们一起来看一看我们应该要掌握哪些的技术和能力呢?
先说一下我们整体的架构是一个前后端分离的架构,所以我们会从用户访问一起开始来说。
首先,一开始用户会通过我们的浏览器或者手机端等等,然后访问到我们具体的内容,这是一块前端的内容。用户请求经过前端那发送到我们的后端,所以对于这样的一个请求来讲的话,会进入到我们的负载均衡器,也就是 Nginx。
一般我们有多台 Nginx,那么为什么会有多台呢?主要是因为我们的 Nginx 也是一个服务器,它也会有可能会宕机,会挂掉。所以我们通过 LVS +KeepAliveTime 做了一个储备,那么就保证了我们的一个 Nginx 是不会宕机,就算宕机了有备用机给替换掉。
随后负载均衡器会把我们的请求经过了一些处理以后会发送到我们的后端,那么在我们的后端,我们后端其实就已经不再是一个单体,它是有很多个服务组成。比如像用户服务集群、商品服务集群以及是订单服务集群。
每一个服务的话,它都是一个单独的系统,也是一个单独的服务。服务会向外提供一些相应的结接口。当然我们服务和服务之间也是可以相互去进行通讯的。
那对于我们的微服务来讲,其实它自己本身就是一个系统。那么一个系统就会对应到一个相应的数据库。所以说相应的它会有用户数据库、商品数据库以及是订单数据库。它们每一个数据库的话,在我们的用户请求量非常庞大的时候,各自对自己的库又可以做一个读写分离,主从的分离。
在我们的一个应用层到我们数据层之间,它们会有一个缓存,这个缓存我们一般会通过 Redis 来进行一个构建。这个主要也是因为我们用户请求&