ArcGIS GeoEvent Server10.7.1 使用RabbitMQ作为输入

0
分享 2020-08-22
ArcGIS GeoEvent Server
ArcGIS GeoEvent服务器通过支持实时GIS扩展了企业GIS的功能。GeoEvent服务器可以在您的日常GIS应用程序、工作流和分析中实现实时数据流和分析。使用GeoEvent服务器:
▪ 扩展现有的GIS数据和IT基础设施,支持实时事件处理。
▪ 将从实时事件接收的数据合并到ArcGIS企业工作流中。
▪ 对实时接收到的流数据进行连续处理和分析。
▪ 将实时观测到的大量数据存储在时空大数据仓库中。
▪ 使用动态实时数据聚合可视化大量实时观测。
▪ 通过实时更新和警报通知那些需要了解感兴趣模式的人。
▪ 生成新的数据流,这些数据流可以在整个ArcGIS平台中使用。
商业组织、运输经理、国防和情报分析员——任何需要利用流数据的用户——都可以使用GeoEvent服务器接收、分析和生成来自各种来源的流数据,包括移动设备、车载GPS设备、传感器网络、在线社交媒体、RFID标签、环境监视器等。
RabbitMQ
RabbitMQ是一个受欢迎且功能强大的开源和商业支持的消息服务器,它非常易于使用,支持大量开发人员平台,运行在所有主要操作系统上,并提供许多高级功能,让您在性能和可靠性之间进行权衡,包括持久性、交付确认,publisher确认,并提供高可用性。它是为高性能集群、客户机-服务器和基于对等的通信而设计的。
本教程来介绍下有关如何将外部RabbitMQ服务器与ArcGIS GeoEvent服务器集成的配置和使用过程。GeoEvent服务器团队创建了RabbitMQ连接器作为示例,允许您扩展GeoEvent服务器的功能,以处理与RabbitMQ的入站和出站通信。该教程在ArcGIS GeoEvent Server Gallery网站可以下载到,直接上链接http://www.arcgis.com/home/item.html?id=b1da75d6f2874c7ba31ef15c6da2e86b,大家进去下载Latest Release
ArcGIS GeoEvent Server中使用RabbitMQ作为输入的步骤包括:
▪ 安装并配置RabbitMQ。
▪ 将RabbitMQ连接器添加到GeoEvent服务器。
▪ 配置RabbitMQ连接器以接收文本消息。
▪ 配置RabbitMQ连接器以发送文本消息。
兼容性
此版本的用于GeoEvent服务器的RabbitMQ连接器与ArcGIS GeoEvent服务器10.4或更高版本兼容。连接器的版本不需要与您正在使用的ArcGIS GeoEvent服务器的版本匹配。
注意:GeoEvent服务器库中提供的ArcGIS GeoEvent服务器组件的发布策略已经更新。接下来,只有当组件出现问题、正在使用新功能进行增强或与新版本的ArcGIS GeoEvent Server不兼容时,才会创建新版本。此策略使这些自定义组件的升级更容易,因为除非发布了该连接器的新版本,否则不必为每个版本的ArcGIS GeoEvent服务器升级它们。最新版本的文档已更新,其中包括更新配置以符合此策略的说明。
一、安装和配置RabbitMQ测试环境
注意:本教程是针对Erlang 22.0和RabbitMQ 3.7.17。其他版本的Erlang/OTP和RabbitMQ还没有经过测试,也没有经过验证可以使用GeoEvent服务器的RabbitMQ连接器。
1、下载并安装Erlang/OTP 22.0。
下载地址:https://www.erlang.org/downloads
在Windows环境上需要:
(1)使用管理权限安装。
(2)安装到不包含空格的目录(例如:C:\ erlang\)。
(3) 配置系统环境变量
修改环境变量path,增加Erlang变量至path,

%ERLANG_HOME%\bin;

打开cmd命令框,输入erl

