关于java:翻译Reactor-Netty参考指南-2入门指南

6次阅读

共计 4215 个字符,预计需要花费 11 分钟才能阅读完成。

Reactor Netty 参考指南目录


原文地址

这一章节蕴含的内容应该能够帮忙到您开始应用Reactor Netty,蕴含内容如下:

  • 介绍 Reactor Netty
  • 前提条件
  • 理解 BOM 和版本计划
  • 获取 Reactor Netty

2.1. 介绍 Reactor Netty

适宜于微服务架构,Reactor NettyHTTP(包含 Websocket),TCPUDP提供了反对背压的网络引擎。

2.2. 前提条件

Reactor Netty须要运行在 Java 8 及以上的版本上。

它须要依赖于以下组件:

  • Reactive Streams v1.0.3
  • Reactor Core v3.x
  • Netty v4.1.x

2.3. 理解 BOM 和版本计划

Reactor NettyProject Reactor BOM 的一部分(自从 Aluminium 公布以来)。将那些能更好的协同单干的 artifacts 分为一组,提供相干的版本,只管这些 artifacts 中有可能有不同的版本计划。

版本计划在 0.9.x 到 1.0.x 之间(Dysprosium 和 Europium)扭转了。

Artifacts 遵循 MAJOR.MINOR.PATCH-QUALIFIER 的版本计划,而 POM 则受 CalVer 的启发应用 YYYY.MINOR.PATCH-QUALIFIER 的版本计划,其中:

  • MAJOR是以后一代的 Reactor,每一代新的 Reactor 都可能会给我的项目构造带来根本性的变动(意味着可能会有很重大的迁徙工作)。
  • YYYY是在给定公布周期中第一次公布 GA 版本的年份。(例如 1.0.x 的 1.0.0)
  • .MINOR是从 0 开始,每次新的公布周期则递增的数字

    • 对于我的项目来说,个别会有比拟大的扭转,并且可能会有适度的迁徙工作
    • 对于 BOM 来说,容许在两个同年首次公布的状况下辨别公布周期
  • .PATCH是从 0 开始,每次服务公布的时候递增的数字
  • -QUALIFIER是一个文本修饰词,在 GA 版本中被省略掉了(见下文)

遵循这一常规的第一公布周期是 2020.0.x,代号Europium。该计划应用了以下限定词(留神应用破折号分隔),程序如下:

  • -M1..-M9:里程碑(咱们预计每次服务版本的公布不会超过 9 个)
  • -RC1..-RC9:候选版本(咱们预计每次服务版本的公布不会超过 9 个)
  • -SNAPSHOT:快照
  • 没有 GA 版本公布的限定词

快照在以上类型中是最先公布的,因为在任何 PATCH 里他们永远是”最新的预发行版本“。只管一个 PATCH 周期第一个部署的 artifact 永远是一个 -SNAPSHOT,类似的名字,然而更多最新的快照也会在一个里程碑之后公布或者两个候选版本之间公布。

每个公布周期都有一个代号,连续之前的代号计划,能够在非正式的状况下应用(例如在探讨的时候,博客文章中等等)。这个代号代表着传统意义上的 MAJOR.MINOR 编号。他们(大多数)来自元素周期表,按字母程序递增。

直到 Dysprosium,BOM 的版本公布计划都是依照一个代号前面加上一个修饰符的形式,并且限定词只是略微有所不一样。例如:Aluminium-RELEASE (第一个 GA 版,当初应该是像 YYYY.0.0 这样的), Bismuth-M1, Californium-SR1 (服务公布当初应该是像 YYYY.0.1 这样的), Dysprosium-RC1, Dysprosium-BUILD-SNAPSHOT (每次打完补丁之后,咱们都会回到雷同的快照版本。当初应该是像 YYYY.0.X-SNAPSHOT 这样的,所以咱们每个 PATCH 一个快照)

2.4. 获取 Reactor Netty

正如咱们之前提到的,最简略的形式去应用 Reactor Netty 是去应用 BOM 并且在您的我的项目中增加相干的依赖。留神,当增加这种依赖关系的时候,不要指定版本,以便从 BOM 中获取版本。

当然,如果您想强制应用指定的版本,您能够在增加依赖的时候指定您想用的版本。您也能够不应用 BOM 的形式,间接应用指定版本的依赖。

2.4.1.Maven 装置

Maven 自身就反对 BOM。首先,您须要在pom.xml 增加以下配置来引入 BOM。如果 pom 中曾经有dependencyManagement 节点了,则只须要间接在外面增加配置。

