![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 94
不回头~
这个作者很懒,什么都没留下…
展开
-
java - netty解决TCP粘包和拆包问题
一,前言在RPC框架中,TCP粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题。本文首先会对TCP粘包和拆包问题进行描述,然后介绍其常用的解决方案,最后会对Netty提供的几种解决方案进行讲解。二,正文1,粘包和拆包产生TCP粘包和拆包问题的主要原因是,操作系统在发送TCP数据的时候,底层会有一个缓冲区,例如1024个字节转载 2021-01-17 23:13:20 · 1093 阅读 · 1 评论 -
java - netty(三)编解码器
Netty编解码器在了解Netty编解码之前,先了解Java的编解码:编码(Encode)称为序列化, 它将对象序列化为字节数组,用于网络传输、数据持久化或者其它用途。解码(Decode)称为反序列化,它把从网络、磁盘等读取的字节数组还原成原始对象(通常是原始对象的拷贝),以方便后续的业务逻辑操作。java序列化对象只需要实现java.io.Serializable接口并生成序列化ID,这个类就能够通过java.io.ObjectInput和java.io.ObjectOutput序列化和反序列转载 2021-01-17 22:38:43 · 927 阅读 · 0 评论 -
java - (二)netty 心跳监测机制
1.心跳检测机制1.1 定时断线重连客户端断线重连机制客户端数量多,且需要传递的数据量级较大。可以在周期性的发送数据的时候,使用。要求对数据的即时性不高的时候,才可使用。优点:可以使用数据缓存。不是每条数据进行一次数据交互。可以定时回收资源,对资源利用率高。相对来说,即时性可以通过其他方式保证。如: 120秒自动断线。数据变化1000次请求服务器一次。300秒中自动发送不足1000次的变化数据。对于长连接的程序断网重连几乎是程序的标配。断网重连具体可以分为两类:CONNECT失败,需要重连转载 2020-12-23 21:03:26 · 1552 阅读 · 0 评论 -
java - (一)netty
1.Netty 简介Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。JDK 原生 NIO 程序的问题JDK 原生也有一套网络应用程序 API,但是存在一系列问题,主要如下:NIO 的类库和 API 繁杂,使用麻烦。你需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。需要具备其他的额外技能做铺垫。例如熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模转载 2020-12-23 20:30:32 · 611 阅读 · 0 评论 -
java -网络编程 之 NIO编程
前言在之前的博客中,我们已经 介绍了 BIO编程,也了解了 BIO 的有点缺点。这篇博客 来详细的了解 NIO 编程。1.NIO 基本介绍Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API 。从 JDK1.4 开始,Java 提供了一系列改进的 输入/输出 的新特性,被统称为 NIO(即 New IO),是同步非阻塞的NIO 相关类 都被放在 java.nio包及其子包下,并且对原java.io包中很多类进行改写NIO 有三大核心部分:Channel转载 2020-12-19 09:29:48 · 669 阅读 · 1 评论 -
java - 网络编程 之 bio 编程
1.Socket在了解什么是 bio 编程之前,先了解以下什么是 socket1.1 socket 概念套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。一个Socket是一对IP地址和端口。Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信原创 2020-12-18 15:57:52 · 264 阅读 · 0 评论 -
Java - 网络编程基础
1. 网络编程入门1.1 网络编程概述计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换1.2 网络编程三要素IP 地址要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号原创 2020-12-16 00:03:07 · 200 阅读 · 0 评论