并发的架构解决方案

一 单体程序

1.1 单体程序一般是tomcat 链接db进行通信

存在的问题是宕机,性能,饿死等

为了解决上面的问题,单体程序采用的办法:

1 连接池(提升通信的性能(长连接))

2 线程池 (提升客户端和tomcat的连接性能)

1.2 线程池和连接池的关系

1.2.1 联系

无状态情况下:(http)

一个线程池的一个线程对应一个连接池的连接,为了防止并发情况下线程之间互相引用发生污染(需要使用锁,但锁比较耗资源)

采用了threadlocal(本地线程私有)来防止线程间互相干扰,提升效率

有状态情况下:(dubbo)

一般不是线程和连接一一对应关系

1.2.2 资源隔离(性能优化:线程)

将线程池分为两个部分 一个是轻量级线程一个是重量级线程

当客户端发起连接请求时 如果是重量级连接且连接未满 则使用线程并处理;当重量级连接满了 则线程返回友好的提示给客户端并将此线程清空共其他请求使用

如果此时是轻量级请求且轻量级连接未满则此线程可以处理此轻量级请求从而提高性能

1.2.3 分库分表(性能优化:连接)

连表查询一般使用nosql数据库比较好

1.2.4缓存

缓存一般对数据不在乎(一致性要求不高 丢失也无所谓)

存储一般珍惜数据(一致性要求较高 不可丢失)

即使是热数据,如果一致性要求高的话也要使用存储(可以设计分治提升缓存)

二 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值