调查问卷小程序如何抵御高并发

调查问卷小程序如何抵御高并发

问:如何解决高并发问题
  1. 答:使用高性能的服务器、高性能的数据库、高效率的、滑脊还有高性能的Web容器,(对架构分层++集群)这几个解决思路在一定程度上意味着更大的投入。
    1、高并发:在同一个时间点,有大量的客户来访问我们的网站,如果访问量过大,就可能造成网站仿哗瘫信大渗痪。
    2、高流量:当网站大后,有大量的图片,视频,这样就会对流量要求高,需要更多更大的带宽。
    3、大存储:可能对数据保存和查询出现问题。
    解决方案:
    1、提高硬件能力、增加系统服务器。(当服务器增加到某个程度的时候系统所能提供的并发访问量几乎不变,所以不能根本解决问题)
    2、本地缓存:本地可以使用JDK自带的Map、Guava Cache.分布式缓存:Redis、Memcache.本地缓存不适用于提高系统并发量,一般是用处用在程序中。
    Spiring把已经初始过的变量放在一个Map中,下次再要使用这个变量的时候,先判断Map中有没有,这也就是系统中常见的的实现。
  2. 答:建议采用缓存处理,按照你说的这种数据量,基于redis的缓存完全可以满足,存取速度可以10W+的,另外,拟采用的hashMap 是ConcurrentHashMap还是其他,页面展示是穗轿增量查询还是直接所有的再查询一次,socket数据接收你是用的netty还是mina,这都需要经过仔细猜亮肆的斟酌考虑设计的。有这么大的并发的键陆需求,完全可以考虑做分布式集群的,估计这只是领导想要的目标吧
问:java程序领取优惠卷,高并发下怎么避免领取量超过预发量
  1. 答:基本思路困卜是:锁+幂等性
    具体实现:
    使用redis的decr (对key对应的数字做减1操作。如果颂困key不存在,那野尺念么在操作之前,这个key对应的值会被置为0。如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。这个操作最大支持在64位有符号的整型数字。)可以实现原子性的递增递减操作控制优惠码不超送,然后给每个用户维护一个userid+优惠码活动的key保证幂等性,只要redis存在这种key,那就代表已经领取了,具体的优惠码分发可以异步执行。为了避免竞争(同一个用户,多个设备同时领取),参考:
  2. 答:1、对优惠券对象,做好安全锁,具体看你们的优惠券模块是怎么样的了,如果是存放在一个全局列表,只要对这个列表做安全锁,如果是数据库存储数没如漏据,那么只能控制那个从数据库拉取优惠券数据了,给这个方法加安全锁
    2、消峰,领取优惠券这种活动,给用户来个验证码啥橡码的输入,限定枯烂短时间内的多次刷新等等来避免每个线程同时执行领取的操作
问:java程序员面试时被问到:如何在j2ee项目中处理高并发量访问? 该怎么回答? 请仔细看题干再回答
  1. 答:尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。
    1、用jprofiler等工具找出档槐性能瓶颈,减少额外的开销。优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。优化数据库结构,多做索引,提高查询效率。
    2、统计的功能尽量做缓存,或按每天一统计或定时统计相关报表哪掘,避免需要时进行统计的功能。
    3、能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。
    4、解决以上问题后,使用服务器集群来解决单台的瓶颈问题。基本上以上述问题解决后,达到系李蠢核统最优。
  2. 答:你是一名java程序逗碰闭吵御员,这些应该知道些吧山裂
  3. 答:多线程处理。。你是客户端并发,还是服务端并发
  4. 答:你好,高并发系统的设计需要注意一下几点:
    尽帆裂量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。
    用jprofiler等工具找出性能瓶颈,减少额外的开销。
    优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。
    优化数态昌闭据库结构,多做索引,提高查询效率。
    统计的功能尽量做缓存,或按每天一统计迅锋或定时统计相关报表,避免需要时进行统计的功能。
    能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。
    解决以上问题后,使用服务器集群来解决单台的瓶颈问题。
    基本上以上述问题解决后,达到系统最优。
    至于楼上有人提到别用JAVA来做,除非是低层的连接数过大(如大量的端口占用需求),这种情况下考虑直接C来写,其他的可以用JAVA来做。
  5. 答:1、代码上不要有冗余,不然影响访问速巧或度;
    2、搭建分布式环境,来分担服务器的压力;
    3、优化sql,不要再查询数据的时候浪费坦派时让宽贺间。有时候无需存sql的时候,之间存内存更快。
  6. 答:硬件团罩芹上就是提高服务器性闷郑能,提升允许最大访问量,代码上面可以使用连接池的方式,更合理的规划连接,提高塌毕连接的有效利用率
调查问卷小程序如何抵御高并发
下载Doc文档

猜你喜欢