nio框架netty在项目中的应用

本文介绍了在处理大量短信发送任务时,如何利用Netty框架基于NIO的SGIP协议进行通信。通过分析TCP/IP的三次握手和四次挥手,展示了Java BIO模型的问题,并探讨了BIO到NIO再到AIO的发展历程。文中详细解释了NIO的Buffer、Channel和Selector的概念,并提供了相关代码示例,最后提到了Netty这一强大的NIO框架在业界的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 背景:

    省分短信发送每天都差不多要1000W条上下,遇到特殊节假日和政府通告时量会更大!boss系统中存放的是短信发送内容,而真正完成发送短信指令动作是的华为方做的短厅,这么大的通信量选择了netty来完成数据传输并自定义了一套基于netty的SGIP协议进行通信;
    省分boss系统—>短信营业厅();
    这里写图片描述

  2. 基本知识
    2.1 TCP/IP网络协议
    网上很多有关这个协议的解释,自行google,下面是简单的理解记忆:
    tcp/ip的3次握手, 简单来说就是第一次我连接你给你一个标识SYN,你给我返回SYN并给一个新的ACK标记我,然后我再把ACK给你,
    这样证明我们之前传东西是可靠,的然后就正式传数据了
    这里写图片描述
    图片来自网上

tcp/ip的4次挥手断开,相当于,你给我一个ACK我给你一个FIN,然后再次彼此交换确认,OK就可以结束通信了
这里写图片描述
图片来自网上

java的socket就是对tcp/ip的一种实现

这里写图片描述

基础代码,:
一个简单的socket实现tcp/ip的样例,后面的BIO/NIO/AIO都是基本上于这个例子进行变化
client端:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
   
   
    final static String ADDRESS = "127.0.0.1";
    final static int PORT = 7788;
    public static void main(String[] args) 
        Socket socket = null;
        BufferedReader in = null;
        PrintWriter out = null;
            socket = new Socket(ADDRESS, PORT);
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            out = new PrintWriter(socket.getOutputStream(), true);

            //向服务器端发送数据
            out.println("接收到客户端的请求数据...");
            out.println("接收到客户端的请求数据1111...");
            String response = in.readLine();
            System.out.println("Client: " + response);
            ...

Server端:

public class Server {
   
   
    final static int PROT = 7788;
    public static void main
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值