作者回复: 架构升级的逻辑要具体问题具体分析的
例如秒杀的场景来说,不同QPS量级下瓶颈也会不一样,10w级别可能瓶颈就在数据读取上,通过增加缓存一般就能解决,如果要到100w那么,可能服务端的网络可能都是瓶颈,所以要把大部分的静态数据放到cdn上甚至缓存在浏览器里
所以要做架构升级,还是主要要分析在预估的QPS下,整个系统的瓶颈会在什么地方,要针对这起瓶颈来重新设计架构方案
作者回复: 👍
作者回复: 1.本地cache一般就是用内存实现,用java集合类型就行
2.用订阅的方式,在初始化时加载到内存
3.有两种方法,一是定时更新取3秒,二是,主动更新,数据库字段更新后发消息更新缓存,这个需要用到一个组件阿里叫metaq就是就是数据库字段更新会产生一条消息。另外cache里库存不需要100%和数据库一致,这个在后面的文章也有介绍
作者回复: 在内存的数据是静态数据,不会更新,没有一致性问题
作者回复: 👍
作者回复: 单点就是没有备份,挂了系统没法正常服务了
作者回复: 你想了解那块内容,我可以单独发给你😊
作者回复: 缓存的更新一般都是没命中时再填充更新
没命中的原因一种是主动失效,一种是定时失效
公用缓存主动失效较多,本地缓存,定时失效更常用
作者回复: 😊
作者回复: 😉
作者回复: 架构升级的逻辑要具体问题具体分析的
例如秒杀的场景来说,不同QPS量级下瓶颈也会不一样,10w级别可能瓶颈就在数据读取上,通过增加缓存一般就能解决,如果要到100w那么,可能服务端的网络可能都是瓶颈,所以要把大部分的静态数据放到cdn上甚至缓存在浏览器里
所以要做架构升级,还是主要要分析在预估的QPS下,整个系统的瓶颈会在什么地方,要针对这起瓶颈来重新设计架构方案
作者回复: 就是每经过一个节点会产生一个新的tcp连接
作者回复: 这里的单点有两层含义
一是本身的系统是单点系统,比如你说的登录系统,所以其他系统需要验证登录状态时都需要调用他,那他就是一个单点,怎么解决?解决的办法就是尽量让这个系统简单,减少更改保持稳定。
另外一种是状态单点或者叫数据单点,也就是状态一旦丢失比较难恢复,这个就比较麻烦,比如保存登录状态的session保存在一台机器内存中,一旦这台机器挂掉,状态丢失就比较难恢复,这个单点就比较严重
作者回复: 减库存一章会有介绍
作者回复: 都是以服务端的时间为准,服务端的时间同步需要依赖一个时间同步组件完成如ntp
当然当前的服务器时间同步还是有一定的时间延时,但是也不是太影响
作者回复: 😊,可以看看后面的文章,会有更一些详细的介绍
作者回复: 发消息就是为了更新缓存啊
作者回复: 各有利弊,就看你最在意什么:)
作者回复: 几句话很难解释清楚,建议看看《大型网站技术架构演进》的合并部署一章有详细的解释