java搭建高并发架构(轻量级易扩展,低成本)

java搭建高并发架构(轻量级易扩展,低成本)

一 数据层

mysql+MongoDB+redis

系统的运行大部分压力都在数据库上,特别是mysql,支持并发量并不是很高,链接数量上限也是很低,处理稍微大一点的数据cpu都会顶牢,所以需要使用MongoDB来分摊压力,在并发上MongoDB的并发能力强于mysql不是一点半点。优化做的好成百上千倍都有可能,特别是一些商品详情数据,对于MongoDB的存储结构再适合不过了,redis使用一些轻量级缓存使用,一些重复较多不经常变的数据可以读取写入redis里面,特别是一些首页的动态数据。

二 应用层

mq+Cache缓存注解

在接口调用上,由于系统处理需要时间,尽管处理程序的速断非常快,但是一旦业务逻辑比较复杂的话接口返回时间就会超过50毫秒,机器不好的可能会超过100毫秒,玩游戏的人都知道,100毫秒根本没法忍受,所以,在应用层上使用mq,将一些不急需处理的逻辑放到队列里面,排队去执行,比如说一些日志信息等等,这样做的话不仅能够优化接口的相应速度,而且还能提高系统瞬时并发的承接能力,Cache是spring的一个注解,这个注解用起来非常方便,在持久层的接口上可以使用,当对数据进行增删改的时间更新缓存的数据,在查询时直接查询本地缓存的数据不去重复请求数据库(这个注解最好配置把数据指定到redis里面,所以当你去数据库里面修改数据需要清除redis里面对应数据页面访问时才能生效)。

三 交互层

nginx+springcloud+nacos(注册中心)

nginx前期可以一个,后期可以多个相互转发,springcloud可以结合nacos使用,搭建和使用都比较简单便于上手,注册中心的搭建便于以后应用服务器承压太大时扩展应用服务器使用。

四 服务器扩展

数据层扩展redis集群,mongodb读写分离

redis的集群搭建非常简单,只需要在去配置文件里面修改一下,几个redis就能组成集群,MongoDB读写分离能够提高一定的访问并发能力。

处理层扩展,增加mq机器,增加消费消息机器。

由于使用了队列处理操作,我们可以吧消费者独立出来,在另一个或者多个服务器上去处理生产者所创建的消息,比如处理指定操作的日志,处理退款的订单逻辑,处理各种的支付回调等等。

五 图示结构图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值