什么是高并发,高并发的解决方案

本人原创,转载需说明文章出处

       程序猿是门槛是越来越低,谁都可以写代码,但是质量越来越堪忧,根本不会优化,项目一启动,动不动一周就内存泄漏,连正常的访问都无法满足,谈何高并发和压力测试呢,说到并发,为什么要学,并发编程是java进阶必备技术知识点,如果你不懂并发编程的话,不能算是个java工程师,只能算码畜。

         https://blog.csdn.net/persistencegoing/article/details/84376427

         并发编程内容繁多,我们该如何学习?并发就是在操作系统中,指一个时间段中有几个程序都处于已启动运行到运行完毕,这几个程序都是在同一个处理机上运行的,任意一个时刻上只有一个程序在处理机上运行。我们通常所言的并发并不是我们自定义的,在互联网时代,我们讲的并发、高并发,通常是指并发访问。也就是在某个时间点,有多少个访问者同时到来,如果一个系统每天都有千万以上的访问量,就是一个高并发的系统。那怎么解决高并发带来的性能和体验问题呢?

1优化代码,优化业务逻辑和优化SQL

          https://blog.csdn.net/persistencegoing/article/details/84529613

          https://blog.csdn.net/persistencegoing/article/details/84646766

2集群与分布式

            集群就是每台电脑上的服务器都具有相同的功能,处理请求时调用那台服务器都可以,主要为了分流(通俗的讲就是多台tomcat放相同的代码)。分布式开发是将不同的业务放到不同的服务器中,处理请求需要多台服务器的帮助,这样大大提高了一个请求的处理速度,并且分布式和集群可以同时使用。

            使用集群有两个方法:一是在静态资源集群。二是应用程序集群。静态资源集群方法比较简单华。使用程序集群在处理过程中最重要的问题就是Session 同步问题。使用Session 同步有两种处理方法:一是在Session 发生变化后自动同步到其他服务器上,第二种就是使用程序管理Session。并且所有使用集群的服务器都使用同一个Session,使用默认的Tomcat也是第一种方式,简单配置就可以实现了,使用第二种方式就是专门的服务器安装Mencached等高效的缓存程序来管理session。

3什么是数据库缓存,为什么是要使用缓存?

          大多数据库一些常见的关系型数据库的数据都存储在电脑的磁盘中,使用在高并发的情况下,业务应用对数据库产生的增加删除修改查询的操作会造成和查询的压力等,也会使数据库和服务器造成巨大的压力,为了解决数据库以上问题,使用缓存数据是不可缺少的。

         使用缓存数据就是为了数据库服务器端甚至不访问数据库服务器进行数据的增加删除修改查询操作,在高并发下,也能最大程度的降低对数据库服务器的访问压力也同时解决数据库服务器的压力。

4提高应用数据响应速度

          能使用缓存的都使用缓存,比如用户,信息等缓存,多使用点内存来做缓存,这样就可以大量的减少与数据库的交互,大大提高了数据库的性能。

1.数据库SQL语句优化和表结构优化等。SQL语句优化,语法优化和处理逻辑优化。

2.使用常用的框架Redis等。最关键的是什么时候创建缓存,以及什么时候失效机制。

3.缓存,使用程序直接保存到内存中。主要使用Map集合等。

4.分布式数据库将不同的表存放到不同的数据库中,然后再放到不同的服务器中。事务处理,多表查询等。

5.批量读取和延迟修改,高并发情况可以将多个查询请求合并到一个。高并发且频繁修改的可以暂存缓存中。

6.NoSql和Hadoop,NoSql,not only SQL,比较灵活高效。Hadoop,将一个表中的数据分层多块,保存到多个节点。每一块数据都有多个节点保存。集群可以并行处理相同的数据,还可以保证数据的完整性。

7.读写分离,数据库服务器配置多个,配置主从数据库。写用主数据库,读用从数据库。

             https://blog.csdn.net/persistencegoing/article/details/84827160

希望大家关注我一波,防止以后迷路,有需要的可以加群讨论互相学习java ,学习路线探讨,经验分享与java求职      群号:721515304

猜你喜欢

转载自blog.csdn.net/persistencegoing/article/details/84827448
今日推荐