JAVA高性能高并发解决思路

1、代码质量,不要性能低下的sql和代码。有的一条sql搞定的事,有人用了多个循环才能搞定。取决于程序员的经验!
2、项目前期的规划,由于java历史多用于企业开发,导致好多团队至今依然思想僵化。其实并发最高的是互联网,他们有很多非常好的实践经验和架构是可以直接照搬过来用的。tomcat的并发取决于每个请求执行的占用时常,如果一个请求耗时1秒,那按tomcat开启的线程数默认就几十个。江湖谣传tomcat并发400/秒左右,但是我又看到有的人说单机过万/秒,其实就是测试场景中请求执行时间不同,结果不同。

那么重点来了,项目前期的规划很重要。我们可以预测下将来的场景,目的不是为了现在实现。而是为了将来留有余地,太早实现会增加项目的复杂度和实现难度,前期出结果很重要。当然如果公司能忍受慢工出细活也行!

web高并发的核心肯定是集群,前面有人回答了。这个不用怀疑!所有公司都是这么实现的。
那么,为了现在活着将来的集群,我们要做什么准备?大概说一些会用到,希望对你有所帮助。
1、动静分离,静态资源请求与动态请求分离,项目中需要访问的图片、声音、js/css等静态资源需要有独立的存放位置,便于将来实现静态请求分离时直接剥离出来,比如nginx可以直接配置图片文件直接访问目录,而不需要经过tomcat。这样tomcat就可以专注处理动态请求,操作数据库数据处理之类的。静态请求代理服务器性能比tomcat高很多。
2、引入缓存,数据库缓存、页面缓存,这东西好用不复杂,搞明白什么地方适用最重要。简单的例子是频繁读取,不修改的地方最适用。也是后续集群做数据共享的一个方式之一,集群环境下,经常会碰到数据共享问题。
3、如果将来数据量大,单一数据库成为瓶颈时,数据库的读写分离来了。数据库集群,读写分离,分表分区。mysql对读写分离这些还是有点支持的,没仔细用过。
4、如果项目发展壮大了,已经过亿用户了,ok系统拆分来了。用户管理系统、订单系统,或者体育新闻系统、娱乐新闻系统等。保证一个系统当掉时不影响另一个,同时分担单系统压力。每个系统之下是前面3条!!
如果这一切都还搞不定,那你公司一定比谷歌还牛B了,哈哈……可喜可贺!

前期做下1和2就可以了,集群不一定要增加服务器,一台服务器如果配置好,多开几个tomcat就可以了。1个400,10个tomcat就是4000呢!其实这些,看阿里巴巴的云服务就知道,他们就是这么用的,有谁比它对高并发更有发言权!以上不是广告……
什么cdn、lds之类的都是为了高并发,更快处理用户请求而生!拼音打字,错别字多望见谅,不全面望指正,学习之。

文章引用:http://bbs.csdn.net/topics/391076601

作者:uyerp

时间: 2024-12-16 14:15:33

JAVA高性能高并发解决思路的相关文章

Java多线程与高并发:高并发解决思路

Java多线程与高并发:高并发解决思路 小玲子之凌空蹈虚关注 122018.11.21 09:55:30字数 1,553阅读 4,228 來源:http://www.wangtianyi.top/blog/2018/05/11/javaduo-xian-cheng-yu-gao-bing-fa-liu-gao-bing-fa-jie-jue-si-lu/ 缓存并发 image.png 当大量请求访问同一个没有被缓存的数据的时候,会发送大量请求给数据库,导致数据库压力过大,还会导致一致性问题,所以

Java秒杀系统方案优化视频教程 Java高性能高并发实战

第1章 课程介绍及项目框架搭建 技术选型思路分析,基于Maven的Spring-Boot工程框架的搭建,集成Thymeleaf,集成Mybatis,安装Redis,集成Redis等等. 第2章 实现用户登录以及分布式session功能 实现用户登录功能,实现密码两次MD5入库以及分布式Session.一则熟悉SpringBoot开发模式和该选型下的技术衔接,二则为后面的秒杀功能提供必备的用户信息. 第3章 秒杀功能开发及管理后台 实现秒杀的交互设计和秒杀功能的前端和后台实现,随着后期优化策略,秒