<dependencyManagement> <1>
    <dependencies>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-bom</artifactId>
            <version>Dysprosium-SR10</version> <2>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<1> 留神 dependencyManagement 节点。这个是在 dependencies 节点里面的。

<2> 截至写该文档的时候,Dysprosium-SR10是最新的 BOM 版本。拜访 https://github.com/reactor/re… 查看更新。

接下来,在相干的响应式我的项目中增加依赖,像平常一样(除了没有 <version> 节点),如下:

<dependencies>
    <dependency>
        <groupId>io.projectreactor.netty</groupId>
        <artifactId>reactor-netty-core</artifactId> <1>
        <2>
    </dependency>
</dependencies>
<dependencies>
    <dependency>
        <groupId>io.projectreactor.netty</groupId>
        <artifactId>reactor-netty-http</artifactId>
    </dependency>
</dependencies>

<1> 增加 Reactor Netty 依赖

<2> 没有 version 节点

2.4.2.Gradle 装置

从 Gradle 5 版本开始反对 BOM。上面是引入BOM 并且增加 Reactor Netty 依赖的例子:

dependencies {
    // import a BOM
    implementation platform('io.projectreactor:reactor-bom:Dysprosium-SR10') <1>

    // define dependencies without versions
    implementation 'io.projectreactor.netty:reactor-netty-core' <2>
    implementation 'io.projectreactor.netty:reactor-netty-http'
}

<1> 截至写该文档的时候,Dysprosium-SR10是最新的 BOM 版本。拜访 https://github.com/reactor/re… 查看更新。

<2> 这里没有第三局部:版本是独自的局部。从 BOM 中获取。

2.4.3. 里程碑和快照

里程碑和开发者预览版是通过 Spring Milestones 仓库而不是 Maven Central 来散发的。要将其增加到您的构建配置文件中,请应用以下代码段:

Milestones in Maven

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones Repository</name>
        <url>https://repo.spring.io/milestone</url>
    </repository>
</repositories>

如果是Gradle,请应用以下代码段:

Milestones in Gradle

repositories {maven { url 'https://repo.spring.io/milestone'}
    mavenCentral()}

2.5. 反对和政策

以下条目标镜像请拜访 https://github.com/reactor/.g…

2.5.1. 您是否还有问题?

首先在 Stack Overflow 中查看问题,如果有必要则开始探讨

如果您不确定为什么没有成果,或者想晓得是否有更好的形式去实现,请先在 Stack Overflow 上查看问题,如果有必要则开始探讨。应用如下的相干的标签:

  • reactor-netty 对于 reactor-netty 的问题
  • project-reactor 对于个别的响应式问题

如果您更喜爱实时探讨的话,咱们也有几个Gitter 频道

  • reactor 历史上最沉闷的一个,大多数社区都能够在这里提供帮忙
  • reactor-core 针对外部代码库更高级的准确探讨
  • reactor-netty 针对 netty 相干的问题

参考每个我的项目的 README 文件来获取其余的信息起源。

咱们通常不激励通过创立 GitHub issue 来问问题,倡议应用以上两种形式来问问题。

2.5.2. 咱们的 弃用 政策

在弃用的解决上,例如一个版本A.B.C,咱们会确保:

  • A.B.0 版本中弃用的局部不会在 A.B+1.0 版本 之前 被删除
  • A.B.1 版本中弃用的局部不会在 A.B+2.0 版本 之前 被删除
  • 咱们会致力在废除的 javadoc 中提及如下内容:

    • 被删除的最低版本
    • 指明这个不举荐应用的办法的代替办法
    • 办法被标记为弃用的版本

    本政策自 2021 年 1 月起正式施行,实用于 2020.0 BOMs 和更新版本中的所有模块,以及Dysprosium-SR15 之后的 Dysprosium 版本。

    删除弃用不是硬性承诺,并且被弃用的办法 可能会比那些最小的 GA 版本存在的更久(意思是:只有问题最重大的被弃用的办法才会被及时删除)。

    也就是说,被弃用的代码过了须要被删除的最小版本之后,可能会在后续的任何版本中被删除(包含补丁版本,也就是服务版本),并且不会在进行告诉。所以使用者还是应该尽早的批改本人的代码。

Suggest Edit to “Getting Started”


Reactor Netty 参考指南目录


版权申明:如需转载,请带上本文链接、注明起源和本申明。否则将查究法律责任。https://www.immuthex.com/posts/reactor-netty-reference-guide/getting-started

正文完
 0