30.4. 配置智能路由器行为


在具有多个 KIE 服务器的集群环境中,默认行为是并行向每个 KIE 服务器发送请求,每个 KIE 服务器的主机将使用"round-robin"方法发送请求。在以下示例中,每个 KIE 服务器都使用相同的 KJAR,但每个 KJAR 版本都不同:

Expand
表 30.1. 示例环境
服务器名称KJAR 版本主机

kie-server1

kjar:1.0 (alias=kjar, group-id=com.example, artifact-id=sample-kjar, version=1.0)

129.0.1.1, 129.0.1.2, 129.0.1.3

kie-server2

kjar:2.0 (alias=kjar, group-id=com.example, artifact-id=sample-kjar, version=2.0)

129.0.2.1, 129.0.2.2, 129.0.2.3

kie-server3

kjar:3.0 (alias=kjar, group-id=com.example, artifact-id=sample-kjar, version=3.0)

129.0.3.1, 129.0.3.2, 129.0.3.3

如果您发送请求,请求将发送到 kie-server1(129.0.1.2), kie-server2(129.0.2.3), 和 kie-server3(129.0.3.1)

如果您发送第二个请求,则该请求将发送到每个 KIE 服务器的下一主机。例如: kie-server1(129.0.1.3)、 kie-server2(129.0.2.1)kie-server3(129.0.3.2)

智能路由器有三个组件,您可以修改它们来更改此行为:

ContainerResolver
负责查找与服务器交互时要使用的容器 ID 的组件。
RestrictionPolicy
负责禁止智能路由器使用特定端点的组件。
ConfigRepository
负责维护智能路由器配置的组件。这主要与路由表相关。
IdentityService
负责使用您自己的身份提供程序的组件。这适用于 KIE 服务器实例。

智能路由器使用 ServiceLoader 程序来实现以下组件:

ContainerResolver
META-INF/services/org.kie.server.router.spi.ContainerResolver
RestrictionPolicy
META-INF/services/org.kie.server.router.spi.RestrictionPolicy
ConfigRepository
META-INF/services/org.kie.server.router.spi.ConfigRepository
IdentityService
META-INF/services/org.kie.server.router.identity.IdentityService

例如,对于以上情况,您可以自定义 ContainerResolver,使智能路由器搜索整个可用 KIE 服务器中的最新版本 KJAR 进程,并始终以该进程启动。这种情况意味着每个 KIE 服务器都托管一个 KJAR,每个版本都会共享相同的别名。

由于 Smart Router 是一个可执行 jar,所以要包括扩展,您需要修改 命令。例如:

java -cp LOCATION/router-ext-7.13.5.redhat-00002.jar:rhpam-7.13.5-smart-router.jar org.kie.server.router.KieServerRouter
Copy to Clipboard Toggle word wrap

启动该服务后,您会看到日志输出,说明用于组件的实现:

Mar 01, 2017 1:47:10 PM org.kie.server.router.KieServerRouter <init>
INFO: KIE Server router repository implementation is InMemoryConfigRepository
Mar 01, 2017 1:47:10 PM org.kie.server.router.proxy.KieServerProxyClient <init>
INFO: Using 'LatestVersionContainerResolver' container resolver and restriction policy 'ByPassUserNotAllowedRestrictionPolicy'
Mar 01, 2017 1:47:10 PM org.xnio.Xnio <clinit>
INFO: XNIO version 3.3.6.Final
Mar 01, 2017 1:47:10 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.3.6.Final
Mar 01, 2017 1:47:11 PM org.kie.server.router.KieServerRouter start
INFO: KieServerRouter started on localhost:9000 at Wed Mar 01 13:47:11 CET 2017
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部