- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 RocketMQ详细入门(二)
1. 案例介绍 1.1 业务分析 模拟电商网站购物场景中的【下单】和【支付】业务 ###1)下单 用户请求订单系统下单 订单系统通过RPC调用订单服务下单 订单服务调用优惠券服务,扣减优惠券 订单服务调用调用库存服务,校验并扣减库存 订单服务调用用户服务,扣减用户余额 订单服务完成确认订单 ###2)支付 用户请求支付系统 支付系统调用第三方支付平台API进行发起支付流程 用户通过第三方支付平台支付成功后,第三方支付平台回调通知支付系统 支付系统调用订单服务修改订单状态 支付系统调用积分服务添加
2020-12-12 22:05:24 170
原创 RocketMQ详细入门(一)
1. MQ介绍 ##1.1 为什么要用MQ 消息队列是一种“先进先出”的数据结构 其应用场景主要包含以下3个方面 应用解耦 系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。 使用消息队列解耦合,系统的耦合性就会提高了。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。当物流系统回复
2020-12-12 21:55:13 1344 1
原创 leetcode-剑指offer(2)
青蛙跳台阶问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 提示: 0 <= n <= 100 class Solution { ...
2020-04-21 21:48:09 150
原创 leetcode-剑指offer(1)
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 示例 1: 输入: s = “abcdefg”, k = 2 输出: “cdefgab” 示例 2: 输入: s = “lrloseumgh”, k = 6 输出: “umghlrlose” 限制...
2020-04-21 10:11:58 86
原创 spring ioc 容器加载步骤
spring ioc容器加载过程 流程: 扫描类 beandif对象 put到map中 db验证后,后获取class 根据class实例化对象 往map中放入工厂对象 对Bean对象进行属性赋值 完成代理 put到单例池中 循环依赖,死循环问题? 将已经创建进行创建的对象放入缓存中 从工厂对象中拿到对象工厂 三级缓存。 public static void main(String[...
2020-03-25 20:46:49 276
原创 java程序员必学 - JVM
JVM 类加载器,通过双亲委派机制,先委托给父类找代码,再一步一步交给子类,防止用户代码污染源代码。 栈空间,通过栈帧管理程序的运行。 方法区(元空间),存放类的结构信息,被虚拟机加载的类信息、常量、静态变量、以及编译后的方法等数据 。 空调 f = new 格力(); /* 方法区 -> f */ 堆空间(存储空间),分为新生代,老年代,元空间。新生代和老年代采用的虚拟机...
2019-12-19 21:26:11 125
多线程预习资料
2020-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人