高性能
- 高并发用户
- 高吞吐量
- 低延迟
混动工程
- 容量预估
- 爆炸半径
- 工程方面积累与改进
netty概览
- 网络应用开发框架
- 异步
- 事件驱动
- 基于nio
- 事件处理机制
- 取号机取号
- 事件分发
- event channel 事件处理
运行原理
- NioEventLoopGroup --dispatch – NioEventLoopGroup(Worker Group) – EventLoop(Task Queue)-- channel – channel handler
- 关键对象
- Bootstrap:启动线程,开启 socket
- EventLoopGroup: 线程池
- EventLoop: 线程
- SocketChannel: 连接
- ChannelInitializer: 初始化 (应用)
- ChannelPipeline: 处理器链
- ChannelHandler: 处理器
- ChannelPipeline
- Event & Handler
- 入站事件
- 通道激活和停用
- 读操作事件
- 异常事件
- 用户事件
- 出站事件
·* 打开连接
- 关闭连接
- 写入数据
- 刷新数据
- 事件处理程序接口
• ChannelHandler
• ChannelOutboundHandler
• ChannelInboundHandler - 适配器(空实现,需要继承使用)
• ChannelInboundHandlerAdapter
• ChannelOutboundHandlerAdapter
Netty 网络程序优化
- 粘包和拆包(ByteToMessageDecoder):定长(.FixedLengthFrameDecoder)、\r\n(.LineBasedFrameDecoder)、指定分隔符(DelimiterBasedFrameDecoder)、按长度解码(LengthFieldBasedFrameDecoder)、jison格式解码(JsonObjectDecoder)
- http:chunk(开启后的报文体的长度固定1024 )
网关
- 四大职能
- 请求接入:作为所有api接口服务请求的接入点
- 业务聚合:作为所有后端服务的聚合点
- 中介政策:实现安全、验证、路由、过滤、流控等策略
- 统一管理:所有api服务和策略进行统一管理
- 网关分类:流量网关(nginx),业务网关(服务降级,鉴权 )