开源
Netty:一个事件驱动的异步网络应用框架
来源:元经纪     阅读:662
网站管理员
发布于 2023-06-20 06:55
查看主页

概述

Netty是一个异步事件驱动的网络应用程序框架,用于快速开发高性能、高可靠性的网络应用程序。

设置开发环境

使用64位操作系统

您必须使用 64 位操作系统。

安装必要的构建工具

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

您的计算机上必须安装来自AdoptOpenJDKAzul Systems等供应商的 64 位 OpenJDK 8 或更高版本、Apache Maven 3.1.1或更高版本以及Git 。 如果您使用的是 Linux,则必须安装以下软件包:
# yum install lsb-core autoconf automake libtool make tar \
              glibc-devel libaio-devel openssl-devel apr-devel \
              lksctp-tools

# apt-get install autoconf automake libtool make tar \
                  libaio-dev libssl-dev libapr1-dev \
                  lksctp-tools
或者,如果使用 MacOS:
brew install autoconf automake libtool openssl
并且需要注意git的配置。如果使用 Windows,当您签出代码时,LF 将自动转换为 CRLF:
git config --global core.autocrlf true
或者,如果使用 MacOS,当您提交代码时,CRLF 将自动转换为 LF:
git config --global core.autocrlf input
您还可以查看Building The Native Transports了解更多信息。 要构建 netty- tcnative (即,它是 BoringSSL 的一部分),还要安装cmake和软件包。Fedora/CentOS 上的和在Fedora EPEL存储库中可用。ninja-buildgolangninja-buildgolang

验证构建

然后检查代码,并验证您的构建环境是否适用于./mvnw install -DskipTests -T1C. 这也准备好您的本地 Maven 缓存,允许您稍后构建单独的模块。

设置 IntelliJ IDEA

Netty 项目团队使用IntelliJ IDEA作为主要 IDE,但只要您遵守我们的编码风格,我们也可以使用其他开发环境。

使用与您的操作系统相同的版本

如果您使用的是 64 位操作系统,请使用 64 位版本的 IntelliJ IDEA。例如,开始菜单快捷方式指向 32 位二进制文​​件,即使您使用的是 64 位 Windows。您必须idea64.exe在安装目录中找到并使用它。否则,您会看到 IntelliJ IDEA 抱怨找不到io.netty:netty-tcnative:windows-x86_32

取消选中Use --release …编译器设置

Netty 4.1 及更早版本将 Java 6 作为所需的最低 Java 版本,因此需要编译为 Java 6 字节代码。但是,为了提高性能,代码库还包括对更新的 Java API 的引用,并通过运行时版本检查进行适当保护。出于这个原因,Netty 必须使用--source--target标志进行编译,但 IntelliJ 默认情况--release下会使用较新的标志,这也启用了 API 版本检查。 使用该--release标志会导致 IntelliJ 在构建 Netty 项目时产生编译错误,因此必须在Compiler Settings 对话框中将其禁用。

代码风格

下载此代码样式配置并解压缩Netty project.xml<IntelliJ config directory>/codestyles目录中。选择“Netty 项目”作为默认代码风格。

检验概况

下载、解压缩并将此检查配置文件导入您的 IntelliJ IDEA,并将其用作默认配置。请参阅此处以了解如何导入检查配置文件。 确保您的修改不会引入任何检查警告。如果您认为这是误报,请按照 IDE 的指导使用@SuppressWarnings注释或行注释来抑制警告。noinspection有关使用检查器的更多信息,请参阅Web 帮助页面

版权简介

版权文字:
Copyright $today.year The Netty Project

The Netty Project licenses this file to you under the Apache License,
version 2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at:

  https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
用于检测评论中版权的关键字:
The Netty project licenses
如果旧版权包含以下内容,则允许替换版权:
The Netty project licenses

使用 M2E 和 Java 7/8 设置 Eclipse

  1. 确保您使用的是 64 位版本的 Eclipse。
  2. 下载 os-maven-plugin并将其放入<ECLIPSE_INSTALLATION_DIR>/plugins(Eclipse 4.5) 或<ECLIPSE_INSTALLATION_DIR>/dropins(Eclipse 4.6) 目录以解决 m2e 不评估我们的pom.xml. (与其名称不同,它既是 Maven 插件又是 Eclipse 插件。)
  3. 通过“文件 → 导入... → 现有 Maven 项目”菜单导入项目。
  4. Netty 项目 Mavenpom.xml设置指示使用 Java SE 1.6,同时隐式使用 Java 7/8 (1.7/1.8) 功能(如果存在)。这可能会导致 Eclipse 中出现编译错误。有两种方法可以解决此问题:
  5. 查看“窗口→首选项→已安装的 JRE”菜单:* 确保在“已安装的 JRE”下安装了 Java 7/8 * 将此 Java 7/8 安装映射到 Java 6:“已安装的 JRE → 执行环境 → Java SE” 1.6'
  6. 或者,可以在每个项目的基础上为每个 Netty 模块选择 Java 7/8 JRE。

链接

详细信息

有关构建和开发 Netty 的详细信息,请访问开发人员指南。此页面仅提供非常基本的信息。

您需要以下内容来构建 Netty:

请注意,这是构建时要求。JDK 5(用于 3.x)或 6(用于 4.0+ / 4.1+)足以运行基于 Netty 的应用程序。

分支机构看

所有版本的开发都发生在名称与 相同的每个分支中<majorVersion>.<minorVersion>。例如,3.9 和 4.1 的开发分别驻留在分支“3.9”分支“4.1”中。

使用 JDK 9+

Netty 可以作为自动模块的集合用于模块化的 JDK9+ 应用程序中。模块名称遵循反向 DNS 样式,并且由于历史原因来自子项目名称而不是根包。它们如下所列:

  • io.netty.all
  • io.netty.buffer
  • io.netty.codec
  • io.netty.codec.dns
  • io.netty.codec.haproxy
  • io.netty.codec.http
  • io.netty.codec.http2
  • io.netty.codec.memcache
  • io.netty.codec.mqtt
  • io.netty.codec.redis
  • io.netty.codec.smtp
  • io.netty.codec.socks
  • io.netty.codec.stomp
  • io.netty.codec.xml
  • io.netty.common
  • io.netty.handler
  • io.netty.handler.proxy
  • io.netty.resolver
  • io.netty.resolver.dns
  • io.netty.transport
  • io.netty.transport.epollnative省略 - Java 中的保留关键字)
  • io.netty.transport.kqueuenative省略 - Java 中的保留关键字)
  • io.netty.transport.unix.commonnative省略 - Java 中的保留关键字)
  • io.netty.transport.rxtx
  • io.netty.transport.sctp
  • io.netty.transport.udt

自动模块不提供任何声明依赖关系的方法,因此您需要在module-info文件中单独列出每个使用的模块。

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
Presto:用于大数据的分布式 SQL 查询引擎
格力高管再回应董明珠健康家:经销商反应很积极 今年计划改造3000家门店
神秘骁龙8gen4中杯“均衡小钢炮”规格曝光
小米:SU7经历过大量安全碰撞测试 远超标准
海上皇宫将改造成“海洋元宇宙”

首页

分类

定制方案

消息

我的