第 30 章 安装和配置智能路由器
智能路由器(KIE 服务器路由器)是一个轻量级 Java 组件,您可以用作多个 KIE 服务器、客户端应用程序和其他组件之间的集成层。根据您的部署和执行环境,智能路由器可以聚合多个独立的 KIE 服务器实例,就像它们是单一服务器一样。智能路由器提供以下功能:
- 数据聚合
- 当有客户端应用程序请求时,从所有 KIE 服务器实例(一个实例)收集数据,并汇总单个响应。
- 路由
- 作为一个单一端点,它接收从客户端应用程序到任何服务的调用,并将每个调用自动路由到运行特定服务的 KIE 服务器。这意味着 KIE 服务器不需要部署相同的服务。
- 负载平衡
- 提供有效的负载平衡。智能路由器集群的负载均衡请求必须使用标准负载平衡工具从外部管理。
- 身份验证
- 使用系统属性标志验证 KIE 服务器实例,并可启用 HTTPS 流量。
- 环境管理
- 管理更改环境,例如添加或删除服务器实例。
30.1. 使用智能路由器进行负载均衡 KIE 服务器实例 复制链接链接已复制到粘贴板!
您可以使用智能路由器来聚合多个独立的 KIE 服务器实例,就像它们是一个单一服务器一样。它执行智能负载平衡器的角色,因为它可以将请求路由到单独的 KIE 服务器实例,并从不同的 KIE 服务器实例聚合数据。智能路由器使用别名作为代理执行。
先决条件
安装了多个 KIE 服务器实例。
注意您不需要将 KIE 服务器配置为智能路由器的非受管服务器。
非受管 KIE 服务器不连接到控制器。例如,如果您将非受管 KIE 服务器连接到智能路由器,并将智能路由器注册到控制器,则 Business Central 通过使用智能路由器联系非受管 KIE 服务器。
流程
导航到红帽客户门户网站中的 Software Downloads 页面(需要登录),然后从下拉菜单中选择产品和版本:
- 产品 :流程自动化管理器
- Version: 7.11
- 下载 Red Hat Process Automation Manager 7.11.0 附加组件。
-
将下载的
rhpam-7.11.0-add-ons.zip
文件提取到临时目录中。rhpam-7.11.0-smart-router.jar
文件位于提取的rhpam-7.11.0-add-ons
目录中。 -
将
rhpam-7.11.0-smart-router.jar
文件复制到您要运行该文件的位置。 输入以下命令启动智能路由器:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上一命令中的属性具有以下默认值:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow org.kie.server.controller
是服务器控制器的 URL,例如:org.kie.server.controller=http://<HOST>:<PORT>/controller/rest/controller
org.kie.server.controller=http://<HOST>:<PORT>/controller/rest/controller
Copy to Clipboard Copied! Toggle word wrap Toggle overflow org.kie.server.router.config.watcher.enabled
是一个可选设置,以启用 watcher 服务系统属性。-
在必须连接到智能路由器的每个 KIE 服务器实例上,将
org.kie.server.router
系统属性设置为 Smart Router URL。 要从客户端访问智能路由器,请使用 Smart Router URL 而不是 KIE Server URL,例如:
KieServicesConfiguration config = KieServicesFactory.newRestConfiguration("http://smartrouter.example.com:9000", "USERNAME", "PASSWORD");
KieServicesConfiguration config = KieServicesFactory.newRestConfiguration("http://smartrouter.example.com:9000", "USERNAME", "PASSWORD");
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,m
router.example.com
是智能路由器 URL,USERNAME
和PASSWORD
是智能路由器配置的凭据。要在 umanaged KIE 服务器中创建新容器,以便您可以使用示例数据填充它,请发送以下 HTTP 请求:
curl -v -X POST -H 'Content-type: application/xml' -H 'X-KIE-Content-Type: xstream' -d @create-container.xml -u ${KIE_CRED} http://${KIE-SERVER-HOST}:${KIE-SERVER-PORT}/kie-server/services/rest/server/config/
$ curl -v -X POST -H 'Content-type: application/xml' -H 'X-KIE-Content-Type: xstream' -d @create-container.xml -u ${KIE_CRED} http://${KIE-SERVER-HOST}:${KIE-SERVER-PORT}/kie-server/services/rest/server/config/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看
create-container.xml
文件的内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 智能路由器控制台中会显示有关已部署容器的消息。例如:
INFO: Added http://localhost:8180/kie-server/services/rest/server as server location for container example:timer-test:1.1
INFO: Added http://localhost:8180/kie-server/services/rest/server as server location for container example:timer-test:1.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要显示容器列表,请输入以下命令:
curl http://localhost:9000/mgmt/list
$ curl http://localhost:9000/mgmt/list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此时会显示容器列表:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用智能路由器 URL 启动进程,请输入以下命令:
curl -s -X POST -H 'Content-type: application/json' -H 'X-KIE-Content-Type: json' -d '{"timerDuration":"9s"}' -u kieserver:kieserver1! http://localhost:9000/containers/example:timer-test:1.1/processes/timer-test.TimerProcess/instances
$ curl -s -X POST -H 'Content-type: application/json' -H 'X-KIE-Content-Type: json' -d '{"timerDuration":"9s"}' -u kieserver:kieserver1! http://localhost:9000/containers/example:timer-test:1.1/processes/timer-test.TimerProcess/instances
Copy to Clipboard Copied! Toggle word wrap Toggle overflow