黑马程序员技术交流社区

标题: java高并发解决方案 [打印本页]

作者: 武汉分校-小舞    时间: 2017-8-18 15:32
标题: java高并发解决方案
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的。
大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。
上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张性的角度来说说我的一些经验。

1、HTML静态化
其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。
除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。
同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。

2、图片服务器分离
大家知道,对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的图片服务器,甚至很多台图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃,在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持,尽可能少的LoadModule,保证更高的系统消耗和执行效率。

6、负载均衡
负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。
负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择,我个人接触过一些解决方法,其中有两个架构可以给大家做参考。
1)硬件四层交换
第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的应用服务器进行处理。第四层交换功能就象是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。
在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo中国当初接近2000台服务器使用了三四台Alteon就搞定了。
2)软件四层交换
大家知道了硬件四层交换机的原理后,基于OSI模型来实现的软件四层交换也就应运而生,这样的解决方案实现的原理一致,不过性能稍差。但是满足一定量的压力还是游刃有余的,有人说软件实现方式其实更灵活,处理能力完全看你配置的熟悉能力。
软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是LinuxVirtual Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。
一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。


作者: zjc11    时间: 2017-8-18 23:22
小舞好人
作者: storyczbk    时间: 2017-8-19 09:59
不错不错,学习学习
作者: rimfwfn    时间: 2017-8-19 11:20
不错不错,学习学习
作者: lozd    时间: 2017-8-21 18:59
不错哦请加油
作者: qinchun2046    时间: 2017-8-22 10:43
学习学习
作者: 微风    时间: 2017-8-22 13:10

        private int pageSize = 10;//每页显示的记录条数
        pri
作者: 今天吃什么    时间: 2017-8-23 16:26
紫薯布丁。
作者: k1453711238    时间: 2017-8-23 23:01

红红火火恍恍惚惚
作者: xlb617    时间: 2017-8-24 08:22
路过看看
作者: dbymz    时间: 2017-8-24 19:20
高并发解决方案
作者: 可恶的小蛋    时间: 2017-8-24 19:49
看看。。。。。。。。。。。。。。。。。。。。。

作者: huazaizhoujava    时间: 2017-8-24 21:06
受教了,不错
作者: JinhuaFeng    时间: 2017-8-25 14:34
AHKJHAHAHA
A
作者: Xidream    时间: 2017-8-27 14:18
12312312312
作者: 曲终丶ren散    时间: 2017-8-28 15:36
不错不错,学习学习
作者: zhu060802    时间: 2017-8-28 22:59

多谢分享
多谢分享
作者: zhoulan    时间: 2017-9-18 18:54
666666666666
作者: 那一季夏天    时间: 2017-9-21 20:29
负载这部分的内容还是大多数不太懂,看看
作者: longda_1    时间: 2017-9-21 23:00
eeeeeeeeeeeeeeee
作者: 榕树长枫叶    时间: 2017-9-22 10:17
可以看看
作者: meng_heima    时间: 2017-9-22 11:28
6666666666666666
作者: suffer    时间: 2017-9-23 16:21

作者: xgwhsgws    时间: 2017-9-24 09:33
很有用,值得学习,感谢楼主分享
作者: jaryjun    时间: 2017-9-25 10:53
谢谢楼主分享
作者: zjc2333    时间: 2017-9-25 11:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: IT路上的老男孩    时间: 2017-9-25 16:17
感谢楼主的分享
作者: 夕阳游子    时间: 2017-9-25 18:03
好厉害的样子,恢复学习
作者: Cia    时间: 2017-9-25 18:29
thanks for your contribution
作者: Tractionice_ice    时间: 2017-9-28 16:01
问好,希望发更多的好资源
作者: 一匹白马    时间: 2017-9-29 14:04
dingdingdingding
作者: 郭先僧    时间: 2017-9-29 20:37
好好好,偷女来加油了
作者: 18020058929    时间: 2017-9-30 22:31

作者: ywygg    时间: 2017-10-1 10:52
太好了,谢谢分享
作者: newu    时间: 2017-10-1 17:16
12312312312
作者: 372324079    时间: 2017-10-5 18:24

