Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在现有Apache Ignite单节点群集中创建缓存_Java_Caching_Ignite - Fatal编程技术网

Java 无法在现有Apache Ignite单节点群集中创建缓存

Java 无法在现有Apache Ignite单节点群集中创建缓存,java,caching,ignite,Java,Caching,Ignite,我在我的单主机pc上运行两个Apache Ignite实例(版本2.2.0),它们相互发现,没有任何问题。 我现在想做的是,在这个现有的“伪集群”中简单地创建一个IgniteCache,最好不用启动一个新实例。 这是我现在掌握的代码: public class Create_Ignite_Cache { public static void main(String[] args){ TcpDiscoverySpi spi = new TcpDiscoverySpi(); Tc

我在我的单主机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();
}
 }
但是,当我运行ignitevisor检查缓存列表时,它没有任何缓存:

visor> cache
(wrn) <visor>: No caches found.
visor>cache
(警告):未找到缓存。
我的问题是:
使用这种方法我做错了什么?
有没有一种方法可以在现有集群中创建缓存而不必创建客户端实例?以JDBC连接为例?

我尝试了您的代码,Visor显示了创建的缓存

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

为了避免启动额外的节点来创建缓存,可以在节点XML配置中正确配置缓存。请看一个例子:


如果要使用JDBC连接创建缓存,可以使用
createtable
DDL命令。文档:

我尝试了您的代码,Visor显示了创建的缓存

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

为了避免启动额外的节点来创建缓存,可以在节点XML配置中正确配置缓存。请看一个例子:


如果要使用JDBC连接创建缓存,可以使用
createtable
DDL命令。文档:

我尝试了下面的代码段,缓存成功创建

+-----------------------------------------------------------+-------------+-------+---------------------------+-----------+-----------+-----------+-----------+ |测试缓存(@c19)|分区| 2 | min:0(0/0)| min:0 | min:0 | min:0 | min: 0 | || |
|平均值:0.00(0.00/0.00)|平均值:0.00 |平均值:0.00 |平均值:0.00 |平均值:0.00 | || |
|最大值:0(0/0)|最大值:0 |最大值:0 |最大值:0 |最大值:0
|

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

我尝试了下面的代码段,缓存成功创建

+-----------------------------------------------------------+-------------+-------+---------------------------+-----------+-----------+-----------+-----------+ |测试缓存(@c19)|分区| 2 | min:0(0/0)| min:0 | min:0 | min:0 | min: 0 | || |
|平均值:0.00(0.00/0.00)|平均值:0.00 |平均值:0.00 |平均值:0.00 |平均值:0.00 | || |
|最大值:0(0/0)|最大值:0 |最大值:0 |最大值:0 |最大值:0
|

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

谢谢,事实上节点之间没有发现对方,我必须为要发现的实例设置端口范围。这是我从未为两台独立的机器做过的事情,因为它们有不同的IP,但显然这对于本地主机“集群”是必要的。无论如何,谢谢谢谢谢谢,事实上节点之间没有发现对方,我必须为要发现的实例设置端口范围。这是我从未为两台独立的机器做过的事情,因为它们有不同的IP,但显然这对于本地主机“集群”是必要的。无论如何,谢谢你
visor> cache
(wrn) <visor>: No caches found.