无法在现有Apache Ignite单节点集群

时间:2018-03-01 11:26:40

标签: java apache caching ignite

我在我的单个主机pc中运行了两个Apache Ignite实例(版本2.2.0),他们发现彼此没有任何问题。 我现在要做的是在这个现有的"伪集群"中简单地创建一个IgniteCache,最好不要启动新实例。 这是我现在的代码:

public class Create_Ignite_Cache {

public static void main(String[] args){

    TcpDiscoverySpi spi = new TcpDiscoverySpi();
    TcpDiscoveryVmIpFinder ipFinder=new TcpDiscoveryMulticastIpFinder();
    List<String> adresses=new ArrayList<String>();
    adresses.add("127.0.0.1");
    ipFinder.setAddresses(adresses);
    spi.setIpFinder(ipFinder);

    IgniteConfiguration cfg=new IgniteConfiguration()
.setDiscoverySpi(spi).setClientMode(true);

    CacheConfiguration cache_conf=new CacheConfiguration<String,String>().setCacheMode(CacheMode.PARTITIONED).setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL).setBackups(1).
            setGroupName("Test_group").setIndexedTypes(String.class,String.class).setName("Test_Cache");

    Ignite ignite=Ignition.getOrStart(cfg);

    ignite.getOrCreateCache(cache_conf);

    System.out.print("[INFO] CACHE CREATED");
    ignite.close();
}
 }

运行此代码时,会创建Ignite客户端实例,尝试创建缓存,然后关闭客户端实例。 如果我检查Ignite服务器实例中的日志,它会在创建客户端实例时检测到它:

[10:36:57] Topology snapshot [ver=1, servers=1, clients=0, CPUs=12, heap=1.0GB]
[10:41:07] Topology snapshot [ver=2, servers=1, clients=1, CPUs=12, heap=4.6GB]
[10:41:07] Topology snapshot [ver=3, servers=1, clients=0, CPUs=12, heap=1.0GB]

但是,当我运行ignitevisor检查缓存列表时,它没有任何缓存:

visor> cache
(wrn) <visor>: No caches found.

我的问题是: 使用这种方法我做错了什么? 有没有办法在现有集群中创建缓存而无需创建客户端实例?例如,使用JDBC连接?

非常感谢。

2 个答案:

答案 0 :(得分:3)

我尝试了你的代码,Visor展示了创建的缓存。

拓扑快照说,您只有一个服务器节点。是否可能,服务器节点没有发现彼此并形成两个不同的集群? 您可以在其中一个中创建缓存,并通过Visor连接到另一个缓存。 尝试node Visor命令,检查是否看到所有服务器节点。

要避免为缓存创建启动其他节点,可以在节点XML配置中配置缓存。看一下示例:https://apacheignite.readme.io/docs/cache-modes#section-configuration

如果要使用JDBC连接创建缓存,可以使用CREATE TABLE DDL命令。文档:https://apacheignite-sql.readme.io/docs/create-table

答案 1 :(得分:2)

我尝试了以下代码段并成功创建了缓存。

+ ---------------------------------------------- ------------- ------------- + ------- + + -------------- ------------- ----------- + + ----------- ----------- + + ----------- + | Test_Cache(@ c19)|分手| 2 | min:0(0/0)| min:0 | min:0 | min:0 |分钟: 0 | | | |
|平均值:0.00(0.00 / 0.00)|平均:0.00 |平均:0.00 |平均:0.00 |平均:0.00 | | | |
| max:0(0/0)|最大值:0 |最大值:0 |最大值:0 |最大值:0
|

你能在visor中使用“node”命令看到两个节点吗? 我使用选项13 - examples \ config \ example-ignite.xml打开了遮阳板 希望这可以帮助。