不错不错,学习学习
作者: 834171510    时间: 2017-10-11 01:20
谢谢大神
作者: liuliu_666    时间: 2017-11-14 10:43
看看,谢谢分享
作者: 406245159    时间: 2017-12-1 14:42
dingdingding
作者: 可可豆    时间: 2017-12-5 14:47
这个会经常遇到
作者: 可可豆    时间: 2017-12-5 14:48
先看一看再说吧
作者: 故垒西边    时间: 2017-12-17 20:00
fdfssadasdasd
作者: zj_itheima    时间: 2017-12-17 20:02
谢谢大佬 我来学啦
作者: 暴走学习    时间: 2017-12-18 15:16
看看看看看看看看看看
作者: 2906010384    时间: 2017-12-19 14:13
涨点知识是好的
作者: Yung_ng    时间: 2017-12-19 15:24
666666666666666666666
作者: limengmeng    时间: 2017-12-19 15:58
您好您好你好您好
作者: 后知、后觉    时间: 2017-12-20 18:38
1111111111111111111111111111111
作者: 你好,黑马    时间: 2017-12-21 15:20
你好,黑马
作者: zhaoguanli    时间: 2017-12-21 15:51
学习一下
作者: 13609068793    时间: 2017-12-22 13:25
有视频教程么
作者: 郭钊荣    时间: 2018-1-7 16:51
6666666666666666
作者: 146745223    时间: 2018-1-8 18:50
wgasdfsddddddddddddddd
作者: 我用十年成就你    时间: 2018-1-9 11:18
感谢楼主
作者: dcvuop    时间: 2018-1-9 23:54
很有用处
作者: hz有盼头啊    时间: 2018-1-10 09:20
感谢分享
作者: nicehxj    时间: 2018-1-10 11:03
我越来越喜欢黑马了,谢谢黑马
作者: thewindshadow    时间: 2018-1-11 17:12
121212121AFSDFSAFSA
作者: keya    时间: 2018-1-20 16:35
haorenyishengpingan
作者: For白日梦想家    时间: 2018-2-28 13:30
11111111111
作者: @小猪猪    时间: 2018-3-8 21:43
66666666666666666666
作者: smart8497672    时间: 2018-3-8 23:03
看一看解决方案
作者: chichichi_ss    时间: 2018-4-22 14:45
多谢分享

作者: liub    时间: 2018-4-23 10:15
66666666666666666666666
作者: andyJ    时间: 2018-5-5 04:06
感谢分享。。。
作者: sunbohan00    时间: 2018-5-9 15:15
dddddddddddddddddddddddddddd
作者: lutap906    时间: 2018-5-9 15:38
666666666666666666
作者: 林心炳    时间: 2018-5-23 02:18
fgdfgdfgdfgdfgdfg
作者: 凯撒李大爷    时间: 2018-5-23 16:39
学习学习
作者: SirFan    时间: 2018-5-23 17:12
11111111111111111111
作者: 枫芗    时间: 2018-5-25 10:05

路过看看
作者: 嘿你好啊    时间: 2018-5-26 22:47
java高并发解决方案
作者: 小平_Gq83t    时间: 2018-5-29 19:23
ASGAHAERHRH
作者: 随风521    时间: 2018-5-29 22:37
学习学习学习
作者: 664149881    时间: 2018-6-1 13:29
66666666666666
作者: kellerzhu    时间: 2018-6-1 14:27
看看卡dfasfasdfasdfsadfsadfadsfsad
作者: s30003a    时间: 2018-6-2 23:48
哦哦哦哦哦哦,什么东西啊
作者: infantile、往日    时间: 2018-6-4 17:55
了解一下
作者: chenzheng13    时间: 2018-6-8 15:50
传智播客你好
作者: Jermine    时间: 2018-6-9 14:32
好                                                     
作者: Ritoom    时间: 2018-6-9 17:20
码一个
作者: 1060545211    时间: 2018-6-9 19:05
6666666666666666666666666666666666
作者: Nevermo    时间: 2018-6-10 10:06
helloworld
作者: 灰灰熊    时间: 2018-6-14 12:09
6666666666666666
作者: 轨迹72    时间: 2018-7-4 13:57
666666666666666
作者: 道道道666    时间: 2018-7-4 18:08
xiexie fengxiang
作者: 蔡超凡    时间: 2018-7-5 10:09
不错不错,学习学习
作者: 温州飞机场    时间: 2018-7-5 12:25
kankankanaka
作者: a3939889    时间: 2018-7-5 21:19
学习 学习。好好看看
作者: necessary    时间: 2018-7-5 22:21
谢谢帮顶
作者: 风中的消逝    时间: 2018-7-5 23:45
谢谢分享,学习学习学习

作者: 米青子加温    时间: 2018-7-6 17:08
谢谢带走

作者: HappyEveryDay    时间: 2018-7-6 17:13
想学习一下,谢谢分享
作者: 2048    时间: 2018-7-6 17:23
回帖查看Java高并发解决方案
作者: qwe123asd    时间: 2018-7-8 12:04
zanyigeiyihio
作者: wg5843851    时间: 2018-7-8 13:06
感谢老师的凤翔
作者: 高中枢7    时间: 2018-7-8 14:40
不错不错 学习一下  希望有用
作者: 高中枢7    时间: 2018-7-8 14:41
不错不错 学习一下  希望有用
作者: zyc18356098056    时间: 2018-7-13 16:38
好东西 值得学习
作者: zxc164205    时间: 2018-7-13 21:32
看一下哈哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2