当前位置: 首页 > news >正文

网站服务器下行很多是什么意思海报模板免费下载网站

网站服务器下行很多是什么意思,海报模板免费下载网站,高档女装品牌前十名,17网站一起做网店的流程一、Netty概述 1.Netty是什么#xff1f; Netty 是一个异步的、基于事件驱动的网络应用框架#xff0c;用于快速开发可维护、高性能的网络服务器和客户端。 2.Netty的地位怎么样#xff1f; Netty 在 Java 网络应用框架中的地位就好比#xff1a;Spring 框架在 JavaEE …一、Netty概述 1.Netty是什么 Netty 是一个异步的、基于事件驱动的网络应用框架用于快速开发可维护、高性能的网络服务器和客户端。 2.Netty的地位怎么样 Netty 在 Java 网络应用框架中的地位就好比Spring 框架在 JavaEE 开发中的地位 以下的框架都使用了 Netty因为它们有网络通信需求 Cassandra - nosql 数据库 Spark - 大数据分布式计算框架 Hadoop - 大数据分布式存储框架 RocketMQ - ali 开源的消息队列 ElasticSearch - 搜索引擎 gRPC - rpc 框架 Dubbo - rpc 框架 Spring 5.x - flux api 完全抛弃了 tomcat 使用 netty 作为服务器端 Zookeeper - 分布式协调框架 3.Netty有哪些优势 Netty vs NIO工作量大bug 多 需要自己构建协议 解决 TCP 传输问题如粘包、半包 epoll 空轮询导致 CPU 100% 对 API 进行增强使之更易用如 FastThreadLocal ThreadLocalByteBuf ByteBuffer Netty vs 其它网络应用框架 Mina 由 apache 维护将来 3.x 版本可能会有较大重构破坏 API 向下兼容性Netty 的开发迭代更迅速API 更简洁、文档更优秀 久经考验16年Netty 版本 2.x 2004 3.x 2008 4.x 2013 5.x 已废弃没有明显的性能提升维护成本高 二、使用Netty实现一个简单的网络通信模型 开发一个简单的服务器端和客户端 客户端向服务器端发送“HelloWorld”服务器只接收并打印输出不返回。 加依赖 dependencygroupIdio.netty/groupIdartifactIdnetty-all/artifactIdversion4.1.39.Final/version/dependency 服务器端 public class HelloServer {public static void main(String[] args) {// 1. 启动器负责组装netty组件启动服务器new ServerBootstrap()// 2. BossEventLoop, WorkerEventLoop(selector,thread), group组.group(new NioEventLoopGroup())// 3. 选择 服务器的 ServerSocketChannel 实现.channel(NioServerSocketChannel.class) // OIO BIO// 4.boss 负责处理连接 worker(child) 负责处理读写决定了 worker(child)能执行那些操作handler.childHandler(// 5. channel 代表和客户端进行数据读写的通道 Initializer 初始化负责添加别的handlernew ChannelInitializerNioSocketChannel() {Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {// 6. 添加具体的 handlerch.pipeline().addLast(new StringDecoder()); // 将ByteBuf 转换为字符串ch.pipeline().addLast(new ChannelInboundHandlerAdapter(){ // 自定义 handlerOverridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {// 打印上一步转换好的字符串System.out.println(msg);}});}})// 7.绑定监听端口.bind(9090);} }代码解读 1.服务器端创建一个新的ServerBootstrap实例。ServerBootstrap是Netty中用于设置服务器端的参数并启动服务器的启动类。 2.为服务器设置一个事件循环组。NioEventLoopGroup是一个基于NIO非阻塞I/O的实现用于处理I/O操作的多线程事件循环。这允许服务器处理多个并发连接。可以理解为创建一个组组中包含多个eventLoop把 eventLoop 理解为处理数据的工人 工人可以管理多个 channel 的 io 操作并且一旦工人负责了某个 channel就要负责到底绑定。 工人既可以执行 io 操作也可以进行任务处理每位工人有任务队列队列里可以堆放多个 channel 的待处理任务任务分为普通任务、定时任务。 3.选择一个serverChannel的实现有基于NIO的服务器端实现、OIO(阻塞IO)的服务器端实现、基于Linux的Epoll的服务器端实现等。 4.添加事件处理逻辑。 5.ChannelInitializer是一个特殊的channel处理器用于对channel中的handler进行初始化具体的handler添加到initChannel()方法中。可以把handler 理解为数据的处理工序。 6.数据传输都是以字节形式传输Netty使用ByteBuf对NIO中ByteBuffer进行增强通过StringDecode()解码成字符传输给msg最终打印输出。pipeline可以理解为把多道工序合在一起 pipeline负责发布事件读、读取完成...传播给每个 handler handler 对自己感兴趣的事件进行处理重写了相应事件处理方法 7.绑定端口用于客户端连接。 客户端 public class HelloClient {public static void main(String[] args) throws InterruptedException {// 1. 启动类new Bootstrap()// 2. 添加EventLoop.group(new NioEventLoopGroup())// 3. 选择客户端 channel 实现.channel(NioSocketChannel.class)// 4. 添加处理器.handler(new ChannelInitializerNioSocketChannel() {Overrideprotected void initChannel(NioSocketChannel ch) throws Exception {ch.pipeline().addLast(new StringEncoder());}})// 5. 连接到服务器.connect(new InetSocketAddress(localhost,9090))// 6. 等待connect建立连接完毕.sync()// 7. 获取channel对象.channel()// 8. 向服务发送数据.writeAndFlush(hello, world);} }代码解读 1.客户端创建一个新的Bootstrap实例。Bootstrap是Netty中用于设置客户端参数并启动客户端的启动类。 2.NioEventLoopGroup同 Server。 3.选择客户 Socket 实现类NioSocketChannel 表示基于 NIO 的客户端实现其它实现还有基于OIO的客户端实现、基于Linux的Epoll的客户端实现等。 4.添加 SocketChannel 的处理器ChannelInitializer 处理器仅执行一次它的作用是待客户端 SocketChannel 建立连接后执行 initChannel 以便添加更多的处理器。 5.指定要连接的服务器和端口。 6.Netty 中很多方法都是异步的如 connect这时需要使用 sync 方法等待 connect 建立连接完毕。 7.获取 channel 对象它即为通道抽象可以进行数据读写操作。 8.写入消息并清空缓冲区。 运行结果 流程梳理
http://www.dnsts.com.cn/news/5770.html

