[关闭]
@liyuj 2017-06-13T15:34:47.000000Z 字数 5756 阅读 4559

Apache-Ignite-2.0.0-中文开发手册

1.Ignite Web控制台的功能

1.1.集群配置

1.1.1.摘要

在Web控制台的配置选项卡中,可以为自己的Ignite项目高效地创建配置文件和代码片段,也可以配置Ignite集群、缓存,从任意RDBMS中导入领域模型,它还支持JDBC驱动,并且可以生成OR映射配置和POJO类。

1.1.2.集群

在控制台中,可以对集群进行各种常规或者高级的配置,方便起见,Web控制台以Spring的XML格式以及Java源文件的形式创建这些配置,然后可以将其下载,或者拷贝进自己的工程。

1.1.3.模型

为了加速配置文件的创建,控制台可以接入数据库然后导入模式、配置索引类型以及自动化地生成所有必要的XML OR映射配置和Java领域模型POJO。Ignite可以与任意支持JDBC驱动的RDBMS集成-包括Oracle、PostgreSQL、Microsoft SQL Server以及MySQL。

1.1.4.缓存

控制台可以快速地创建和配置Ignite缓存,可以配置内存参数,持久化,还可以配置与集群关联的多个缓存的各种高级参数。

1.1.5.IGFS

还可以配置Ignite的内存文件系统,可以在已有的缓存结构中处理文件和目录。IGFS即可以工作于纯内存文件系统中,也可以对接其他的文件系统(比如各种Hadoop文件系统实现)作为一个缓存层,另外,IGFS还提供了在文件系统数据中执行MapReduce任务的API。

1.1.6.配置总结

使用控制台的总览特性,可以下载一个开箱即用的基于Maven的工程,它包含了XML格式和Java的配置,还有Java领域模型POJO,还可以拷贝这些配置和POJO到自己已有的工程。控制台还可以生成一个Docker的配置文件,可以用其生成一个Ignite Docker映像。

1.2.自动化RDBMS集成

Ignite的Web控制台可以配置所有的集群属性,并且在与持久化存储集成时还可以从数据库导入模式,控制台会接入指定的数据库然后生成所有必要的OR映射配置文件(XML和纯Java)以及Java领域模型POJOs。
Ignite还有一个org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStore,这是IgniteCacheStore接口的一个开箱即用的JDBC实现,它可以自动化地处理所有的通读和通写逻辑。

1.2.1.工作方式

一个专门的应用-ignite-web-agent,需要在RDBMS端启动,该应用会收集数据库模式元数据,然后将其发送给Ignite的Web控制台。

1.2.2.数据库模式导入

在浏览器中打开部署在GridGain的IgniteWeb控制台实例然后登录,或者也可以构建和部署一个自己的Web控制台实例。

Web控制台部署和Logo
为了简化,使用了一个已经部署的Web控制台实例,这个实例部署在GridGain的基础设施上,并且将GridGain的logo嵌入作为主界面的一部分,在本文档的所有截图中,也会看到这个logo,注意可以将Web控制台部署到任意主机,也可以使用其他的logo。

1.配置Ignite集群
Clusters界面中创建一个集群:

2.配置领域模型
打开Model界面然后点击Import from database按钮:

如果Ignite的WebAgent还没有启动,Web控制台会显示一个对话框来提示下载WebAgent然后启动它,WebAgent需要部署在可以访问要导入模式的数据库所在的主机上。

在WebAgent启动以及接入Web服务器之后,会有一个向导来帮助从数据库导入模式,注意要将数据库的驱动拷贝入WebAgent的jdbc-drivers文件夹。
1.配置接入数据库:

2.选择要导入的表所在的模式:

3.选择要作为领域模型以及配置映射对应的表,每个表默认都会被导入为一个独立的分区缓存。

4.指定各种导入选项,并且选择与生成的缓存相关联的集群:

3.下载工程
模式导入之后,打开Summary界面然后下载包含如下内容的工程:

1.2.3.数据预加载

如上所示,Ignite的Web控制台生成的工程包含了各种开箱即用的构件。
如果要想快速地从底层数据库预加载数据,需要按照如下步骤进行操作:

要了解这个工程结构以及已有构件的详细信息,可以看工程的README文件,他包含了与内容有关的详细说明。

1.3.执行查询

可以通过Web控制台接入Ignite集群然后在缓存中运行SQL查询,还可以查看执行计划,内存模式,还有集群的流化图表。

Ignite可以无限制地支持SQL查询,SQL语法兼容于ANSI-99标准,这意味着可以使用任何SQL函数、聚合、分组或者关联。可以在同一个界面中创建和执行任意数量的查询,然后以图形或者表格的形式展现结果。

下面是以饼图形式展现的结果:

1.4.使用跟踪

作为一个IT管理员,可能希望了解组织内的其他人通过Web控制台是如何与集群进行交互的。这样的功能通过Admin panel可以得到。

