后端 [140]
Netty 源码分析之ByteBuf
ByteBuf与ByteBuffer 我们在Netty 源码分析之Java NIO已经详细了解了NIO Buffer。这里先回忆下NIO Buffer的一些特性: ByteBuffer底层实现包含四个关键字段,并满足大小关系:mark <= position <= limit <= capacity
Netty 源码分析之 Promise 与 Future
Future和Promise的关系 Netty内部的io.netty.util.concurrent.Future 继承自java.util.concurrent.Future,而Promise是前者的一个特殊实现。 Java原生Future Java并发编程包下提供了Future接口。Future
Netty 源码分析之TCP粘包和拆包
一、基本介绍 1、TCP 是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据库,然后进行封包。这样做虽然提高了
Netty 源码分析之TCP粘包和拆包解决方案
一、解决方案 1、使用 自定义协议 + 编解码器 来解决 2、关键就是要解决 服务器端每次读取数据长度的问题,这个问题解决,就不会出现服务器多读或少读数据的问题,从而避免了 TCP粘包和拆包 二、应用实例 1、要求客户端发送 5 个 Message 对象,客户端每次发送一个 Message 对象 2
Netty入门
01、Netty入门 - Netty介绍 Netty的介绍 1、 Netty是由jboss提供的一个Java开源框架,现在Github上的独立项目; 2、 Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序; 3、 Netty主要针对在TCP协议下,面向c
Netty 源码分析之Handler
回忆handler 链式结构 我们先来回忆下在Netty 源码分析之 ChannelPipeline(一) 提到过来的handler链式结构: handler分为实现ChannelInboundHandler接口的入站处理器和实现ChannelOutboundHandler接口的出站处理器; han
【思维导图】系统风险控制与可靠性保障
系统风险控制与可靠性保障是确保系统稳定、安全、高效运行的关键环节。系统风险控制主要关注的是识别、评估和应对可能影响系统正常运行的潜在风险,包括技术风险、操作风险、管理风险等。通过风险评估,可以确定风险的大小、发生的可能性以及其对系统的影响程度,从而采取相应的风险缓解措施或应对策略,以最小化风险对系统
Java Z 垃圾收集器 (ZGC):彻底改变内存管理
Z 垃圾收集器 (ZGC) 是 Oracle 在 JDK 11 中引入的一种创新垃圾收集算法。其主要目的是最大限度地减少Java 虚拟机(JVM) 上的应用程序暂停时间,使其特别适合需要低延迟和高延迟的现代应用程序。 -吞吐量性能。 ZGC 采用分代方式进行垃圾收集,将堆分为两代:年轻代和老一代(也
【开源分享】轻量级动态可监控线程池解决方案:dynamic-tp
前言 使用线程池 ThreadPoolExecutor 过程中你是否有以下痛点呢? 代码中创建了一个 ThreadPoolExecutor,但是不知道那几个核心参数设置多少比较合适 凭经验设置参数值,上线后发现需要调整,改代码重新发布服务,非常麻烦 线程池相对开发人员来说是个黑盒,运行情况不能及时感
【开源分享】基于 Springboot 的多类型文件在线预览平台-kkFileView
项目介绍 kkFileView为文件文档在线预览解决方案,该项目使用流行的 Spring Boot 搭建,易上手和部署,部署好后可以独立提供预览服务,使用 http 接口访问,不需要和应用集成,具有跨系统跨语言使用的特性。 提供 Windows / Linux 版本发行包、自定义配置文件、和一键启动
【开源分享】Java 短信服务聚合框架-SMS4J
项目介绍 在日常的开发流程中,短信发送功能经常被使用,特别是在中小型的外包公司中。毕竟,并非每个公司都具备像阿里巴巴或腾讯那样的雄厚实力,也并非每个公司都像银行或联通那样拥有内部的短信发送规范。因此,第三方短信服务商成为了最常见的解决方案。然而,市场上的第三方短信服务商众多,每家都有各自的操作方式和
ChatGPT集成Spring Boot
要将ChatGPT集成到您的Spring Boot应用程序中,可以按照以下步骤进行操作: 1.在OpenAI网站上注册并获取您的API密钥。这将允许您使用ChatGPT API进行与模型的交互。
2024年大数据面试的热门问题
大数据是涉及以TB或PB为单位的大型数据集的大量数据。根据一项调查,今天大约90%的数据是在过去两年中产生的。大数据帮助公司对其提供的产品和服务产生有价值的见解。近年来,每家公司都使用大数据技术来完善其营销活动和技术。对于那些对准备跨国公司大数据面试感兴趣的人来说,本文是一个极好的指南。 如何为大数
21-什么是JUnit:最佳Java测试框架概述
当涉及到测试Java应用程序时,JUnit已经设置了基准。由于JUnit与几乎所有的IDE兼容,世界各地的组织都采用它来执行Java编程语言的单元测试。在这篇题为“什么是JUnit”的文章中,您将探讨深入理解JUnit所需的所有相关主题。 什么是JUnit? JUnit是Java编程语言的单元测试开
20-2024年面向初学者的25大Java项目创意
Java是IT行业的领先编程语言,几乎所有类型的软件开发都使用Java。从手机到大型机,Java无处不在。 如果您是初学者或有软件开发抱负的人,我们强烈建议您开始从事实时和成熟的实时Java项目。 这篇“Java项目”文章完全基于相同的计划,即帮助其他开发人员提供实时Java项目的想法,这将帮助您更
19-Java Servlet简介及其生命周期
Java Servlet,现在也称为Jakarta Servlet,是一个Java服务器软件组件,设计和部署的目的是通过升级服务器服务的功能来增强服务器服务,以通过Web API响应任何请求。 什么是Java Servlet? 我们将Java Servlet或Jakarta Servlet定义为使用
18-什么是Java API,它的优势和需求
Java应用程序编程接口(API)是预定义的软件工具,可以轻松实现多个应用程序之间的交互。 什么是Java? Java是一种面向对象的编程语言,几乎可以在所有电子设备上运行,是Web开发人员最常用的语言。Java是平台无关的,因为Java虚拟机(JVM)。它遵循“一次编写,到处运行”的原则。当JVM
17-什么是Java JDBC?完整的参考资料
数据是当前IT行业的新燃料,数据处理应用程序利用这些数据来提取必要的信息。但是,真正的问题是,我们如何在数据存储单元和数据处理应用程序之间建立连接? 什么是Java JDBC? JDBC是术语Java数据库连接的缩写。JDBC是一种软件工具,也称为应用程序编程接口,用于在标准数据库和打算使用该数据库