# Ignite Web控制台的功能

# 1.集群配置

# 1.1.概述

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

# 1.2.集群

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

# 1.3.模型

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

# 1.4.缓存

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

# 1.5.IGFS

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

# 1.6.配置总结

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

# 2.自动化RDBMS集成

Ignite的Web控制台可以配置所有的集群属性,并且在与持久化存储集成时还可以从数据库导入模式,控制台会接入指定的数据库然后生成所有必要的OR映射配置文件(XML和纯Java)以及Java领域模型POJOs。

Ignite还有一个org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStore,这是Ignite的CacheStore接口的一个JDBC实现,它可以自动化地处理所有的通读和通写逻辑。

# 2.1.工作方式

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

# 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界面然后下载包含如下内容的工程:

  • 集群和缓存的Spring XML配置文件;
  • 集群和缓存配置的Java代码;
  • 服务端和客户端节点启动的Java代码;
  • 从底层RDBMS中预加载数据的Java代码;
  • POJO Java代码;
  • 工程描述的pom.xml文件。

# 2.3.数据预加载

如上所示,Ignite的Web控制台生成的工程包含了各种直接可用的构件。

如果要想快速地从底层数据库预加载数据,需要按照如下步骤进行操作:

  • 在下载的工程中找到secret.properties文件,然后配置与JDBC驱动相关的参数,比如JDBC地址,用户名和密码,这些值在前述的在控制台中导入模式步骤中也用到过;
  • 使用ServerNodeSpringStartup或者ServerNodeCodeStartup文件启动一个服务端节点;
  • 使用LoadCaches文件来执行初始化,即将数据从数据库中加载进缓存。

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

# 3.执行查询

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

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

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

# 4.使用跟踪

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

在登录用户名的下拉菜单中可以打开控制台的Admin panel,这个管理面板还提供了一个可能用户想要看的选项列表,通过点击三个Tab页面可以进行切换,如下图所示:

# 5.多集群支持

有这样一个场景,就是环境中同时部署并且运行着多个Ignite集群,然后想使用一个Web控制台实例并行地监控并且管理它们。

要做到这一点,每个集群都需要启动一个Ignite Web控制台代理实例,然后映射到已经部署的Ignite Web控制台,如下图所示:

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

# 5.1.单主机两集群

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

下面是第一个集群节点的配置示例:

<bean class="org.apache.ignite.configuration.IgniteConfiguration">
  	...
    <!--
 				Explicitly configure TCP discovery SPI to provide list of
				initial nodes from the first cluster.
 	  -->
    <property name="discoverySpi">
        <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
            <!-- Initial local port to listen to. -->
            <property name="localPort" value="48500"/>

            <!-- Changing local port range. This is an optional action. -->
            <property name="localPortRange" value="20"/>

            <!-- Setting up IP finder for this cluster -->
            <property name="ipFinder">
                <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                    <property name="addresses">
                        <list>
                            <!--
                                Addresses and port range of the nodes from the first
 																cluster.
                                127.0.0.1 can be replaced with actual IP addresses or
 																host names. Port range is optional.
                            -->
                            <value>127.0.0.1:48500..48520</value>
                        </list>
                    </property>
                </bean>
            </property>
        </bean>
    </property>

    <!--
        Explicitly configure TCP communication SPI changing local
 				port number for the nodes from the first cluster.
    -->
    <property name="communicationSpi">
        <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
            <property name="localPort" value="48100"/>
        </bean>
    </property>
</bean>

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

<bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
    <!--
        Explicitly configure TCP discovery SPI to provide list of initial
         nodes from the second cluster.
    -->
    <property name="discoverySpi">
        <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
            <!-- Initial local port to listen to. -->
            <property name="localPort" value="49500"/>

            <!-- Changing local port range. This is an optional action. -->
            <property name="localPortRange" value="20"/>

            <!-- Setting up IP finder for this cluster -->
            <property name="ipFinder">
                <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                    <property name="addresses">
                        <list>
                            <!--
                                Addresses and port range of the nodes from the second
 																cluster.
                                127.0.0.1 can be replaced with actual IP addresses or
 																host names. Port range is optional.
                            -->
                            <value>127.0.0.1:49500..49520</value>
                        </list>
                    </property>
                </bean>
            </property>
        </bean>
    </property>

    <!--
        Explicitly configure TCP communication SPI changing local port number
        for the nodes from the second cluster.
    -->
    <property name="communicationSpi">
        <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
            <property name="localPort" value="49100"/>
        </bean>
    </property>
</bean>

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

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

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

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

因为这些节点在一台主机上启动,所以需要将JETTY_PORT参数配置为不同的值。

最后,启动一个Web代理,接入第一个集群节点:

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

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

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

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

# 5.2.不同主机的两个集群

如果Ignite集群部署在没有交集的一组主机上,那么是不需要配置上述的TcpDiscoverySpiTcpCommunicationSpi或者JETTY_PORT的。

需要做的仅仅是启动集群然后将Web代理的实例接入第一个集群:

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

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

ignite-web-agent.sh --node-uri http://host2:9090
最后更新时间:: 10/21/2020, 4:44:25 PM