在登录用户名的下拉菜单中可以打开控制台的Admin panel,这个管理面板还提供了一个选项列表,基于活动用户,可以选择想要看的,如下图所示:

1.5.多集群支持

有这样一个场景,就是环境中同时部署并且运行着多个Ignite集群,然后想使用一个Web控制台实例并行地监控并且管理他们。
要做到这一点,每个集群都需要启动Ignite的Web控制台代理,然后映射到已经部署的Ignite Web控制台,如下图所示:

开启多集群支持的最直接方式就是,在与运行的特定集群的节点之一相同的机器/硬件或者网络上启动代理,然后将代理映射到Web控制台实例。

1.5.1.单主机两集群

本章节会显示如何在单主机上启动多个集群,然后将他们接入Ignite Web控制台,作为一个示例,下面会配置并且启动两个集群以及两个Ignite Web代理。
下面是第一个集群节点的配置示例:

  1. <bean class="org.apache.ignite.configuration.IgniteConfiguration">
  2. ...
  3. <!--
  4. Explicitly configure TCP discovery SPI to provide list of
  5. initial nodes from the first cluster.
  6. -->
  7. <property name="discoverySpi">
  8. <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
  9. <!-- Initial local port to listen to. -->
  10. <property name="localPort" value="48500"/>
  11. <!-- Changing local port range. This is an optional action. -->
  12. <property name="localPortRange" value="20"/>
  13. <!-- Setting up IP finder for this cluster -->
  14. <property name="ipFinder">
  15. <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
  16. <property name="addresses">
  17. <list>
  18. <!--
  19. Addresses and port range of the nodes from the first
  20. cluster.
  21. 127.0.0.1 can be replaced with actual IP addresses or
  22. host names. Port range is optional.
  23. -->
  24. <value>127.0.0.1:48500..48520</value>
  25. </list>
  26. </property>
  27. </bean>
  28. </property>
  29. </bean>
  30. </property>
  31. <!--
  32. Explicitly configure TCP communication SPI changing local
  33. port number for the nodes from the first cluster.
  34. -->
  35. <property name="communicationSpi">
  36. <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
  37. <property name="localPort" value="48100"/>
  38. </bean>
  39. </property>
  40. </bean>

下面是第二个集群节点的配置:

  1. <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
  2. <!--
  3. Explicitly configure TCP discovery SPI to provide list of initial
  4. nodes from the second cluster.
  5. -->
  6. <property name="discoverySpi">
  7. <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
  8. <!-- Initial local port to listen to. -->
  9. <property name="localPort" value="49500"/>
  10. <!-- Changing local port range. This is an optional action. -->
  11. <property name="localPortRange" value="20"/>
  12. <!-- Setting up IP finder for this cluster -->
  13. <property name="ipFinder">
  14. <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
  15. <property name="addresses">
  16. <list>
  17. <!--
  18. Addresses and port range of the nodes from the second
  19. cluster.
  20. 127.0.0.1 can be replaced with actual IP addresses or
  21. host names. Port range is optional.
  22. -->
  23. <value>127.0.0.1:49500..49520</value>
  24. </list>
  25. </property>
  26. </bean>
  27. </property>
  28. </bean>
  29. </property>
  30. <!--
  31. Explicitly configure TCP communication SPI changing local port number
  32. for the nodes from the second cluster.
  33. -->
  34. <property name="communicationSpi">
  35. <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
  36. <property name="localPort" value="49100"/>
  37. </bean>
  38. </property>
  39. </bean>

假定集群的配置位于${IGNITE_HOME}/config文件夹,那么可以通过如下命令启动第一个集群的节点:

  1. ignite.sh -v -J-DIGNITE_JETTY_PORT=8080 config/first-cluster.xml

然后通过如下方式启动第二个集群:

  1. ignite.sh -v -J-DIGNITE_JETTY_PORT=9090 config/second-cluster.xml

因为这些节点在一台主机上启动,所以需要将JETTY_PORT参数配置为不同的值。
最后,启动一个Web代理,接入第一个集群节点:

  1. ignite-web-agent.sh --node-uri http://localhost:8080

然后一个web代理接入第二个集群:

  1. ignite-web-agent.sh --node-uri http://localhost:9090

通过浏览器打开Web控制台,然后就可以看到控制台可以处理下拉框中的两个集群。

1.5.2.不同主机的两个集群

如果Ignite集群部署在没有交集的一组主机上,那么是不需要配置上述的TcpDiscoverySpiTcpCommunicationSpi或者JETTY_PORT的。
需要做的仅仅是启动集群然后将Web代理的实例接入第一个集群:

  1. ignite-web-agent.sh --node-uri http://host1:8080

然后重复,接入第二个集群:

  1. ignite-web-agent.sh --node-uri http://host2:9090
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注