面试突击第二季
2016-11-18 20:50:11 0 举报
《面试突击第二季》是一部以职场为背景的真人秀节目。在这一季中,观众将看到一群年轻人怀揣梦想,勇敢地挑战各种知名企业的面试官。他们来自不同的专业背景,有的是应届毕业生,有的已经工作多年,但他们都有一个共同的目标:在激烈的竞争中脱颖而出,实现自己的职业理想。节目中,他们将接受严格的选拔,展示自己的才能和潜力。同时,节目还邀请了多位业内专家和成功人士,为选手们提供宝贵的建议和指导。在这场智慧与勇气的较量中,谁能笑到最后,成为最终的赢家?敬请关注《面试突击第二季》,让我们一起见证他们的成长与蜕变!
作者其他创作
大纲/内容
将LockData中的加锁次数递减1
加锁成功
否
servernetty/mina
服务D
动态代理对象
服务注册表192.168.21.107:8080192.168.31.21:8080
将所有的子节点按照节点名称大小从小到大排序
zookeeper可重入锁原理
服务注册中心slave存储部分注册表
返回提示库存不足,不能下单
Eureka
服务消费者
接口
7. 消费消息
服务注册中心master存储部分注册表
对你的上一个节点加一个watcher监听器,监听他是否还存在
4.1 链路失败就退款
请求调用
netty/mina网络通信框架
zkLeader
proxy层:代理层,无论是consumer,还是provider,dubbo都会给你生成代理,代理之间进行网络通信
1. 发送half message
订单系统
服务注册
监听服务列表
客户端B
位置是否为第一个
解析请求
核心交易链路
库存数据库
Acceptor线程
购买10个苹果
客户端A
5.commit message
loadbalance选择一台机器
Protocol选择一种通信协议组织请求
支付系统
Selector
上万服务注册中心自研
SocketChannel
监听
服务发现
serialize层:序列化
发送心跳30s
zookeeper序号id+01序号
exchange层:信息交换
增加积分
重新进入while循环再次尝试
位置是否为0
建立连接
反序列化
获取本次创建的顺序节点名称在list中的位置
MQ中间件
尝试加锁失败
释放锁底层逻辑
感知到服务机器列表
获取锁失败
netty
同步
响应
用户
registry层:provider注册自己作为服务,consumer就可以找到注册中心区寻找自己要调用的服务
服务
发送心跳
发送响应
端口号
加锁次数是否为0
查询苹果5个
3.核心交易链路
monitor层:consumer调用provider,调用了多少次,统计信息监控
ReadOnly缓存192.168.21.107:8080
获取到锁
服务提供者
4.2 链路失败订单状态:已取消
订单业务服务
线程
Eureka服务注册与发现心跳与故障
注册心跳
序列化
库存服务
订单数据库
删除自己的LockData
6. 接口回调判断到底commit/rollback
Eureka原理
从wait阻塞状态中苏醒过来
客户端A:存储节点的位置和zookeeper序号id+01序号(已删除)客户端B:存储节点的位置和zookeeper序号id+02序号
Processor线程
轮训网络事件
定时同步
删除自己的顺序节点
zkFollower
redis集群
wms数据库
4. 链路相应
服务B
服务提供者ip:portip:port
服务192.168.31.107:8080
获取自己的顺序节点在list中的位置:1
服务注册中心服务提供者IP:port
获取自己本次创建的顺序节点的名称
ReadWrite缓存192.168.21.107:8080192.168.31.21:8080
查询苹果的库存加分布式锁
服务C
Exchange请求封装为Request
9. ack message
退款
电商系统交易链路分布式事务
是
将LockData中的加锁次数加1就可以了AtomicInteger
protocol层:负责具体provider和consumer之间调用接口的时候网络通信
立马同步
4.3 链路失败rollback message
服务192.168.31.21:8080
分布式锁在业务中的应用
定时检查30s
可重入加锁
通知服务列表更新
查库存有15个苹果
服务发现每隔30s拉去一次
Object.notifyAll()唤醒当前机器上所有wait的线程
获取到/lock/lock_01目录下所有节点
积分服务
积分数据库
wms服务
释放锁
8.创建发货单
netty通信
cluster层:provider可以部署在多台机器上的,多个provider就组成了一个集群
zookeeper
订单接口服务
支付订单
本次创建的顺序节点的名称
<thread.lockData>放入到一个map
扣减库存
zookeeper集群
2. message success
Object.wait()当前线程进入无限制的阻塞和等待
LockData是否存在
直接返回
集群同步
获取你的顺序节点的上一个节点
服务A
Eureka集群
cluster
service层:provider和consumer,接口,留给你来实现的
更新订单状态:待发货
获取到分布式锁
锁定苹果库存
自己的节点是否为第一个
重新尝试加锁的逻辑
dubbo分层介绍
ServerSocketChannel
config层:任何一个框架,都需要提供配置文件,让你进行配置
0 条评论
下一页
为你推荐
查看更多