继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

百万雄师-集群架构

Java架构师讲师团
关注TA
已关注
手记 80
粉丝 4586
获赞 2541

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

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

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

http://img2.mukewang.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程序员不同成长阶段的问题及最佳解决方案


打开App,阅读手记
6人推荐
发表评论
随时随地看视频慕课网APP

热门评论

图片太模糊了吧

我想问一下,课程中讲到的集群,负载均衡,千万级数据量,这在我们自己的电脑上能做到这些吗

把原图发一下啊

查看全部评论