相关文章:

  • 打开网站弹出视频js网站页面引导怎么做
  • 网站开发项目需求分析天堂tv在线观看
  • 济南地产行业网站开发祥云平台英文网站
  • 五家渠网站建设专门做正品的网站
  • 松江网站建设推广wordpress更换域名批量替换
  • asp网站关键词邮箱号怎么注册?
  • 游戏秒玩网站wordpress弹窗登录
  • 怎么在建设银行网站挂号做字幕模板下载网站
  • 徐汇专业做网站盐亭网站建设
  • 网站优化自己可以做吗龙华网站建设首页地址
  • 中山站群网站建设500人在线网站建设配置
  • 邢台学校网站建设报价wordpress 有赞收款
  • 网站上的定位怎么做wordpress文章签名插件
  • 深圳制作网站服务海南三亚8v1视频
  • php网站开发优化方案雄县做网站
  • 湖北营销网站建设设计线上推广有哪些平台效果好
  • 阿里巴巴做外贸的网站做电影网站的流程
  • 网站建设案例查询分类目录搜索
  • 生物公司网站建设方案js网站源码
  • 手机创建网站做做同城网站好还是做垂直网站好
  • 做摄影和后期的兼职网站点图片跳到网站怎么做的
  • 微博分享的网站怎么做网站界面颜色搭配
  • 2345浏览器影视大全专业seo服务商
  • 网站建设学什么想给公司注册一个网站
  • 怎样访问简版网站宁波市铁路建设指挥部网站
  • 好发网站建设高明网站设计
  • 建行网站首页登录哪些网站可以做签约设计师
  • 网站站内结构优化wordpress 加载中
  • 揭阳企业网站建设开发wordpress免费的模板下载
  • 广州市城乡和建设局网站首页本溪做网站