Java架构师BAT直通车

    大型网站的设计宗旨
    平时开发过程中,对于项目架构的设计,需要注意:

    1. 合久必分:最初 MVC 就是把系统拆为 M(model)、V(view)、C(controller) 这三块,通过不同的包名来进行区分和分层,分层也是最常见的一种架构模式,不论用什么语言开发都会面临分层,这是无处不在的一种模式。而且分层也便于代码的解耦以及合理的工作分配。在我们的项目里,我们会通过 Maven 来对项目进行聚合分层。

    2. 集群:集群是高可用和负载均衡的手段,多台服务器节点部署相同的应用构成一个集群,保证负载均衡的同时提升系统的可用性,互相灾备。

    3. CDN:之前我们也说了,大型网站的用户群体是分散在全国各地的,所以,网站一旦发展到很庞大的时候,就会采用 CDN。这样不论用户在哪里都能够访问到最近的服务节点,这样就不会因为距离而使得用户请求速度变慢。

    4. 分布式系统:一个大型网站势必是由多系统、多模块、多中间件、多服务器等共同协同整合的一个整体。在分布式领域里,我们会接触到分布式架构、分布式文件系统、分布式锁、分布式事务、分布式配置、分布式限流、日志收集等等。

    5. 异步:异步是最常见的优化用户体验的一种方式。前端可以采用 Ajax 异步调用,减少页面刷新;后端采用生产者和消费者模式,对代码进行解耦,如此就会使用到消息队列,常见的消息队列为:RabbitMQ、RocketMQ、ActiveMQ、Kafka等,合理地使用消息队列,可以在高并发时进行流量消峰,以而达到保护自己的作用。

    6. 业务分离:一个大型网站的业务会有很多,用户、订单、商品、支付等等,那么这些模块都可以合理的进行分离,独立出一个子系统或子服务让某个专门的团队来负责,我们会在微服务阶段进行讲解。

    7. 数据备份:在大型网站多服务器运维的情况下,节点宕机是非常常见的,一旦宕机,我们所要做的就是数据的备份,不能因为宕机了而导致数据丢失。所以,定期为数据库做好冷热备份,做好主从,以此达到系统的高可用性(一般这块都又运维工程师帮我们搞定)。

    学习充电的绝对干货,超值

    ****************************************
    技术改变人生
    还在等什么,赶快加入我们
    海量教程节省你的时间!
    Q群:702101215
    Q群:757629668
    ****************************************