Java常用框架(二)

news2025/2/28 0:11:37

三、Netty

1.概述

1.1 为什么要选Netty?

  • 使用Netty不必编写复杂的逻辑代码去实现通信,再也不需要去考虑性能问题,不需要考虑编码问题,半包读写等问题。
  • Netty是最流行的NIO框架,它的健壮性、功能、性能、可定制性和可扩展性在同类框架都是首屈一指的.
  • 已经得到成百上千的商业/商用项目验证,如Hadoop的RPC框架Avro、RocketMQ以及主流的分布式通信框架Dubbox

1.2 BIO、NIO、AIO

在这里插入图片描述

1.3 Netty简介

  • Netty 是由 JBOSS 提供的一个 Java 开源框架, 现为 Github 上的独立项目。
  • Netty 是一个异步的、 基于事件驱动的网络应用框架, 用以快速开发高性能、 高可靠性的网络 IO 程序。
  • Netty 主要针对在 TCP 协议下, 面向 Clients 端的高并发应用, 或者 Peer-to-Peer 场景下的大量数据持续传输的应用。
  • Netty 本质是一个 NIO 框架, 适用于服务器通讯相关的多种应用场景。

在这里插入图片描述


1.4 Netty应用场景

1.4.1 互联网行业
  • 分布式系统中,各个节点之间需要远程服务调用, 高性能的 RPC 框架必不可少, Netty 作为异步高性能的通信框架, 往往作为基础通信组件被这些 RPC 框架使用。
  • 典型的应用
    阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通信, Dubbo 协议默认使用 Netty 作为基础通信组件, 用于实现各进程节点之间的内部通信
1.4.2 游戏行业
  • 无论是手游服务端还是大型的网络游戏,Java 语言得到了越来越广泛的应用。
  • Netty 作为高性能的基础通信组件, 提供了 TCP/UDP 和 HTTP 协议栈, 方便定制和开发私有协议栈, 账号登录服务器。
  • 地图服务器之间可以方便的通过 Netty 进行高性能的通信。
1.4.3 大数据领域
  • 经典的 Hadoop 的高性能通信和序列化组件 Avro 的 RPC 框架, 默认采用 Netty 进行跨界点通信。
  • 它的 Netty Service 基于 Netty 框架二次封装实现。
  • 地图服务器之间可以方便的通过 Netty 进行高性能的通信。

在这里插入图片描述

1.5 其他开源项目用到Netty

Netty官网

Netty主要参考链接如下:
Netty 介绍和应用场景(一)




上一篇跳转—Java常用框架(一)



本篇文章主要参考链接如下:

参考链接2-JavaGuide


持续更新中…

随心所往,看见未来。Follow your heart,see light!

欢迎点赞、关注、留言,一起学习、交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/361185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于android中有关JNI无法生成.so文件的问题解决方法

问题:在配置NDK开发环境时,会发现无法正常生成so文件的情况,可能时AS本身的bug,这时候提供一种方法手动生成so文件 一 配置NDK 1.1 在File | Settings | Appearance & Behavior | System Settings | Android SDK | SDK Tool…

【Linux】常用命令大全(二)

目录 4. Linux常用命令 4.1 Linux命令初体验 4.2 文件目录操作命令 4.3 拷贝移动命令 4.4 打包压缩命令 4.5 文本编辑命令 4.6 查找命令 4. Linux常用命令 4.1 Linux命令初体验 4.1.1 常用命令演示 在这一部分中,我们主要介绍几个常用的命令&#xff0c…

深度学习基础训练流程

深度学习基础训练流程 前言 本文只是本人学习笔记记录,文中部分图片来源网络,如有侵权请联系我进行删除 1、深度学习基础 1.1 深度学习 深度学习是机器学习的一个分支,目的是找到一组良好的参数θ,使得θ表示的数学模型能够很…

K8S多节点二进制部署

目录 一、多 Maser 集群架构的了解 二、master2 节点部署 1、从 master01 节点上拷贝证书文件、各master组件的配置文件和服务管理文件到 master02 节点 2、修改配置文件kube-apiserver中的IP 3、在 master02 节点上启动各服务并设置开机自启 4、查看node节点状态 三、负…

1-MATLAB APP Design-图像的输入与输出

一、APP 界面设计展示 新建一个空白的APP,在此次的学习中,我们会用到编辑字段(文本框)、 按钮、坐标区和面板,首先在界面中拖入一个编辑字段(文本框),在文本框中输入内容:图形的输入与输出,调整背景颜色,字体的颜色为黑色,字体的大小调为25.

开通腾讯位置服务

文章目录一、开通腾讯位置服务步骤二、腾讯位置服务SDK三、小程序项目中,创建 lib 目录,把SDK文件放入其中一、开通腾讯位置服务步骤 因为签到流程中要获取用户当前所在地址的信息,所以需要把定位坐标缓存成地址,恰好腾讯位置服务…

