摘要:
0 "相关源码" 1 你将学到 如何保证消息百分百投递成功 幂等性 如何避免海量订单生成时消息的重复消费 Confirm确认消息、Return返回消息 自定义消费者 消息的ACK与重回队列 限流 TTL 死信队列 2 保证消息的百分百投递成功 2.1 Producer 的可靠性投递 2.1.1 要求 阅读全文
摘要:
1 微信支付的坑 1.1 不能用前端传递过来的金额 订单的商品金额要从数据库获取,前端只传商品 id。 1.2 交易类型trade type字段不要传错 v2版API,不同交易类型,要调用的支付方式也不同。 1.3 二次签名 下单时,在拿到预支付交易会话标识时,要进行二次签名操作。二次签名后的值,才 阅读全文
摘要:
0 前言 开放式系统互连(OSI,Open Systems Interconnection)模型,由国际标准化组织(ISO)在1984年提出,目的是为了促进不同厂商生产的网络设备之间的互操作性。 定义了一种在层之间进行协议实现的网络框架,控制从一层传递到下一层。在概念上将计算机网络架构分7层,按照逻 阅读全文
摘要:
1 编辑配置 2 修改显示的的可选项 3 选择添加VM参数 面板就会多出一个可输入VM参数的框: 关注我,紧跟本系列专栏文章,咱们下篇再续! 作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。 各大技术社区头部专家博主。具有丰富的引领 阅读全文
摘要:
1 Kafka的事务 V.S RocketMQ RocketMQ事务主要解决问题:确保执行本地事务和发消息这俩操作都成功/失败。RocketMQ还有事务反查机制兜底,更提高事务执行的成功率和数据一致性。 而Kafka事务,是为确保在一个事务中发送的多条消息,要么都成功,要么都失败。 这里的多条消息不 阅读全文
摘要:
1 行业背景 基金公司核心业务主要分为: 投研线业务,即投资管理和行业研究业务,体现基金公司核心竞争力 市场线业务,即基金公司利用自身渠道和市场能力完成基金销售并做好客户服务 随互联网技术发展,基金销售渠道更加多元化,线上成为基金销售重要渠道。相比传统基金客户,线上渠道具有客户基数大,水平参差不齐的 阅读全文
摘要:
扣减库存需要查询库存是否足够: 足够就占用库存 不够则返回库存不足(这里不区分库存可用、占用、已消耗等状态,统一成扣减库存数量,简化场景) 并发场景,若 查询库存和扣减库存不具备原子性,就可能超卖,而高并发场景超卖概率会增高,超卖数额也会增高。处理超卖的确麻烦: 系统全链路刷数会很麻烦(多团队协作) 阅读全文
摘要:
0 前言 秒杀,既有需求真实且迫切的用户,也有试图牟利的黄牛。系统挑战,就是相较于以往千倍万倍的用户规模,可能是真人可能是机器人,在同一瞬间对系统发起冲击,需要海量的计算资源才能支撑。 秒杀系统的设计套路往往适用于其他高并发场景,具有较高的借鉴价值。同时,其特殊的挑战和需求,需要架构师在设计中权衡考 阅读全文
摘要:
精简化事件:事件驱动架构的精益力量 在软件开发领域,事件驱动架构(Event-Driven Architecture,简称 EDA)因其促进实时通信、具有良好的可扩展性以及构建松耦合系统的能力,越来越受到重视。其核心思想是通过事件来实现通信。在使用事件驱动架构的过程中,关于事件的设计一直存在争议:我 阅读全文
摘要:
前言 在上一篇文章中,我介绍了领域驱动设计(DDD)的战略设计,以及如何处理大局。本篇文章将深入探讨领域驱动设计(DDD)的核心——战术设计。 Vaughn Vernon 在他的书《Implementing Domain Driven Design》(实现领域驱动设计)中巧妙地将战略设计比作登山者规 阅读全文
摘要:
1 你需要知道的 - 战略设计 DDD是一种软件设计和构建方法,其重点在于独立于数据持久化等技术问题,准确表达业务规则。 不幸,DDD 对新手来说极具挑战性,部分原因是它有许多独特的概念需要学习。本文我简要介绍这些重要的思想,以便你能自信继续你的 DDD 旅程。 第一部分将侧重于与所有参与软件开发的 阅读全文