服务器性能、数据库性能、网络连接甚至编程语言都会影响并发数。但是总结起来,高并发无非就是分裂分裂。乐观锁乐观锁是一种数据库优化模型。即通过数据条目的“版本控制”,对数据进行约束,防止脏读写操作。在实际操作中,它并不垄断资源。设计思路是通过引入“版本”的概念来摒弃资源限制。示例:在数据库中设置`CREATETABLEtbl(idvarchar(32),/**optimisticlockfield**/optimistic_locknumeric(12))`,在java中使用spring@version关键字,@Version@Column(name="optimistic_lock",columnDefinition="INTEGER")privatelongoptimisticLock;读写分离数据库中一个典型的读写分离知识库集群。不一定需要通过读写分离数据库,也可以根据具体的业务逻辑进行分离操作。我们以读写分离为例:通常设计两个数据库主从数据服务器,在spring中配置两个数据源调用时分别读取和写入道层。为了保证主从服务器的数据一致性,两台服务器之间会进行同步。资源分离存储我们以图片分离存储为例。在web场景下,页面加载图片是非常耗资源的。通常,我们将它们存储在其他服务器上,以优化和加速图片资源。这就好比java编程概念中的“解耦”。同样,js文件、css文件、zip文件等都可以通过这种方式分离出来,结合CDN加速技术,可以提高访问速度和并发度。CDN加速CDN加速是在离用户较近的物理位置架设服务器,根据就近原则,用户可以访问物理距离最近的服务器,节省网络传输时间。通常这种CDN加速的服务器分散在全国各地,设置在世界各地,适当采用缓存、专线等技术。为了保证数据的一致性,服务器是同步的。从动态到静态,我们把一个HTTP请求的时间分成几个部分:请求-->计算-->响应,那么静态资源就简化甚至省略了计算这一步,实现了请求-->响应的简单模型.我们可以静态地处理“幂等”请求。下面用一个例子来理解一下:比如用户想快速查询过去一个月的交易总额,按照传统的模型,我们需要服务器在用户查询后进行累计计算,统计用户的交易额本月的交易数据。那么我们可以每天早上跑一个springbatch统计所有用户的总交易信息,存入用户对应的表中,用户查询的时候直接获取。Cache缓存可以理解为动态到静态的一个实例。也可以理解为将硬盘上的数据存储到内存中,方便读取。通常设计为key-value形式。以常用的memcache为例:MemCachedClientmc=newMemCachedClient();字符串键="cacheKey1";对象值=SomeClass.getObject();mc.set(键,值);地区、网络服务商等网络条件假设多台服务器“镜像”,优化网络传输链路。由此我们可以引出“负载均衡”。负载均衡负载均衡的设计理念是根据资源请求的消耗自动调整均衡。比如我们在多个端口上配置并启动tomcat:>其他分库分表合理同步基础SQL优化,如尽量避免全表扫描aspossible我个人理解高并发就是把传统的“单元运算”拆分开来,而且拆分得越细越好。