先决条件

开始之前,请安装 Service Fabric SDK、Azure CLI,并在 Linux 开发环境中设置开发群集。 如果使用 Mac OS X,则可使用 Vagrant 在虚拟机中设置 Linux 开发环境

此外还需配置 Azure CLI 2.0(推荐)或 XPlat CLI,以便部署应用程序。

创建应用程序

Service Fabric 应用程序包含一个或多个服务,每个服务都在提供应用程序功能时具有特定角色。 适用于 Linux 的 Service Fabric SDK 包含 Yeoman 生成器,使用它可以轻松创建第一个服务并在以后添加更多服务。 此外,还可使用适用于 Eclipse 的插件创建、生成和部署 Service Fabric Java 应用程序。 请参阅使用 Eclipse 创建和部署第一个 Java 应用程序。 对于本快速入门,使用 Yeoman 创建具有单项服务的应用程序,该服务用于存储和获取获取计数器值。

  1. 在终端中,键入 yo azuresfjava
  2. 为应用程序命名。
  3. 选择第一个服务的类型并为其命名。 对于本教程,请选择“Reliable Actor 服务”。 有关其他服务类型的详细信息,请参阅 Service Fabric 编程模型概述

构建应用程序

Service Fabric Yeoman 模板包含 Gradle 的生成脚本,可用于从终端生成应用程序。 若要生成并打包应用程序,请运行以下命令:

bash复制
cd myapp
gradle

部署应用程序

生成应用程序后,可以将其部署到本地群集。

使用 XPlat CLI

  1. 连接到本地 Service Fabric 群集。

    bash复制
    azure servicefabric cluster connect
  2. 运行模板中提供的安装脚本可将应用程序包复制到群集的映像存储区、注册应用程序类型和创建应用程序实例。

    bash复制
    ./install.sh

使用 Azure CLI 2.0

部署生成的应用程序时,其方式与部署任何其他 Service Fabric 应用程序相同。 如需详细的说明,请参阅相关文档,了解如何使用 Azure CLI 管理 Service Fabric 应用程序

这些命令的参数可以在应用程序包内的生成清单中找到。

应用程序部署完以后,请打开浏览器并导航到 Service Fabric Explorer,其地址为 http://localhost:19080/Explorer。 然后,展开“应用程序”节点,注意现在有一个条目是用于应用程序类型,另一个条目用于该类型的第一个实例。

启动测试客户端并执行故障转移

执行组件本身不执行任何操作,它们需要其他服务或客户端向其发送消息。 执行组件模板包含简单的测试脚本,可用于与执行组件服务交互。

  1. 使用监视实用工具运行脚本,查看执行组件服务的输出。 测试脚本对角色调用 setCountAsync() 方法来递增计数器,对角色调用 getCountAsync() 方法来获取新的计数器值,并向控制台显示该值。

    bash复制
    cd myactorsvcTestClient
    watch -n 1 ./testclient.sh
  2. 在 Service Fabric Explorer 中,找到托管角色服务的主要副本的节点。 在以下屏幕截图中,该节点是节点 3。 主要服务副本处理读写操作。 然后将服务状态更改向外复制到次要副本,该副本在下方屏幕截图的节点 0 和 1 上运行。

  3. 在“节点”中,单击上一步找到的节点,然后从“操作”菜单中选择“停用(重启)”。 此操作重启运行主要服务副本的节点,并强制故障转移到在其他节点上运行的其中一个次要副本。 该次要副本将提升为主要副本,并在其他节点上创建另一次要副本,然后主要副本开始执行读/写操作。 节点重启时,请注意来自测试客户端的输出,并注意虽然发生故障转移,但计数器仍继续递增。

删除应用程序

使用模板中提供的卸载脚本可从群集的映像存储区删除应用程序实例、注销应用程序包并删除应用程序包。

bash复制
./uninstall.sh

在 Service Fabric Explorer 中,可看到应用程序和应用程序类型不再显示在“应用程序”节点中。

后续步骤

相关文章

