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