.Net高并发解决思路

转自: 本文如有不对之处,欢迎各位拍砖扶正.另源码在文章最下面,大家下载过后先还原一下nuget包,需要改一下redis的配置,rabbitmq的配置以及Ef的连接字符串.另外使用的是CodeFirst,先update-database生成数据库后再进行操作 高并发 高并发一直是网站上线后会遇到的一个严峻的考验,渡过了一切都好,渡不过就是宕机. 在电商时代如此发达的今天,高并发无此不在双十一 .618.双十二,还有雷猴王的某米手机抢购.首先我们要分析高并发究竟会给我们开发者带来什么样的挑战 大量

Java秒杀系统方案优化---高性能高并发实战

Java秒杀系统方案优化---高性能高并发实战网盘地址:https://pan.baidu.com/s/1htNv2zq 密码: ssyt备用地址(腾讯微云):https://share.weiyun.com/889808c023b6e9d9f504399a5b07276f 密码:1WaUHB 亮眼的!高并发秒杀系统核心技术 课程以"秒杀"场景为例,但技术都是通用的,举一反三,方得始终应对大并发:多层次多粒度缓存+消息队列异步+服务器分布式部署 专业的压测工具:有依有据,鉴证系统的优化

千万级PV规模高性能高并发网站架构

防伪码:好久不见,你会不会突然的出现. 客户端:缓存(expires).deflate压缩 缓存服务器:CDN/cache缓存静态内容如:html.jpg.gif.js等 静态web服务器:Apache/nginx静态服务器提供html页面内容 php/java服务器:PHP/JAVA动态内容 数据库缓存服务器:数据库缓存memcache/redis 数据库服务器:MYSQL数据库 数据存储:NFS/HADOOP等 高并发访问的核心原则其实就一句话"把所有的用户访问请求都尽量往前推".

高性能高并发系统的稳定性保障

小码哥 于 1 月前 发表在 七嘴八舌 作者:肖飞,于2011年8月份加入京东,曾亲身参与到京东的应用性能监控.统一日志.流式计算.内存缓存.四层防攻击等一些基础技术平台的研发和搭建工作,经历了京东的技术系统从简单粗放向复杂精细化的演变过程.目前主要工作为多中心交易项目中的数据复制中间件JingoBUS的研发.平时也会开发一些公共的平台和工具,关注分布式系统的实现.程序设计.性能优化.开发语言等. 本文是2015年肖飞在内部分享的<高性能高并发系统的稳定性保障>PPT内容. 性能.并发.稳定性

高性能高并发服务器架构设计探究—以flamigo服务器代码为例

这篇文章我们将介绍服务器的开发,并从多个方面探究如何开发一款高性能高并发的服务器程序.所谓高性能就是服务器能流畅地处理各个客户端的连接并尽量低延迟地应答客户端的请求:所谓高并发,指的是服务器可以同时支持多的客户端连接,且这些客户端在连接期间内会不断与服务器有数据来往.这篇文章将从两个方面来介绍,一个是服务器的框架,即单个服务器程序的代码组织结构:另外一个是一组服务程序的如何组织与交互,即架构.注意:本文以下内容中的客户端是相对概念,指的是连接到当前讨论的服务程序的终端,所以这里的客户端既可能是我

浅谈千万级PV/IP规模高性能高并发网站架构

高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”. 如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储). 如:能缓存在用户电脑本地的,就不要让他去访问CDN. 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了.能访问静态服务器的,就不要去 访问动态服务器.以此类推:能不访问数据库和存储就一定不要去访问数据库和存储. 说起来很轻松,实际做起来却不容易,但只要稍加努力

网站设计高性能高并发

高性能高并发 高并发访问的核心原则其实就一句话"把所有的用户访问请求都尽量往前推". 如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储). 如:能缓存在用户电脑本地的,就不要让他去访问CDN.能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了.能访问静态服务器的,就不要去访问动态服务器.以此类推:能不访问数据库和存储就一定不要去访问数据库和存储. 说起来很轻松,实际