求仁得仁
07
11
RockDB RockDB
RocksDB 是Facebook 开源的一个高性能、持久化的KV存储引擎,最初是Facebook 的数据库工程师团队基于Google LevelDB 开发。一般来说我们很少见到过哪个项目直接使用RocksDB 来保存数据,即使未来大概也不
2023-07-11
11
14.高并发读写 14.高并发读写
侧重于“高并发读”的系统 搜索引擎 电商的商品搜索 电商系统的商品描述、图片和价格 侧重于“高并发写”的系统 广告扣费系统 同时有“高并发读”和“高并发写”的系统 电商的库存系统和秒杀系统 支付系统和微信红包 IM、微博和朋
2023-07-11
11
13.Sentinel限流 13.Sentinel限流
针对电商系统,在遇到大流量时,更多考虑的是运行阶段如何保障系统的稳定运行,常用的手段:限流,降级,拒绝服务。 限流 客户端限流 好处:可以限制请求的发出,通过减少发出无用请求从而减少对系统的消耗。 缺点:当客户端比较分散时,没法设置合理的
2023-07-11
10
12.秒杀系统 12.秒杀系统
秒杀系统的挑战:巨大的瞬时流量、热点数据问题、刷子流量 CDN 将Nginx 的职责放大,前置用来做Web 网关,承担部分业务逻辑校验,并且可能增加黑白名单、限流和流控的功能 刷子:无效:正常请求 = 6:1:3 秒杀业务流程梳理
2023-07-10
10
11.数据高可用 11.数据高可用
缓存不命中:把全量数据都放在Redis 集群中,处理读请求的时候,只需要读取Redis,而不用访问数据库。很多大型互联网公司都在使用这种方法 更新缓存: 启动一个更新缓存的服务接收数据变更的消息队列中的消息,然后注意解决消息的可靠性问题即
2023-07-10
10
10.高并发缓存 10.高并发缓存
缓存大体可以分为三类: 客户端缓存;服务端缓存;网络中的缓存。 根据规模和部署方式缓存也可以分为:单体缓存;缓存集群;分布式缓存。 缓存一定是离用户越近越好 缓存的分类: 客户端缓存 页面缓存 浏览器缓存 APP缓存 网络缓存 Web代理
2023-07-10
10
10
08.支付超时 08.支付超时
延迟任务(不推荐) 下单时增加一个定时任务,在五分钟后对订单进行超时判断。 超时判断时,可以先去支付宝上查询订单支付状态。 如果已支付,则判断订单是否正常结束,这是因为在用户完成扫码支付后,支付宝正常会往图灵电商发送支付成功的通知。但是
2023-07-10
09
07.订单系统设计 07.订单系统设计
重复下单问题(幂等) 用户在点击“提交订单”的按钮时,不小心点了两下 网络错误也有可能会导致重传,很多RPC框架和网关都拥有自动重试机制 主键唯一约束 为订单系统增加一个“生成订单号”的服务,这个服务没有参数,返回值就是一个新的、全局唯
2023-07-09
09
09
05.分布式唯一ID 05.分布式唯一ID
全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求。 趋势递增、单调递增:保证下一个ID一定大于上一个ID。 信息安全:如果ID是连续的,恶意用户的扒取工作就非常容易做了,直接按照顺序下载指定URL 即可;如果是订单号就更
2023-07-09
08
08
03.微服务架构拆分 03.微服务架构拆分
微服务拆分时机 微服务不仅仅是技术的升级,更是开发方式、组织架构、开发观念的转变。 业务规模:业务模式得到市场的验证,需要进一步加快脚步快速占领市场,这时业务的规模变得越来越大,按产品生命周期来划分(导入期、成长期、成熟期、衰退期)这时一
2023-07-08
08
08
01.单体VS微服务 01.单体VS微服务
单体服务的优点 应用的开发很简单,IDE 和其他开发工具只需要构建这一个单独的应用程序 易于对应用程序进行大规模的更改:可以更改代码和数据库模式,然后构建和部署测试相对简单。 开发测试简单:开发者只需要写几个端到端的测试,启动应用程序,调
2023-07-08
08
26.03.缩梯 26.03.缩梯
市场每一次突破幅度都小于上一次,说明动能在减弱,可能很快出现较深的回撤甚至反转。如图26.3所示,市场走出楼梯形态上升趋势,形成3个或以上趋势性上移的高点和低点,大致处于一个通道之中。K线4、6、8形成缩梯,代表上升动能减弱,预示行情可
08
26.02.楼梯形态加速进入强劲趋势 26.02.楼梯形态加速进入强劲趋势
如图26.2所示,楼梯形态有时候会加速,进入更强劲的趋势。在欧元兑美元的日线图上,截至K线7,市场处于一个上升通道,形成3个高点抬升和低点抬升,因此属于楼梯形态上升趋势。 K线8是一根多头趋势K线,突破通道上轨。随后出现一根空头反转K线
08
26.01.下降楼梯 26.01.下降楼梯
下降楼梯形态是一个向下倾斜的通道,每次突破至新低之后都会回撤至突破点之上。比如说,在图26.1中,从K线8到K线9的下跌形成向下突破,随后的回撤站上了K线7的低点;截至K线11的下跌突破了K线9,随后的回撤站上K线9突破点,与上一个区间
2 / 28