当前位置: 首页 > 知识库问答 >
问题:

当已经在Ignite服务器上有配置时,在Ignite客户端上有相同的配置

越勇锐
2023-03-14

好的,这是我的Ignite服务器cfg代码。

     @Bean("serverCfg")
    public IgniteConfiguration createConfiguration() throws Exception {
        IgniteConfiguration cfg = new IgniteConfiguration(); cfg.setIgniteInstanceName("CcPlatformUserRolesOrganizationAssociationServer");
    cfg.setSqlSchemas("public");
    TcpDiscoverySpi discovery = new TcpDiscoverySpi();

      TcpDiscoveryMulticastIpFinder ipFinder = new 
TcpDiscoveryMulticastIpFinder();

      ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47510"));

      discovery.setIpFinder(ipFinder);

    cfg.setDiscoverySpi(discovery);
    // cfg.setPeerClassLoadingEnabled(true);

    cfg.setCacheConfiguration(cacheOrganizationsCache()
                                                          , 
cacheRolesCache(), cacheUsersCache(),

cacheUsersRolesCache(), cacheGroupsCache(),

cacheGroupusersCache(), cacheGlobalPermissionsCache(),

cacheTemplatesCache(), cachePasswordsCache()
                                                         );

    return cfg;
}

这是我的Ignite客户端代码。

@Bean
public Ignite createConfiguration() throws Exception {
    IgniteConfiguration cfg = new IgniteConfiguration();

    cfg.setClientMode(true); cfg.setIgniteInstanceName("CcPlatformUserRolesOrganizationAssociationServerClient");


      TcpDiscoverySpi discovery = new TcpDiscoverySpi();

      TcpDiscoveryMulticastIpFinder ipFinder = new 
TcpDiscoveryMulticastIpFinder();

      ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47510"));

      discovery.setIpFinder(ipFinder);

      cfg.setDiscoverySpi(discovery);       
      cfg.setCacheConfiguration( cacheOrganizationsCache(),   cacheRolesCache(),
      cacheUsersCache(), cacheUsersRolesCache(), cacheGroupsCache(),
      cacheGroupusersCache() );

    Ignite ignite = Ignition.start(cfg);
    ignite.cluster().active(true);

    return ignite;
}

所以我的问题是,我必须有同样的代码,包含所有缓存配置,包括客户端的数据源吗?如何避免这种代码冗余?

共有1个答案

微生高谊
2023-03-14

您不必在客户端提供所有缓存配置。一旦第一个服务器节点启动,它将启动所有缓存,其他节点将能够使用它们,无论它们是否在自己的配置中。当节点加入时,将创建任何新的缓存。在加入具有不同现有缓存CFG的新节点时,缓存配置将永远不会改变。

 类似资料:
  • 我连接到我的点火装置有问题。我在AWS EC2上有2个节点,并且我使用基于AWS S3的发现。Ignites节点启动时没有错误,并且我看到了启动IGNITE后S3桶上出现的新对象。在AWS安全组中,我打开了所有的TCP端口,这样任何人都可以连接到集群。 我使用了以下配置: 正如您所看到的,客户端的数量等于0然后等于1,0和1等等。所以我想,客户端可以到达集群,但是为什么它们被拒绝了呢?

  • 这是一个奇怪的行为,因为我所有的ignite节点(运行在YARN上)都为默认区域定义了20GB(我更改了它并验证了它)。这表明错误必须来自在Spark上启动的ignite服务器(我认为是驱动程序上的一个服务器,每个工作者一个服务器),因为我没有更改Spark应用程序的ignite-config.xml中的默认区域大小(如错误所示,默认为12GB)。然而,这有道理吗?Spark是否应该抛出这个错误,

  • 是否可以在同一个JVM中同时启动客户机和服务器节点?

  • 想得到一些关于设置简单的双向ApacheSSL的建议。 我们使用openSSL创建了一个密钥文件和csr请求。然后,我们将其提交给CA,并收到一个crt文件与CA的crt文件一起返回。 我们已经配置了ApacheHTTP。conf文件,并在加载mod_ssl模块后添加了以下参数。 开启SSLEngine SSLCACertificateFile/local/fast/fcHome/deployme

  • 配置客户端无法解析配置属性,无法连接到配置服务器。下面是我的服务application.properties文件: pom.xml中的依赖关系: