为了账号安全,请及时绑定邮箱和手机立即绑定

百万雄师-集群架构

标签:
Java

当一个企业的业务迅速的发展起来,那么项目架构一定会发生改变,如果还是使用简单的单体架构的话,随着用户量上升,或者云服务不给力宕机,这个时候就会成为企业成长的短板,所以要跟上企业的发展,那么系统架构一定要做演变。

先来看一下单体架构的部署图
https://img1.sycdn.imooc.com//5db5879f0001791e02760275.jpg
从上图可以看得出来,如果其中一个服务宕机,那么整个系统不可用,会造成资损,也会造成用户流失,这对一个正在成长的企业来说是致命的,所以,我们需要提供高可用机制来保证系统的7x24不间断运行,也就是集群架构。我们来看一下如下拓扑图:
https://img1.sycdn.imooc.com//5db58892000118df03840491.jpg

首先我们面对的是tomcat中的项目,目前只有一个,我们可以使用Nginx作为反向代理服务器搭建tomcat集群,并且提供负载均衡机制,使得项目不会因为宕机而造成不可用,并且集群还能适当的提高整个系统的并发,并且整个系统对于用户来讲都是透明的,用户只在乎请求和及时响应。所以Nginx会成为集群部分的重点内容,我们来开一下下面的脑图:

https://img1.sycdn.imooc.com//5db58a440001623708660530.jpg

这些都是Nginx部分的内容,十分详细,分为三个部分,基础,进阶和高可用

  1. 基础部分包括Nginx介绍,正向代理与反向代理。Nginx的安装和配置,Nginx的进程模型以及核心配置文件。另外日志是一种生产服务器上调试的手段,可以通过日志来排查问题,但是日志需要人工切割,否则就是一份大文件,所以我们给大家讲解如何定时的自动进行日志切割,可以按照时间日期进行切分。此外还会包括如何通过nginx的虚拟主机功能映射不同的域名,这种场景就是当有多个域名但是只有一个服务器的时候,可以用nginx来构建虚拟主机。
    当网站里有css、js、html、图片等文件,可以通过gzip来压缩内容,这样可以节省网络带宽,提高用户的访问效率,减少交互时间。
    location匹配规则也是用的比较多,其实也就是路由功能,根据不同的请求url来分配不同的访问。
    除了JSONP和SpringBoot解决跨域问题外,也能通过Nginx来解决,所以我们会讲解如何在nginx.conf中配置,原理会和springboot配置都是一样的。
    对于静态资源,尤其是图片,往往我们可以设置防盗链,避免被其他网站的引用,这也是平日里用的比较多的。

  2. 进阶部分主要涉及到Nginx构建集群与负载均衡,我们会讲模块化设计和集群与负载均衡的原理,随后就要构建tomcat集群了。集群涉及到相应的负载均衡算法,默认为轮询,当然我们也讲了其他的算法,包括加权轮询、ip_hash、url_hash等我们都会一一讲解和演示。
    此外upstream还提供了一些额外的指令,比如有:max_conns、slow_start、down、backup、max_fails、fail_timeout。当然我们还会通过keepalive的使用来提升系统的吞吐量。
    另外呢,我们会用图演示举例一致性哈希算法的原理,因为这个在面试过程中可能会被问到。
    另外为了提高用户的请求速度,我们还会接触到两种缓存机制,一种是浏览器缓存,另一种是反向代理的缓存,这两种都可以通过nginx来控制。
    当然我们还会讲解ssl,也就是https的配置,我们会通过云服务器来演示,因为https在现如今是非常重要的。

  3. 第三部分可以说是非常的重要,会涉及到LVS和Keepalived,这个为整个架构提供了高可用高性能的集群负载均衡,也是目前很多企业里用的很流行的集群解决方案。我们主要会讲keepalived的双机主备和双主热备的搭建,LVS的原理和三种模式,其中LVS的DR模式会单独演示,并且最后会通过keepalived结合LVS以及Nginx来构建高可用的集群负载均衡,这些都是手把手的带着大家去学习和部署噢~~如果你能够在面试过程中很详细的把这个部署过程以及架构讲出来,那么你的竞争力是相当高的,拿到offer的概率也是相当高的~~!

集群架构呢是在单体架构后必经的一个演变过程,而且也是最简单的提高并发能力的架构。这也是架构师和高级Java必须掌握的技术架构噢~~

更多精彩内容,欢迎关注课程

Java架构师成长直通车》

国内外一线大厂技术大咖与慕课网组成专家团队12个月磨一剑

千万级电商项目从0到1到100全过程

涵盖Java程序员不同成长阶段的问题及最佳解决方案


点击查看更多内容
6人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消