zoukankan      html  css  js  c++  java
  • netty随笔

    netty是一个nio框架,通过rpc长连接进行通信。

    nio和bio的区别是:bio是通过tcp/ip的三次握手机制实现通信,服务端连接几个客户端就要开几个线程,而nio有一个叫选择器(多路复用器)的东西,客户端要跟服务端进行通信,需要先在选择器上注册一个管道,可以理解这个管道是用来做数据传输的,然后服务端只要开启一个线程来轮询注册进来的客户端管道,根据不同的管道状态交给服务器管道做对应的处理,服务器也要进行管道注册。主要的状态有可读、可写、堵塞等状态。

    主要的api有:

    serverBootstap 服务端辅助类,

    两个线程组,一个负责接收客户端的请求,一个负责实质的数据读写。

    实现数据读写的类需要继承channelHandlerAdapter这个类,实现父类的方法,主要的方法有数据接收前,数据接收,数据接收后,数据接收异常处理方法等。

    实现拆包粘包的方法有三种:一是消息定长,不够的用空格补齐;第二个是特定符号做分割;第三个是在消息头加一个长度字段,记录消息的长度。

    实现解压缩的方法工具有:JBoss的marshalling,谷歌的protobuf等

  • 相关阅读:
    MySQL主从复制
    Mysql解压版安装配置
    MySQL 多行数据合并 GROUP_CONCAT
    Java集合框架
    Redis 入门知识点
    事务
    Spring AOP 知识点入门
    Tomcat热部署和热加载
    Java的Socket通信简单实例
    nginx和tomcat配置负载均衡和session同步
  • 原文地址:https://www.cnblogs.com/3chi/p/8504659.html
Copyright © 2011-2022 走看看