快手杭州商业化一面 5.9
- 自我介绍
- 项目
- rocketMQ支持事务吗 1、Producer 向 broker 发送半消息 2、Producer 端收到响应,消息发送成功,此时消息是半消息,标记为 “不可投 递” 状态,Consumer 消费不了。 3、Producer 端执行本地事务。 4、正常情况本地事务执行完成,Producer 向 Broker 发送 Commit/Rollback,如 果是 Commit,Broker 端将半消息标记为正常消息,Consumer 可以消费,如果是Rollback,Broker 丢弃此消息。 5、异常情况,Broker 端迟迟等不到二次确认。在一定时间后,会查询所有的半 消息,然后到 Producer 端查询半消息的执行情况。 6、Producer 端查询本地事务的状态 7、根据事务的状态提交 commit/rollback 到 broker 端。(5,6,7 是消息回查) 8、消费者段消费到消息之后,执行本地事务,执行本地事务
- 事务用来解决什么问题?什么场景会用到事务
- 分布式锁
- 算法:用栈实现队列
- innodb索引是怎么实现的 a. 可以建立哪些索引 使用场景 唯一索引是做什么的
- innodb有哪几种锁
- 缓存雪崩、击穿、穿透
- IO多路复用使用场景 a. 网络编程:在网络编程中,服务器通常需要同时处理多个客户端的连接请求和数据传输。使用IO多路复用可以轻松管理多个网络套接字,监听并处理可读或可写的事件。这种方式可以实现高并发的服务器,提高系统的性能和扩展性。 b. 高性能服务器:对于需要处理大量并发连接的服务器,如聊天服务器、实时通信服务器、游戏服务器等,使用IO多路复用可以有效地管理和处理多个客户端连接,提高服务器的吞吐量和响应速度。 c. 文件操作:在文件操作中,当需要同时读取或写入多个文件时,可以使用IO多路复用来监听文件描述符的可读或可写事件,从而避免使用多线程或多进程的方式,提高文件操作的效率。 d. 定时器和事件调度:IO多路复用可以用于实现定时器和事件调度功能。通过将定时器和事件的触发时间注册到IO多路复用机制中,可以在特定的时间点触发相应的事件,执行相应的操作。
反问交易一周
#软件开发2024笔面经#