首页 > 其他分享 >面试官问Netty

面试官问Netty

时间:2024-09-04 18:37:39浏览次数:10  
标签:Netty 面试官 Reactor 模型 线程 多线程 负责

1.介绍一下自己对 Netty 的认识吧
2.那你在说说为什么要用 Netty ?
3.那你在通俗地说一下 Netty 可以做什么事情?
4.Netty 核心组件了解吗?分别有什么作用?
5.在说说Netty 有几种线程模型吧?
6.你说一下对于这三种线程Reactor模型的理解?

 

Netty组成部分?
1. 网络通信层:
bootstrap: 负责客户端启动,并去连接远程的netty server
serverBootstrap: 负责服务端监听, 用来监听指定的端口
channel: 是负责网络通信的一个载体
2. 事件调度层
EventLoopGroup: 本质上是线程池, 负责接受IO请求, 并分配线程去处理请求
EventLoop: 具体的线程
3. 服务编排层
ChannelPipline: 负责处理多个ChannelHandler, 把多个handler形成链
ChannelHandler: 针对IO数据的处理器
ChannelHandlerContext: 保存ChannelHandler上下文信息

Netty有哪几种线程模型?
单线程单Reactor模型:
多线程单Reactor模型:
多线程多Reactor模型(也叫主从多线程Reactor模型):

模型组件?
1. reactor? 负责将IO事件分派给指定的handler
2. Acceptor? 负责处理客户端的连接请求
3. Handlers?去执行我们的业务逻辑的读写操作

 

标签:Netty,面试官,Reactor,模型,线程,多线程,负责
From: https://www.cnblogs.com/cxxjohnson/p/18397156

相关文章

  • 面试官:说说Lambda表达式底层原理?
    Lambda表达式是Java8引入的一种简洁的表示匿名方法的方式,使用它可以用于替代某些匿名内部类对象,从而让程序更简洁,可读性更好。但Lambda表达式的底层是如何实现的呢?接下来我们一起来看。1.未Lambda表达式未使用Lambda表达式之前,我们创建一个线程,可以这样写:Threadt1=n......
  • 大厂面试官:你真的了解WebSocket么?
    希望大家能关注点赞,创作不易且没收益,您的小小举动却能给予我大大的鼓励,会激励我继续创作出高质量文章......
  • Netty 学习笔记
    Java网络编程早期的JavaAPI只支持由本地系统套接字库提供的所谓的阻塞函数,下面的代码展示了一个使用传统JavaAPI的服务器代码的普通示例//创建一个ServerSocket用以监听指定端口上的连接请求ServerSocketserverSocket=newServerSocket(5000);//对accept方法......
  • 面试官:Kafka中的key有什么用?
    我们在使用Kafka时,最简单、最常用的方式是只设置topic(主题)和value(消息体),如下所示:这样的话获取消息的代码也很简单,如下所示:@KafkaListener(topics="mytopic",groupId="my-group")publicvoidlisten(Stringdata){System.out.println("监听到消息:"+data);}......
  • Netty
    Netty创建UCP客户端:publicclassNettyClient{publicstaticvoidmain(String[]args){EventLoopGroupgroup=newNioEventLoopGroup();try{Bootstrapb=newBootstrap();b.group(group).channel(NioDa......
  • 面试官:Leader崩溃Follower不够新怎么办?
    这是一道非常经典的Kafka问题,是关于Leader在“异常”情况下的选举问题。背景我们知道Kafka中的Partition(分区)是存储消息的最终介质,但Partition又有两种分类:LeaderPartition:主分区,负责数据写入和读取。FollowerPartition:副本分区,用于数据备份和主节点宕机之后的分......
  • 大厂面试官:Redis分布式锁掌握的还可以啊,那你了解Redis集群下的分布式锁么? 我:不好意思,
    大厂常问面试题,Redis集群下的分布式锁,你了解多少?希望大家能关注点赞,创作不易且没收益,您的小小举动却能给予我大大的鼓励,会激励我继续创作出高质量文章......
  • 面试官问什么?Python基础与进阶?介绍Django框架?MySQL数据库索引?
    Catalog自我介绍Python001.Python支持哪些数据类型?01.数字类型02.序列类型03.映射类型04.集合类型05.其他类型06.特点总结002.什么是模块(module),如何导入一个模块?01.导入模块02.`import`和`from...import...`的区别003.高频发问题004.数据去重005.Python中......
  • netty实现私信聊天
    websocket的介绍:WebSocket是一种在网络通信中的协议,它是独立于HTTP协议的。该协议基于TCP/IP协议,可以提供双向通讯并保有状态。这意味着客户端和服务器可以进行实时响应,并且这种响应是双向的。WebSocket协议端口通常是80,443。WebSocket的出现使得浏览器具备了实时双向通信的能力......
  • 大厂面试官:你知道Redis如何实现分布式锁么?
    常见面试题,看完基本也没啥问题了Redis如何实现分布式锁分布式锁是用于分布式环境下并发控制的一种机制,用于控制某个资源在同一时刻只能被一个应用所使用。如下图所示:Redis本身可以被多个客户端共享访问,正好就是一个共享存储系统,可以用来保存分布式锁,而且Redis的读写......