1、在java中,高并发属于一种编程术语,意思就是有很多用户在访问,导致系统数据不正确、糗事数据的现象。并发就是可以使用多个线程或进程,同时处理不同的 *** 作。
2、处理高并发的方法
对于一些大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。
(1)动静分离。静态资源请求与动态请求分离,项目中需要访问的、声音、js/css等静态资源需要有独立的存放位置,便于将来实现静态请求分离时直接剥离出来,比如nginx可以直接配置文件直接访问目录,而不需要经过tomcat。这样tomcat就可以专注处理动态请求, *** 作数据库数据处理之类的。静态请求代理服务器性能比tomcat高很多。
(2)引入缓存。数据库缓存、页面缓存,这东西好用不复杂,搞明白什么地方适用最重要。简单的例子是频繁读取,不修改的地方最适用。也是后续集群做数据共享的一个方式之一,集群环境下,经常会碰到数据共享问题。
(3)如果将来数据量大,单一数据库成为瓶颈时,数据库的读写分离来了。数据库集群,读写分离,分表分区。
整个架构部署用到了集群部署(1:2)、动静分离、缓存服务、拆分数据库等高并发处理技术,属于大型系统的模型。
据我所知,集群1:2是1负载分发器、2web服务器,(以Apachetomcat集群为例),那么Directorserver应该安装Apache,而RealServer应该安装tomcat,至于javaweb项目在tomcat下面即可。
而你的架构图中还有动静分离机制,理论上静态文件服务器也应该有javaweb项目才对,不然静态文件服务器如何取静态文件呢。tomcat对静态文件处理不是很好,所以很多人推荐用Nginx作为载体。
缓存和集群数据库我不了解,不发表任何谬论。
session会话就是指的>
建议看下一些集群架构方面的书籍,比如《大型网站系统与java中间件实践》。
有些网站并发量比较高,例如:12306,到了春节的时候,访问量就非常高了。以前不是经常卡住、崩溃吗?就是因为架构设计的不行。去年好多了。
高吞吐、高并发指的是一种种业务场景,访问人数很多,同一时刻点击也很多。
类似的还有双十一,双12。
高峰期的时候 涉及大量的读写 *** 作,读取网页资源、数据,写入订单等等。
小型网站可以通过增加服务器的方法解决,分离应用程序和数据库,放在两台服务器上。
大型的网站涉及的技术就更多了:缓存技术、读写分离、分布式部署服务器、业务拆分、数据库优化等等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)