Ignite实战之一 安装 运行

原本是Hazelcast的fans,偶然的机会看到了Ignite,一个以内存为中心的数据平台,其中支持off-heap memory,并且兼容 ANSI-99 的SQL语法十分让人心动。更棒的是,它的中文文档竟然update到了最新版,看起来方便很多。

先看一下如何让它跑起来


Package安装

  • https://ignite.apache.org/下载Ignite的zip压缩包 apache-ignite-fabric-2.2.0-bin.zip
  • unzip apache-ignite-fabric-2.2.0-bin.zip
  • cd apache-ignite-fabric-2.2.0-bin
  • bin/ignite.sh

... ....
[18:10:59] Ignite node started OK (id=0d488108)
[18:10:59] Topology snapshot [ver=1, servers=1, clients=0, CPUs=4, heap=1.0GB]

这样一个基本的Ignite实例就跑起来了。在本机的一个新的终端再执行一次 bin/ignite.sh会启动一个新的实例,默认情况下,新的实例会自动加入集群

[18:11:14] Ignite node started OK (id=34223b83)
[18:11:14] Topology snapshot [ver=2, servers=2, clients=0, CPUs=4, heap=2.8GB]

Ignite的目录结构

├── benchmarks <-- build-in benchmark tool
├── bin
├── config
├── docs
├── examples
├── libs <-- jar包目录,默认只加载核心库
│ ├── annotations-13.0.jar
│ ├── cache-api-1.0.0.jar
│ ├── ignite-core-2.1.0.jar
│ ├── ignite-indexing
│ ├── ignite-shmem-1.0.0.jar
│ ├── ignite-spring
│ └── optional <--可选库,默认不加载
├── platforms
└── work

Ingite默认只加载一些核心库,如core,index(用以使用Lucene索引)和spring,其他库文件放在libs/optional文件夹中,如需使用,需要mv到libs目录下

Ignite的配置文件

Ignite的配置文件放置在IGNITE_HOME/config目录下,用以为Ignite启动实例时提供必要的信息,这里只挑几个常用的说

  • 设置client模式,默认的Ignite实例以server模式加入集群
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
    ...   
    <!-- Enable client mode. -->
    <property name="clientMode" value="true"/>
    ...
</bean>

启动实例后日志为

[18:11:14] Topology snapshot [ver=2, servers=1, clients=1, CPUs=4, heap=2.8GB]

  • enable Peer Class Loading
    Ignite的分布式计算支持Zero Deployment,实现了节点间的字节码交换。当Peer Class Loading enable时,不需要在网格内的每个节点上手工地部署用以计算的Java或者Scala代码。 当一个enable了Peer Class Loading的节点加入一个没有打开Peer Class Loading的集群中时会出差,导致节点无法启动,反之亦然。推荐在配置文件中默认打开
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
    ...   
    <!-- Explicitly enable peer class loading. -->
    <property name="peerClassLoadingEnabled" value="true"/>
    ...
</bean>
  • 配置集群发现机制
    Ignite支持N中发现模式,这里只聊静态IP机制
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
  ...
  <property name="discoverySpi">
    <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
      <property name="ipFinder">
        <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
          <property name="addresses">
            <list>
              <value>10.xxx.xxx.xxx:47500..47509</value>
              <value>11.xxx.xxx.xxx:47500..47509</value>
            </list>
          </property>
        </bean>
      </property>
    </bean>
  </property>
</bean>

配置好后,制定配置文件启动ignite实例

bin/ignite.sh config/xxx.xml

Docker安装

docker安装和启动比较简单,两个命令就搞定了

  • sudo docker pull apacheignite/ignite
  • sudo docker run -it --net=host apacheignite/ignite

如果需要制定配置文件并且enable一些可选库文件(如 restful api)可以使用如下命令

sudo docker run -it --net=host -v /PATH/example-cache.xml:/opt/ignite/apache-ignite-fabric-2.1.0-bin/config/example-cache.xml -e "CONFIG_URI=/opt/ignite/apache-ignite-fabric-2.1.0-bin/config/example-cache.xml" -e "OPTION_LIBS=ignite-rest-http" apacheignite/ignite

NOTE: Ignite 的restful模块目前比较弱,基本属于不能使用状态。如cache只支持 <string,string>模式的input和查询 ......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容