20.2. OptaWeb Vehicle Routing 后端模块


backend 模块包含一个服务器端应用程序,它使用 OptaPlanner 优化载体路由。优化是一个 CPU 密集型计算,必须避免任何 I/O 操作才能对其完整潜在的执行。由于其中一个目标是最大程度降低往返成本,无论是时间还是距离,OptaWeb Vehicle 路由会使传输成本信息保留在 RAM 内存中。OptaPlanner 需要了解用户输入的每一个位置之间的旋转成本。此信息存储在名为 距离列表的结构中

当您输入新位置时,OptaWeb Vehicle Routing 会计算新位置和目前输入的所有其他位置之间的旋转成本,并将传输成本存储在距离列表中。旋转成本计算由 GraphHopper 路由引擎执行。

后端模块实现以下额外功能:

  • Persistence
  • 前端的 websocket 连接
  • 数据集加载、导出和导入

要了解更多有关后端代码架构的信息,请参阅 第 21 章 optaweb Vehicle Routing 后端架构

下一节介绍了如何在开发模式下配置和运行后端。

20.2.1. 运行 OptaWeb Vehicle Routing 后端模块

您可以在 Quarkus 开发模式下运行后端模块。

先决条件

流程

  1. 将目录改为 rhbop-8.29.0-kogito-and-optaplanner-quickstarts/optaweb-8.29.0.Final-redhat-00009/optaweb-vehicle-routing/optaweb-vehicle-routing-backend
  2. 要在开发模式下运行后端,请输入以下命令:

    mvn compile quarkus:dev
    Copy to Clipboard Toggle word wrap

您可以使用 IntelliJ IDEA Ulitmate 运行 OptaWeb Vehicle Routing 后端模块,以便更轻松地开发您的项目。IntelliJ IDEA Ultimate 包含一个 Quarkus 插件,它为使用 Quarkus 框架的模块自动创建运行配置。

流程

使用 optaweb-vehicle-routing-backend 运行配置来运行后端。

其他资源

如需更多信息,请参阅 运行 Quarkus 应用程序

20.2.3. Quarkus 开发模式

在开发模式中,如果更改了后端源代码或配置,并且您刷新前端运行的浏览器标签页,后端会自动重启。

了解有关 Quarkus 开发模式 的更多信息

您可以临时或永久覆盖 OptaWeb Vehicle Routing 后端模块的默认系统属性值。

OptaWeb Vehicle Routing 后端模块系统属性存储在 /src/main/resources/application.properties 文件中。此文件在版本控制下。使用它永久存储默认配置属性值,并定义 Quarkus 配置集。

先决条件

流程

  • 要临时覆盖默认系统属性值,在运行 mvnjava 命令时包括 -D<PROPERTY>=<VALUE &gt ; 参数,其中 <PROPERTY > 是您要更改的属性值,<VALUE > 是您要临时分配给该属性的值。以下示例演示了如何在使用 Maven 在 dev 模式中编译 Quarkus 项目时,如何将 quarkus.http.port 系统属性的值临时改为 8181

    mvn compile quarkus:dev -Dquarkus.http.port=8181
    Copy to Clipboard Toggle word wrap

    这会临时更改存储在 /src/main/resources/application.properties 文件中的属性值。

  • 要永久更改配置值,例如存储特定于您的开发环境的配置,请将 env-example 文件的内容复制到 optaweb-vehicle-routing-backend/.env 文件中。

    此文件不包括在版本控制中,因此在克隆存储库时不存在该文件。您可以在 .env 文件中进行更改,而不影响 Git 工作树。

其他资源

有关 OptaWeb Vehicle Routing 配置属性的完整列表,请参阅 第 22 章 optaweb Vehicle Routing 后端配置属性

20.2.5. optaweb Vehicle Routing 后端日志记录

optaweb Vehicle Routing 使用 SLF4J API 和 Logback 作为日志记录框架。如需更多信息,请参阅 Quarkus - 配置日志记录

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat