首页 / 标签TAG / SPRINGFORALL

# java

围绕 java 的技术文章与经验分享。

共 971 篇文章

Netty(四)高级应用 之 手写Tomcat

手写 Tomcat 确切地说,这里要手写的是一个 Web 容器,一个类似于 Tomcat 的容器,用于处理 HTTP请求。该 Web 容器没有实现 JavaEE 的 Servlet 规范,不是一个 Servlet 容器。但其是类比着Tomcat 来写的,这里定义了自己的请求、响应及 Servlet,分别命名为了…

Netty(五) 高级应用 之 手写 RPC 框架

1. 手写 RPC 框架 1.1 RPC 简介 RPC,Remote Procedure Call,远程过程调用,是一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。在 OSI 网络通信模型中,RPC 跨越了传输层(第四层,传输协议 TCP/ UDP ,即通过 ip+port 进行通信)和应用层(第七层,传输协议有…

Spring Boot + Dubbo + Seata 分布式事务实战

前言 Seata 是 阿里巴巴开源的分布式事务中间件,以高效并且对业务0侵入的方式,解决微服务场景下面临的分布式事务问题。 事实上,官方在 GitHub 已经给出了多种环境下的 Seata 应用示例项目,地址: https://github.com/seata/seata-samples 。 为什么笔者要重新写一遍呢,主要原因有两点:…

Netty入门 (一)概述(核心概念、执行流程)

Netty 入门 1. Netty 概述 1.1 Netty 简介 Netty 官网上可以看到最权威的介绍: Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能服务器和客户端。 Netty 是一个 NIO 客户机-服务器框架,它支持快速、简单地开发网络应用程序,如服务器和客户机。它大大简化了网络编程,如 TCP 和 UDP…

Netty入门 (二)TCP 的拆包与粘包

TCP 的拆包与粘包 1. 拆包粘包简介 Netty 在基于 TCP 协议的网络通信中,存在拆包与粘包情况。拆包与粘包同时发生在数据的发送方与接收方两方。 发送方通过网络每发送一批二进制数据包,那么 这次所发送的数据包就称为一帧,即Frame 。在进行基于 TCP的网络传输时,TCP…

Netty(三)高级应用 之 WebSocket 长连接、网络聊天

Netty 高级应用 本章会通过代码实例的方式将 Netty 常见应用场景中的知识点进行讲解。 1. WebSocket 长连接 1.1 WebSocket 简介 WebSocket 是 HTML5 中的协议,是构建在 HTTP 协议之上的一个网络通信协议,其以长连接的方式实现了客户端与服务端的 全双工通信 。 HTTP/1.1 版本协议中具有 keep-…