1.1高并发设计原则
无状态
方便水平扩展。一般是应用无状态,配置文件有状态。
拆分
系统维度:根据业务逻辑拆分(比如商品,购物车,订单)
读写维度:读操作和写操作
代码模块维度:比如我们的service和dao层
服务化
SOA,大家可以很容易找到比较详细的说明
消息队列
数据异构
对于某些场景需要聚合很多表,这些表又属于不同的服务,我们可以异构一张表专门处理这个场景。
例如通过消息来将变化的数据写入异构表。
缓存
并发处理
将不相互依赖的多个动作并发处理。
1.2高可用设计原则
降级
可降级的多级读服务:例如服务降级为只读本地缓存,只读分布式缓存,只读默认的降级数据等。
业务降级
高并发的情况下,比如促销期间保障用户下单和支付优先,保证数据的最终一致性即可。可以将一些同步动作改成异步进行。
限流
防止恶意请求流量,恶意攻击,或者防止流量超过峰值。
比如恶意请求只访问到cache数据
网友评论