前言
本文主要做了一件事,通过kafka横向扩展GeoEvent Server,构建GeoEvent+kafka集群部署。这件事有两个作用,其一,利用多台GeoEvent提高数据的吞吐量。其二,利用kafka集群的机制来提高GeoEvent Server软件的鲁棒性。
GeoEvent Server是用来实时接入的GIS数据的GIS实时服务器。而对于实时服务器来说,最重要的是系统的鲁棒性(Robustness)。什么是鲁棒性?鲁棒是Robust的音译,也就是健壮和强壮的意思。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持其它某些性能的特性。
自从Esri不推荐使用GeoEvent Server集群,而推荐采用GeoEvent Server单机部署后,GeoEvent Server的鲁棒性就成了用户关注的焦点。而现在,GeoEvent团队提供了一个方案,用来提高GeoEvent的鲁棒性以及横向扩展GeoEvent的能力。地址:http://www.arcgis.com/home/item.html?id=89048b1cfdda4a71a9b2b334fe8c8cc9
此教程旨在发布5篇文章,来分别叙述以下五个章节。本文为第一节。GeoEvent弹性扩展架构
目录
1 GeoEvent弹性扩展架构
这一部分的目的是建立企业和ArcGIS的多个节点上,将在整个教程的其余部分使用ArcGIS GeoEvent Server。
2 熟悉事件中心概念(Apache Kafka)
本节中的练习将帮助您安装和探索事件调度中心的特性,包括使用多个broker进行冗余和伸缩。
3 安装和配置一个分布式事件调度中心(Apache Kafka)
本节基于前一节,将指导您在三个节点上安装和配置分布式事件调度中心。在本教程中,您将在3台已配置的GeoEvent Server节点上安装事件调度中心。
4 配置GeoEvent Server启用分布式事件调度中心
本节的目的是在一个分布式的事件调度中心完成GeoEvent Server配置。具体来说,你将学习如何使用Kafka 连接器配置GeoEvent Server接收消费从Apache Kafka生产的信息。 自定义连接器可在ArcGIS GeoEvent Gallery找到。
5 探讨了GeoEvent Server利用分布式事件调度中心(Apache Kafka)实现鲁棒性
最后,在本节中,您将测试你的GeoEvent Server和kafka部署的鲁棒性,通过试验丢失brokers和丢失consumers,确保预期的消息仍然被接收并存储在系统中。
正文
1 GeoEvent弹性扩展架构
在本节中,您将配置五个节点的部署,整个教程都将使用这套环境作为横向伸缩扩展GeoEvent服务器的环境。下面的练习假设您有五台机器的管理权限和必要的ArcGIS软件,包括每个产品的必要许可。
这些练习将根据以下描述参考部署中的不同节点。
注意:您需要以适当的方式替换您自己机器的完全限定域名。
▪ ArcGIS Enterprise →machine1
▪ Spatiotemporal big data store →machine2
▪ GeoEvent Server 1 →machine3
▪ GeoEvent Server 2 →machine4
▪ GeoEvent Server 3 →machine5
机器1和机器2:安装配置ArcGIS Enterprise。配置一个时空类型的Datastore
ArcGIS Enterprise安装过程:http://zhihu.esrichina.com.cn/article/2883 。安装配置过程不再赘述,如果是10.5.1可以使用一键安装。需要注意的是将ArcGIS Server、Portal、WebAdapter三者的https需要的证书统一。
机器3-5:安装和配置ArcGIS GeoEvent Server
1.分别独立安装ArcGIS GeoEvent Server并配置WebAdapter。统一Server和WebAdapter的证书。
2.在ArcGIS Enterprise中,联合机器3-5的ArcGIS GeoEvent Server。我的组织→EDIT SETTINGS→Servers→Federated Server 点击 ADD SERVER
3.在3机器,确认已联合。
a.重启ArcGIS GeoEvent Server windows服务
b.打开GeoEvent Manager 确认通过portal账户登录。
c.访问站点→配置存储 点击 重置配置。
d.访问站点→DataStores 验证PORTAL类型的Default 连接,状态为无效。
e.点击编辑连接,输入portal管理员账户的用户名密码
f.点击注册,Default连接现在变成了有效的状态。
g.访问站点→Spatiotemporal Big Data Stores 确认GeoEvent Server识别了Default连 接下的时空大数据存储。
4.在3-5机器重复以上步骤。
恭喜你,你已经拥有了一套用于横向扩展GeoEvent Server的5节点的软件环境。这套架构只是作为一个基础架构的样例,在实际应用中,你可能会需要多个Datastore。多个Datastore直接注册到ArcGIS Enterprise中的ArcGIS Server上即可。不会对此架构造成任何影响。
这套架构在部署时,最需要注意的是证书问题。由于在测试环境下使用的是自签名证书,又由于环境的安全级别比较高。最好的做法是,统一证书,并且使各台计算机都安装信任此证书。如果你没有提前统一证书,非常幸运,也有相应的补救措施来让这套架构能够运行。GeoEvent伸缩扩展没有三证统一的补救措施http://www.jianshu.com/p/b07c4439b5d6
在下一节中,将向你介绍事件调度中心(Apache Kafka)的概念。并应用单节点的kafka来做一些实验,来帮助你理解kafka的消息事件调度机制,以及启发你将此机制和GeoEvent事件处理进行联想。