网站的高并发问题

peter20091001 2016-08-29 06:02:22
网站登录并发量上万,如何使登录操作既快又安全?(使用Java语言)
希望高手给出具体的解决办法,只说使用缓存、数据库集群之类的不给分。如果分不够我会再加些的。
...全文
409 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gggggame 2016-09-05
  • 打赏
  • 举报
回复
1.安全方面,密码MD5加密就够了吧, 2.效率问题,先去了各种例如:用户名空,密码空的这种2B请求,然后直接用登录用户名查询(记得建索引),然后对比密码。(开发的话只能在这部分优化) 3.服务器承载量,动静分离,负载均衡(就不具体说了)
wangjiangbo2 2016-08-31
  • 打赏
  • 举报
回复
网站登录慢,从2方面考虑解决。 一是优化用户登录方面的数据库操作,减少这个登录事务的操作步骤。 二是用户访问量非常大,服务器承载不了这么多访问,后来的用户就会等待,因为线程是有限的。所以建议增加TOMCAT,搭建应用集群的方式分担访问请求,前端负载可以用nginx或者硬件负载均衡设备(F5、A10、深信服等)
Intboy 2016-08-30
  • 打赏
  • 举报
回复
最简单直接的方法,加服务器。
小灯光环 2016-08-30
  • 打赏
  • 举报
回复
安全就是加密和权限的问题了,现在shiro用的比较多 关于并发问题首先考虑的肯定是应用服务器的压力,不然还没到数据库层页面就先崩了,这块比较简单常用的做法就是用nginx做负载均衡了,我们项目是三台应用服务器9个tomcat做的负载均衡~ 我的博客有整个过程的总结:负载均衡session共享
架构师的修行 2016-08-30
  • 打赏
  • 举报
回复
表示关注,这个问题实践了才能知道哪个方案好,别人只能给个思路,实现的方法有很多
  • 打赏
  • 举报
回复
1、如果数据库数据量不是特别大,可以从数据库表结构优化做起,根据用户数据特点进行分区,但是要求你使用的数据库是oracle。
CREATE TABLE CUSTOMER
(
    CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY,
    FIRST_NAME  VARCHAR2(30) NOT NULL,
    LAST_NAME   VARCHAR2(30) NOT NULL,
    PHONE        VARCHAR2(15) NOT NULL,
    EMAIL        VARCHAR2(80),
    STATUS       CHAR(1)
)
PARTITION BY RANGE (CUSTOMER_ID)
(
    PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01,
    PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02
)
2、如果数据量热别大,像qq这种,又要保证查询效率,那么就考虑使用你所说的数据库集群吧,也就是用多个服务器来存储用户数据,查询用户的时候用哈希的方法将用户哈希到对应的服务器上。使用这种方法的话服务器数量越多效率越高,当然成本也越高; 3、以上两种方法都还是用数据库查询的方法。也可以考虑最开始的时候把所有数据都存到内存中,在内存中使用哈希,二叉树等数据结构来优化查询。
ps45221 2016-08-30
  • 打赏
  • 举报
回复
安全:HTTPS,数据报文加密,登录注册功能逻辑设计严谨些! 并发: Nginx动静分离,请求分流,转发(不差钱用硬件F5), 应用层多部署Web服务器实例,分功能模块拆分系统,并发高模块的硬件给力些,权重比重也大点,如有必要,各个模块间用队列传输数据。 数据层:缓存必须,多实例。不够,再加上缓冲队列,避免缓存失效穿透数据库,尤其是有大量记录、日志这些时间要求不高,但量又很大要写入时。 数据库集群,你都不让说了,那就不说了。。。

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