baby sword‘s blog baby sword‘s blog
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)

zhengjian

不敢承担失去的风险,是不可能抓住梦想的
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)
  • 个人项目

    • RPC项目
  • 个人面试面经

  • 八股记忆

  • 工作积累

  • 工作
  • 个人项目
xugaoyi
2023-07-13

RPC项目

目前简历:

1. 采用了基于 TCP 协议的通信框架 Netty,保证了通信的可靠性和稳定性。
2. 设计的通信协议,并使用 Netty 的LengthFieldBasedFrameDecoder,从而解决拆包和粘包问题。
3. 通过 Zookeeper、Redis 实现服务注册中心和服务治理框架,可以自动发现和管理服务提供者。
4. 实现了一个动态代理框架和负载均衡算法,从多个服务提供者中选择一个合适的服务提供者。
5. 通过 Netty 中的组件 IdleStateHandler 实现了一个心跳机制,可以检测服务提供者的存活状态,并及时关闭对应的通道。
1
2
3
4
5
  1. 了解 Netty 基础知识,了解 rpc 基础知识

rpc

  • https://www.yuque.com/snailclimb/gsmusc sztd

  • rpc是什么?rpc原理,rpc和http区别,了解的常见的rpc框架有哪些。

  • https://2290653824.github.io/pages/eb6da4/

netty

  • https://www.yuque.com/snailclimb/mf2z3k/wlr1b0 cnk4
  1. 什么是黏包粘包,netty解决方案。详细说一下LengthFieldBasedFrameDecoder,协议怎么设计的。

  2. 注册中心与服务发现怎么做的。redis、zookeeper有什么区别

  3. 如何实现的心跳机制。

  4. 几种负载均衡算法是怎么实现的。

牛客参考:rpc项目 (opens new window)

你将服务提供方注册到zookeeper,注册的内容是什么,如果对应的服务提供方宕机了,你是怎么处理的。

评估:

  1. 创建的是临时节点,当服务提供方服务挂掉后,zk检查到对应的连接已经断开,则会自动删除对应的节点
  2. 创建的是永久节点,则当服务启动时,向JVM中添加一个钩子函数,当JVM结束时,会自动调用这个钩子函数,钩子函数的功能就是获取自己的ip和端口,并向zk请求删除与自己相关的节点。(这个钩子函数不是所有情况都可以被调用到,如果是kill命令,则不会调用钩子函数)

CustomShutdownHook.*getCustomShutdownHook*().clearAll();在服务提供方启动时,就会注册一个钩子函数

编辑 (opens new window)
上次更新: 2024/02/22, 14:03:19
百度后端实习二面

百度后端实习二面→

最近更新
01
spark基础
02-22
02
mysql读写分离和分库分表
02-22
03
数据库迁移
02-22
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式