2、下载安装RabbitMQ 3.7.17。
官网下载地址:http://www.rabbitmq.com/download.html
RabbitMQ 3.7.17版本直接进入下面地址即可下载。
https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.17/rabbitmq-server-3.7.17.exe
在Windows环境,应该:
(1)使用管理权限安装。
(2)安装到不包含空格的目录(例如:C:\ rabbitmq\)

(3)将环境变量RABBITMQ_BASE设置为不包含空格的路径(例如:C:\ RABBITMQ)。


(4)启用RabbitMQ管理插件。
安装插件,切换至C:\rabbitmq\rabbitmq_server-3.7.17\sbin目录下输入命令:rabbitmq-plugins.bat enable rabbitmq_management,出现下面信息表示插件安装成功

输入 rabbitmqctl status

3、在浏览器中,导航到 http://localhost:15672/#/
4、在登录页面上,输入默认登录凭据(Username=guest,Password=guest),然后单击登录以开始管理RabbitMQ。

5、登录到RabbitMQ管理API之后,您将看到概述页面,如下所示。

6、接下来,您将创建一个新用户,用于将GeoEvent服务器连接到RabbitMQ服务器。
导航到“管理>添加用户”,然后在下面输入新用户凭据:
▪ 用户名=admin
▪ 密码=admin
▪ 单击Admin,将其标记为管理员。
▪ 完成后,单击“添加用户”。

7、一个名为admin的新用户将出现在所有用户列表中。
最后一步是授予新管理员用户访问根虚拟主机的权限。

8、单击admin 用户,然后在Permissions部分接受所有默认值,然后单击**“Set permission”**

9、admin 用户现在应该包含root Virtual hostcurrent permission

10、返回到主Admin 页面,All users列表现在应该如下所示。现在可以开始使用新的管理用户连接到RabbitMQ服务器了。

二、Geoevent部署RabbitMQ连接器
上面的步骤运行RabbitMQ实例后,现在可以导入GeoEvent服务器的RabbitMQ连接器以及允许您接收和发送JMS文本消息的配置文件。
1、添加RabbitMQ传输
可以选择下面两种方式以部署RabbitMQ传输。
选项1:通过GeoEvent管理器部署
注意:通过GeoEvent管理器部署自定义组件时存在已知问题。如果在尝试通过GeoEvent管理器进行部署时收到错误,请参阅下面的添加到部署文件夹的方式(选项2)。
1、打开GeoEvent manager并导航到站点>组件>传输。
2、单击“添加本地传输”,添加组件,然后单击“打开”。

3、单击“添加”将传输添加到GeoEvent服务器。如果传输添加成功,将显示确认消息。
注意:传输列表不会立即更新,GeoEvent服务器需要一些时间来加载自定义组件。如果刷新浏览器窗口,则新传输应显示在列表中。
4、验证RabbitMQ入站传输和RabbitMQ出站传输是否出现在可用传输列表中。
添加到GeoEvent服务器部署文件夹(选项2)
1、导航到GeoEvent服务器部署文件夹:
<arcgis server安装目录>\GeoEvent\deploy
2、将rabbitmq transport-.jar文件复制/粘贴到deploy文件夹。
3、打开ArcGIS地理事件管理器并导航到站点>组件>传输。
4、验证RabbitMQ入站传输和RabbitMQ出站传输是否出现在可用适配器列表中。

三、创建连接器,发布Geoevent服务
RabbitMQ传输可以与GeoEvent服务器提供的任何适配器一起使用。对于本教程,您将使用文本适配器(逗号分隔值)和上面添加的RabbitMQ传输创建连接器。您将创建一个接收事件的输入连接器和一个发送事件的输出连接器。
导入GeoEvent服务器配置
1、导航到“站点>geoevent>配置存储”,然后单击“导入配置”。
2、单击选择文件并浏览到本教程提供的…\configurations文件夹中的RabbitMQ_config.xml配置文件。
3、选择RabbitMQ_config.xml文件并单击“打开”。