【 java 8】Lambda 表达式

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

MySQL 性能优化思路和工具

MySQL 性能优化思路和工具 一、优化思路 作为架构师或者开发人员,说到数据库性能优化,你的思路是什么样的? 或者具体一点,如果在面试的时候遇到这个问题:你会从哪些维度来优化数据库,你会怎么回答&#x…

Hive内部表与外部表的区别具体说明

目录 1.在/opt/atguigu/目录下,新建两个txt文件 2.在hadoop的web端递归创建一个目录,存储这两个文件 3.查看web端的文件 一、内部表: 1.创建一个内部表,并指定内部表的存储位置 2.查看内部表,内部表中没有数据 …

技术学习-消息队列

什么是消息队列 可以简单理解为存放消息的队列,数据结构模型和队列一样,都是先进先出。主要用不同线程(Thread)/进程(Process) 为什么需要消息队列 (1)不同进程之间传递消息是,因为进程的耦合度高,改动一个进程,引发…

基于SVPWM改进的永磁同步电机直接转矩控制二更

导读:本期对基于SVPWM的永磁同步电机直接转矩控制进行全面的分析和仿真搭建。之后与传统的DTC进行比较,凸显基于SVPWM改进的DTC方法的有效性。如果需要文中的仿真模型,关注微信公众号:浅谈电机控制,留言获取。一、 传统…

Long型数据后端查询结果为null,返回前端显示-1,使用@JsonSerialize注解

使用场景 在开发中,我们将对象序列化为JSON传输给前端,有时候我们的某个或者某些字段需要特殊处理,比如我们有一个日期字段,我们希望当日期为NULL时给前端不返回NULL而返回为未完成等信息,或者我们有一些状态字段&…

达梦数据库(DM8)集成使用 Geoserver(2.22.2) 以及其他对应版本详解

达梦数据库(DM8)集成使用 Geoserver(2.22.2) 以及其他对应版本详解系统环境版本Geoserver 驱动对应版本达梦 8 集成 Geoserver 过程试错过程问题总结项目需要国产化,选择使用达梦数据库,在技术测试阶段&…

K-近邻算法(KNN)

K-近邻算法(KNN) K nearest neighbour 0、导引 如何进行电影分类 众所周知,电影可以按照题材分类,然而题材本身是如何定义的?由谁来判定某部电影属于哪 个题材?也就是说同一题材的电影具有哪些公共特征?这些都是在进行电影…

美创科技荣获“PostgreSQL中国最佳运维服务商”

近日,由中国开源软件推进联盟PostgreSQL分会&中科院软件所&CSDN联合举办主办的“中国PostgreSQL数据库生态大会”在北京中科院软件所隆重召开。美创科技受邀参加,三位顶级数据库技术专家亮相,分享美创科技在数据库内核技术、PostgreS…

IMX6ULL学习笔记(17)——工程管理

一、简介 之前我们把所有源码文件放在一个文件夹下。 这样做存在两个主要问题,第一,代码存放混乱不易阅读。第二,程序可移植性差。如果工程源文件达到几十、甚至数百个的时候,这样一股脑全部放到根目录下就会使工程显得混乱不堪。…

STM32开发(13)----获取唯一设备标识符UID

获取唯一设备标识符UID前言一、什么事UID二、实验过程1.CubeMx配置2.代码实现3.实验结果总结前言 这一章节介绍如何获取STM32芯片中的唯一的ID号的两种方法。 一、什么事UID 在许多项目中,识别设备是必要的。从简单的设备描述到更复杂的设备,如 USB 串…

Open3d入门

目录 点云数据 1 主成分分析 1.1 Method 1.2 Results 2 表面法线估计 2.1 Method 2.2 Results 3 体素网格下采样 3.1 Method 3.2 Results 点云数据 常用数据下载(免积分) 1 主成分分析 1.1 Method 对点云进行主成分分析(PCA&…

[5/101] 101次面试之经典面试题

目录 01、什么是黑盒测试? 02、为什么要做黑盒测试? 03、你在软件生命周期中的哪些测试阶段用到过黑盒测试? 04、什么是白盒测试? 05、白盒测试与黑盒测试有什么区别? 06、为什么要对程序进行单元测试? 07、由谁来做单元测试&#…

RK3566添加湿度传感器以及浅析hal层

RK3566添加一款温湿度传感器gxht3x.挂在i2c总线下。驱动部分就不多做解析。大致流程硬件接好i2c线以及vcc gnd。后看数据手册。初始化寄存器,然后要读数据的话读那个寄存器,读出来的数据要做一个转化,然后实现open read write ioctl函数就行了。本文主要…