并发数3000左右, 请从硬件、网络、数据库、中间件角度设计一套解决系统高并发的方案,有没有人会

并发数3000左右, 请从硬件、网络、数据库、中间件角度设计一套解决系统高并发的方案,有没有人会,第1张

3000 并发 其实很小 主要的瓶颈是你的带宽

如果每个请求返回每秒100K的 你的上行带宽 至少需要 3000100KB = 30M左右的带宽 这就非常的贵了

内存方面主要是看逻辑 如果3000个都是搜索这样高消耗的逻辑,内存会吃不消

IO也是一个很大的问题 如果做好缓存才能解决IO的开销

3000 并发的最大成本就是带宽 带宽够了 内存够了 CPU单路 就够了

这样高并发系统采用分布式 你开发的系统尽量分成多独立运行的小系统 通过系统直接的webservice接口进行传输 这样可以很好的扩展和减少压力

主从式结构

是指一个主机带多个终端的多用户结构。在这种结构中,数据库系统,包括:应用程序、DBMS、数据,都集中存放在主机上.所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源

主从式结构的优点是简单,数据易于管理与维护。缺点是当终端用户数目增加到一定程度后,主机的任务会过分繁重,形成瓶颈,从而使系统性能大幅度下降。另外当主机出现故障时,整个系统都不能使用,因此系统的可靠性不高。

集中式架构

是一种远程桌面控制技术,使用此技术,远程用户能够使用任何类型的终端系统,通过任何类型的网络连接,使用远程服务器上的应用程序。用户甚至能够使用同一个终端系统访问甚至远程多个不同平台、不同网络协议服务器上的多个应用,这些应用被集成在一个访问界面中, *** 作简便。

C/S架构

(Client/Server或客户/服务器模式):Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。

C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的 *** 作系统系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。

C/S结构的优点

C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:

只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。

客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。

对客户端的 *** 作系统一般也会有限制。可能适应于Win98, 但不能用于win2000或Windows XP。或者不适用于微软新的 *** 作系统等等,更不用说Linux、Unix等。

JVM

JEE容器中运行的JVM参数配置参数的正确使用直接关系到整个系统的性能和处理能力,JVM的调优主要是对内存管理方面的调优,优化的方向分为以下4点:

1HeapSize 堆的大小,也可以说Java虚拟机使用内存的策略,这点是非常关键的。

2GarbageCollector 通过配置相关的参数进行Java中的垃圾收集器的4个算法(策略)进行使用。

3StackSize 栈是JVM的内存指令区,每个线程都有他自己的Stack,Stack的大小限制着线程的数量。

4DeBug/Log 在JVM中还可以设置对JVM运行时的日志和JVM挂掉后的日志输出,这点非常的关键,根据各类JVM的日志输出才能配置合适的参数。

网上随处可见JVM的配置技巧,但是我还是推荐阅读Sun官方的2篇文章,可以对配置参数的其所依然有一个了解

1Java HotSpot VM Options

Java HotSpot VM Options

2Troubleshooting Guide for Java SE 6 with HotSpot VMTroubleshooting Guide for Java SE 6 with HotSpot VM

另外,我相信不是每个人攻城师都是天天对着这些JVM参数的,如果你忘记了那些关键的参数你可以输入Java -X(大写X)进行提示。

JDBC

针对MySQL的JDBC的参数在之前的文章中也有介绍过,在单台机器或者集群的环境下合理的使用JDBC中的配置参数对 *** 作数据库也有很大的影响。

一些所谓高性能的 Java ORM开源框架也就是打开了很多JDBC中的默认参数:

1例如:autoReconnect、prepStmtCacheSize、cachePrepStmts、useNewIO、blobSendChunkSize 等,

2例如集群环境下:roundRobinLoadBalance、failOverReadOnly、autoReconnectForPools、secondsBeforeRetryMaster。

具体内容可以参阅MySQL的JDBC官方使用手册:

>

以上就是关于并发数3000左右, 请从硬件、网络、数据库、中间件角度设计一套解决系统高并发的方案,有没有人会全部的内容,包括:并发数3000左右, 请从硬件、网络、数据库、中间件角度设计一套解决系统高并发的方案,有没有人会、数据库系统中的几种架构及处理方式、用Java做一个大流量,高并发的网站应该怎么样进行底层构架等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10179807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存