4、单击Next,然后单击Import将配置导入到GeoEvent服务器。如果配置添加成功,将显示确认消息。

5、导航到站点>GeoEvent>组件并搜索rabbitmq,验证是否列出了发布文本到rabbitmq和接收来自rabbitmq连接器的文本。

6、单击编辑打开属性并浏览每个连接器。
也可以手动创建连接器具体可以参考下官网教程中的步骤。
创建RabbitMQ输入连接器
随着RabbitMQ传输部署到GeoEvent服务器并创建了输入和输出连接器,您就可以创建输入和输出,以便通过RabbitMQ发送/接收数据。
创建输入
1、在GeoEvent管理器中,导航到Services>Inputs并单击Add Input。
2、搜索rabbitmq并单击选择以选择从rabbitmq输入连接器接收文本。

3、设置从RabbitMQ输入连接器接收文本的属性,如下所示。

4、单击“保存”以创建新输入。输入中的rabbitmq文本应处于启动状态。
创建RabbitMQ输出连接器
1、在GeoEvent管理器中,导航到“服务>输出”,然后单击“添加输出”。
2、搜索rabbitmq并单击选择以选择发布文本到rabbitmq输出连接器。

3、属性设置,如下所示。

4、单击“保存”以创建新输出。rabbitmq文本输出应处于启动状态。
创建GeoEvent服务
1、在GeoEvent管理器中,导航到Services>GeoEvent Services并单击Add Service。
2、将新的GeoEvent服务命名为RabbitMQ并单击Create。
3、将rabbitmq文本输入和rabbitmq文本输出拖放到画布上,并如下图所示连接它们。
4、单击“发布”以发布新的RabbitMQ GeoEvent服务。

5、导航到Services>Monitor并确认GeoEvent服务、输入和输出启动并运行。
三、测试RabbitMQ连接器
接下来,您将创建GeoEvent服务发送和接收文本消息,并测试RabbitMQ配置。您将使用RabbitMQ管理控制台将消息发送到RabbitMQ文本输入,它将事件发送到RabbitMQ文本输出,然后将文本消息发送回出站交换机上的RabbitMQ。
通过发送文本消息进行测试
现在您可以通过系统发送文本消息,以确保GeoEvent服务器和RabbitMQ配置正确。
1、通过导航到:http://localhost:15672/#/exchanges打开RabbitMQ管理控制台。
2、导航到Exchanges选项卡并验证是否已创建入站和出站交换,如下所示。

3、单击入站exchange以查看与其关联的队列,并验证该队列是否如下图所示列出。

4、单击“Queue”->“Bindings”下的queue以打开Queue属性。
5、在Queue属性中,单击Publish message以展开属性。
6、将以下CSV格式的文本复制/粘贴到有效负载文本框。此信息为个人商业航班提供信息。
Flight,SWA2706,3/16/2012 02:25:30 PM,"-79.585739043999979,34.265521039000078",IAD,TPA,B733,37000
注意:此时一定要回车enter一下,将光标放在CSV格式文本下面,如下所示。需要确保GeoEvent服务器文本适配器(回车符)的消息分隔符包含在消息的末尾。不然发送的消息介入不到geoevent里面。

7、单击Publish message,然后在Overview页面上验证一条消息已成功发布(yellow line)到入站交换机,并且一条消息已传递(green line)到出站交换机,如下图所示。

8、在GeoEvent manager页面中,导航到服务>监控并验证:
▪ 输入中的rabbitmq文本只接收到一条消息。
▪ rabbitmq文本输出只发送了一条消息。
▪ RabbitMQ GeoEvent服务报告一个已接收事件和一个已发送事件。

此时就完成了ArcGIS GeoEvent Server10.7.1 使用RabbitMQ作为输入的基本操作。本篇参考官网链接手册地址:http://www.arcgis.com/home/item.html?id=b1da75d6f2874c7ba31ef15c6da2e86b

文章来源:https://blog.csdn.net/qq_40376439/article/details/104839808

0 个评论

要回复文章请先登录注册