1. web服务器集群可以解决高并发吗
集群就是为了解决高并发存在的,多台机器并行处理不同用户的同样任务
2. 怎样具备大规模高并发访问的Web应用架构设计和开发经验
理论上经验这个东西是学不来的.
说一下我的例子.
刚入行的时候,基本就是写了一些增删改查.甚至session都不太理解.
随着入行后,你会遇到各种各样的问题.在解决问题的过程中,经验来了.
简单说一下所谓大规模高并发访问的web架构吧.
其实,对于大规模高并发不外乎两点,第一点是及时相应(尽可能优化io).第二点是数据安全.
这两点控制的好,就没问题的.所以,我们的架构也就围绕在这两点应运而生.
第一点,为了尽可能提高应用的io吞吐量.则需要我们把所有耗时的io操作尽可能的优化,比如全局使用很少更改的一些配置,则可以采用nosql来全局共享(注意,这里的全局是指服务器集群.如果涉及到了大规模,肯定是多服务器的).在其次可以增加服务器缓存.比如2秒钟从上一条的服务器读取配置,存到服务器级别.以提高效率.还有线程缓存.如果业务复杂可能对一个请求需要查询多次数据,不变的,老规矩,放到线程缓存.基本也就差不多了.
第二点,因为应用不同,要考虑容错率.这个部分优化,可以考虑分离业务,把必须要数据安全的业务逻辑提取出来,队列执行或者特殊处理.
剩下的就是服务器部署与如何分配,比如多少台web服务器,数据库配置,内存服务器配置等.
这只能是在实际项目和工作过程中来区别对待了.
3. hadoop适合解决web 的高并发吗
hadoop适合处理分布式集群系统,本身是支持高速并发海量数据的写入和读取的。解决大量用户并发访问的方案有很多,给你个千万pv的参考方案:
1)架构中直接引入软件名称的模块,是个人推荐使用的,如Haproxy、Hadoop等;
2)关于全局负载均衡,看成本投入情况,可以使用商业的产品,如F5-GTM,开源方案便是自搭智能DNS;
3)本地负载均衡方案,可以考虑F5-LTM或成熟的开源解决方案LVS;
4)代理层为什么推荐大家使用Haproxy?Haproxy是一个非常优秀的反向代理软件,十分高效、稳定。国内top 10的互联网公司都有在使用;
5)缓存层可以使用Squid或Varnish,个人更倾向Varnish。配置灵活、运行稳定,提供非常便利的管理接口。为啥在缓存层前面加一层代理?优点非常多,列举如下:
根据应用配置URI路由规则,集中热点来提高后端缓存的命中率;
轻松划分网站频道、版块,更好对应用进步组织、规划;
对URI进行一般性安全过滤,抵御注入攻击;
弹性调配硬件资源,应对突发事件产生大流量;
可回收宝贵的公网IP资源;
6)应用层开源技术方案非常多且成熟,在此不详细描述;
7)数据库层主流开源解决方案Mysql是首选,主从复制(一主对多从)是目前比较靠谱的模式;
8)关于Nosql,应用场景不多说,可参考“给部门做的Mongodb技术交流PPT”文章,redis、memcached等作为热点数据存储、数据库缓存都非常理想;
9)内网DNS扮演的角色非常重要,一定要消灭code中出现的内网IP地址,很大程度减少因IP变更、服务器故障而修改源码的情况,同时也便于维护;
10)内网LB适用在内部WEB接口、多台数据库Slave、多台Nosql Slave、公共服务等应用的负载均衡,可以使用LVS、Haproxy来实现,可用性要求不高的应用可行直接使用Localhost DNS轮询;
11)hadoop适合海量数据的存储与处理,如做网站日志分析、用户数据挖掘等;
12)管理集群,平台的核心,运维的阵地;
4. 常用的web服务器软件有哪些
1.IIS
IIS是英文Internet Information Server的缩写,译成中文就是"Internet信息服务"的意思。它是微软公司主推的服务器,最新的版本是Windows2008里面包含的IIS 7,IIS与Window Server完全集成在一起,因而用户能够利用Windows Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。
2.ApacheApache
ApacheApache在世界上的排名是第一的,它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,不仅简单、速度快、而且性能稳定,还可以用来做代理服务器。
3.Nginx
Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
4.Zeus
Zeus是一个运行于Unix下的非常优秀的Web Server,据说性能超过Apache,是效率最高的Web Server之一。
5.Sun
Sun的Java系统Web服务器也就是以前的Sun ONE Web Server。主要出现在那些运行Sun的Solaris操作系统的关键任务级Web服务器上。它最新的版本号是6.1,可以支持x86版本Solaris,Red Hat Linux,HP-UX 11i, IBM AIX,甚至可以支持Windows,但它的大多数用户都选择了SPARC版本的Solaris操作系统。
5. 如何搭建一个高并发的web框架
1、提供HTML静态访问
web界面上最快的访问速度是什么?当然是最原始的HTML文件访问,对于其他语言 比如 jsp ,asp,php等等,他们首先要通过服务器解析成html之后在返回给访问者,如果我们能提供全部是htm来的页面,那么就能大大的降低服务器和数据库资源的利用和提高网站的并发,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。当然实现这种方式大家比较了解的就是信息发布系统CMS,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。
在后续的文章中我们会单独的使用jsp + servlet实现一个简单的信息发布系统.
2、使用独立的图片服务器
为什么要把图片单独设置一个服务器?对于Web服务器来说,图片消耗的服务器资源是最多的,如果能把所有的图片资源放到一个单独的图片服务器中进行处理的话,可以降低提供页面访问请求的服务器系统压力,从而能进一步的提高web程序的并发.所以在有条件的情况下最好能把图片放置到一个单独的服务器中.
3、配置多台数据库服务器,多个数据库集群
集群(Cluster)技术是使用特定的连接方式,将价格相对较低的硬件设备结合起来,同时也能提供高性能相当的任务处理能力。
越是大型高并发的应用,数据库的压力就会越大,如果数据库操作很频繁,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群。
数据库集群就是使用多个数据库服务器分担请求的压力,达到快速响应的目的.
4、使用缓存
所谓的缓存就是把数据咱是放置到内存中,前台在请求的时候直接从内存中读取数据,而不需要去查询数据库或者读取文件等,这样就能做到最快的响应。网站架构和网站开发中的缓存是非常重要的。
目前有很多开源的缓冲实现方案,APC,File,SQLite,Memcache等等各种类库实现着不同的缓存方式,只有通过了解他们的实现方式,根据具体应用具体选择,才会使缓存系统发挥出最大的性能。
对于java开发来说,大名顶顶的 分布式缓存系统Memcache 可能是最好的选择,他提供一个基于Socket的访问方式,使得该缓存系统支持远程读写访问。尽管这个缓存的内容可能是存在内存中,也可能是存在文件内。
6. javaweb如何解决高并发
你指的高并发量大概有多少?
几点需要注意:
尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。
用jprofiler等工具找出性能瓶颈,减少额外的开销。
优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。
优化数据库结构,多做索引,提高查询效率。
统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统计的功能。
能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。
解决以上问题后,使用服务器集群来解决单台的瓶颈问题。
基本上以上述问题解决后,达到系统最优。
至于楼上有人提到别用JAVA来做,除非是低层的连接数过大(如大量的端口占用需求),这种情况下考虑直接C来写,其他的可以用JAVA来做。
7. web应用高并发导致系统数据库崩溃一般怎么解决
1、程序和数据库部署在同一台服务器上 2.多学习一些相关的书籍比如:构建高性能Web站点,大规模Web服务开发技术 构建可扩展的Web站点 , Web容量规划的技术,分布式数据库系统及其应用。 掌握其原理和结构 。
8. web服务器的解决方案有哪些
目前主流web服务器有三个:apache、IIS、nginx。
其中apache是开源的老牌服务器,多用于传统业务,其优点是系统稳定,扩展模块丰富,各种特性支持完整,并且跨平台。
IIS是微软主力打造的web服务器,目前作为Windows系统组件一部分,和微软上层web开发(asp.net)应用接口紧密。
nginx是开源的后起之秀,是俄罗斯开发的一款用于高并发服务的web服务器,主要应用于高并发网站、静态服务器、下载服务器等,其优点是性能更高,支持负载均衡,反向代理。
国产web服务器主要有:
Tengine:是淘宝开发团队基于nginx修改的,优化了资源请求的web服务器,其特点继承nginx,并针对资源请求做了优化。
数蚕web服务器:是数蚕科技基于c++的Linux下的web服务器,主要用于静态页面和简单的计算型服务网站。其特点是支持高并发,支持多进程,c++/c接口良好,支持直接基于C++模板开发。
9. web服务器和web框架的区别
区别还是挺大的,工种和编程思想都不一样,下面还是阐述一下:
1)前端开发人员:精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发。
2)后端开发人员:会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等。
Web前端:
1)精通HTML,能够书写语义合理,结构清晰,易维护的HTML结构。
2)精通CSS,能够还原视觉设计,并兼容业界承认的主流浏览器。
3)熟悉JavaScript,了解ECMAScript基础内容,掌握1~2种js框架,如JQuery
4)对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案。
5)对性能有一定的要求,了解yahoo的性能优化建议,并可以在项目中有效实施。
Web后端:
1)精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex开发,或者对相关的工具、类库以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解
2)练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力
3)熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑
4)精通面向对象分析和设计技术,包括设计模式、UML建模等
5)熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力
侧重点不一样,看个人喜好选择职业啦。
10. 最高并发量1万的WEB服务器配置
额,其实吧,单台都可以带起来的,比如你买个浪潮NF5230M3来着,具体型号我忘了,服务器配置上去了,其他无压力