快速入门:将 Java 应用部署到 Linux 上的 Azure Service Fabric

在本快速入门中,你将在 Linux 开发人员计算机上使用 Eclipse IDE 将 Java 应用程序部署到 Azure Service Fabric。 完成后,将生成一个带 Java Web 前端的投票应用程序,用于将投票结果保存到群集的有状态后端服务中。

Azure Service Fabric 是一款分布式系统平台,可用于部署和管理微服务和容器。

先决条件

下载示例

在命令窗口中,运行以下命令,将示例应用程序存储库克隆到本地计算机。

git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.git

在本地运行应用程序

  1. 通过运行以下命令来启动本地群集:

    sudo /opt/microsoft/sdk/servicefabric/common/clustersetup/devclustersetup.sh
    

    启动本地群集需要一些时间。 若要确认群集已完全启动,请访问 Service Fabric Explorer(网址:http://localhost:19080)。 5 个节点均正常即表示本地群集运行正常。

    Azure Service Fabric Explorer 显示运行正常的节点

  2. 打开 Eclipse。

  3. 选择“文件”>“导入”>“Gradle”>“现有 Gradle 项目”,并按照向导进行操作。

  4. 选择“目录”,然后在从 GitHub 克隆的 service-fabric-java-quickstart 文件夹中选择 Voting 目录。 选择“完成”。

    将 Gradle 项目导入 Eclipse

  5. Eclipse 的包资源管理器中现拥有 Voting 项目。

  6. 右键单击该项目并选择“Service Fabric”下拉列表中的“发布应用程序”。 选择“PublishProfiles/Local.json”作为目标配置文件,然后选择“发布”

    Azure Service Fabric 发布本地 JSON

  7. 打开喜欢的 Web 浏览器并访问应用程序(网址:http://localhost:8080)。

    Azure Service Fabric 本地主机

现在可以添加一组投票选项,并开始进行投票。 此应用程序可以运行,并将所有数据存储到 Service Fabric 群集中,而无需单独提供数据库。

Azure Service Fabric 投票示例

在群集中缩放应用程序和服务

可跨群集缩放服务来适应服务负载的变化。 可以通过更改群集中运行的实例数量来缩放服务。 有许多方法可以缩放服务。 例如,可以通过 Service Fabric CLI (sfctl) 使用脚本或命令。 以下步骤使用 Service Fabric Explorer。

Service Fabric Explorer 在所有 Service Fabric 群集中运行,并且可以通过浏览到群集的 HTTP 管理端口 (19080) 从浏览器进行访问。 例如 http://localhost:19080

若要缩放 Web 前端服务,请执行以下操作:

  1. 在群集中打开 Service Fabric Explorer。 例如 https://localhost:19080

  2. 在树视图中选择“fabric:/Voting/VotingWeb”节点旁边的省略号 (...),再选择“缩放服务”

    在 Azure Service Fabric 中缩放服务

    现在可以缩放 Web 前端服务的实例数量。

  3. 将数字更改为 2,选择“缩放服务”

  4. 在树视图中选择“fabric:/Voting/VotingWeb”节点,再展开分区节点(由 GUID 表示)。

    在 Azure Service Fabric 中缩放服务

    现在可以看到,服务有两个实例。在树视图中可以查看实例的运行节点。

通过这一简单的管理任务,你已让前端服务用来处理用户负载的资源数量翻了一番。 有必要了解的是,服务无需多个实例便能可靠运行。 如果服务出现故障,Service Fabric 可确保在群集中运行新的服务实例。

后续步骤

在此快速入门中,读者学习了如何:

  • 使用 Eclipse 处理 Service Fabric Java 应用程序
  • 将 Java 应用程序部署到本地群集
  • 跨多个节点横向扩展应用程序

若要详细了解如何在 Service Fabric 中使用 Java 应用,请继续学习适用于 Java 应用的教程。