在 Linux 上创建第一个 Service Fabric Java 应用程序的更多相关文章

  1. ASP.NET Core 中文文档 第二章 指南(1)用 Visual Studio Code 在 macOS 上创建首个 ASP.NET Core 应用程序

    原文:Your First ASP.NET Core Application on a Mac Using Visual Studio Code 作者:Daniel Roth.Steve Smith ...

  2. 在LINUX上创建GIT服务器【转】

    转自:http://blog.csdn.net/xiongmc/article/details/9176785 如果使用git的人数较少,可以使用下面的步骤快速部署一个git服务器环境. 1. Cli ...

  3. 在Linux上创建webrev(cont)[基于svn]

    在前文中,基于git介绍了webrev工具.实际上,webrev工具还支持hg和svn.最近的工作中不可避免地要使用svn,故在此总结一下如何基于svn在Linux上创建webrev.顺便吐个槽,没有 ...

  4. #内存不够,swap来凑# Linux上创建SWAP文件/分区

    转自:https://www.vmvps.com/how-to-create-a-swap-file-on-the-linux-os.html 很久很久以前,电脑的内存是个珍贵东西,于是乎就有了swa ...

  5. 如何在Linux上创建,列出和删除Docker容器

    本篇文章介绍的内容是关于在Linux机器上创建,列出和删除docker容器,下面我们来看具体的内容. 1.启动Docker容器 使用下面的命令启动新的Docker容器.这将启动一个新的容器,并为你提供 ...

  6. 【Azure 微服务】基于已经存在的虚拟网络(VNET)及子网创建新的Service Fabric并且为所有节点配置自定义DNS服务

    问题描述 创建新的Service Fabric集群,可以通过门户,Powershell命令,或者是ARM模板.但是通过门户和PowerShell命令时,创建的SF集群都会自动新建一个虚拟网络而无法使用 ...

  7. 【Java】一个简单的Java应用程序

    简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一 ...

  8. 一个简单的Java应用程序

    目录 一个简单的Java应用程序 首次运行结果 程序示例 运行结果 修改大小写之后的运行结果 程序示例 运行结果 关键字public 关键字class 类名及其命名规则 类名必须以字母开头 不能使用J ...

  9. 在 Linux 上创建虚拟机规模集和部署高度可用的应用

    利用虚拟机规模集,可以部署和管理一组相同的.自动缩放的虚拟机. 可以手动缩放规模集中的 VM 数,也可以定义规则,以便根据资源使用情况(如 CPU 使用率.内存需求或网络流量)进行自动缩放. 在本教程 ...

随机推荐

  1. Win7下C/C++跨平台开发工具IDE的安装之Eclipse-CDT

    2. win7下安装Eclipse-CDT运行C/C++程序: 下载Eclipse-CDT 64位:http://www.eclipse.org/downloads/packages/release/ ...

  2. External Tools

    Preferences偏好设置-External Tools External Tools: External Script Editor:外部脚本编辑器,通过此项可以切换您所擅用的脚本的编辑器 Ed ...

  3. linux下的小命令

    (1) 查看服务器的IP信息 ip add show ifconfig (2) 操作网卡命令(重启网络和启用网卡) cleasystemctl restart network systemctl st ...

  4. Android GPS应用(获取定位信息)

    1.介绍 2.使用方法 3.在AndroidManifest.xml文件中添加 <uses-permission android:name="android.permission.AC ...

  5. Kibana6.x.x源码分析--import相关说明

    /** * 模块的引入规则: * 不带路径的去node_modules中去找: * 带路径的去相应的路径中去找: * 模块可以不加后缀名,node会依次尝试.mjs..js..json..node 这 ...

  6. P3243 [HNOI2015]菜肴制作

    传送门 把时间看成数,菜肴看成位置 考虑一个位置填什么数很麻烦 考虑一个数放在什么位置 一开始我想的是,对于一个限制 $(a,b)$ ,从 $a$ 往 $b$ 连一条边,然后如果有解则所有的限制构成了 ...

  7. mysql--外键(froeign key)-----------MySQL外键使用详解

    如果一个实体的某个字段指向另一个实体的主键,就称为外键被指向的实体,称之为主实体(主表),也叫父实体(父表).负责指向的实体,称之为从实体(从表),也叫子实体(子表) 作用:用于约束处于关系内的实体增 ...

  8. n皇后问题--DFS输出棋盘

    N皇后问题 Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上.你的任务是,对 ...

  9. hdu2588 GCD

    GCD Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  10. PIE SDK应用掩膜

    1.算法功能简介 当对一幅图像应用掩膜时, 1 值的区域被保留, 0 值的区域被舍弃( 1 值区域被处理, 0 值区域被屏蔽不参与计算). PIE SDK支持算法功能的执行,下面对应用掩膜算法功能进行 ...