apache ignite系列(二):配置

ignite有两种配置方式,一种是基于XML文件的配置,一种是基于JAVA代码的配置:

这里将ignite常用的配置集中罗列出来了,一般建议使用xml配置。

1,基于XML的配置




    
         
        
        
        
    
        
        
        
        
        
        
        

        
        
        
        
        
        

        
        
        

        
        
        
            
        org.cord.*
    
    
        
        
        
            
                
                
                
            
        
    
        
        
        
        
        
        
        

        
            
                
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                        
                            java.lang.Long
                            com.palic.demo.data.domain.CommRate
                        
                    
                
            
        

        
        
            
                
                
                
                    
                        
                        
                        
                        
                        
                        
                        
                        
                        
                    
                
                
                    
                        
                        
                        
                            
                            
                            
                            
                            
                            
                            
                            
                        
                    
                
               
                
                
                
                    
                
                
                
                
                
                
                
                
                
                
                

                
                
                
                
                
                
                
                

                
                

                
                

            
        
        
        
            
                
                
                
                
                
                    
                        
                              
                            
                                127.0.0.1:48500..48520
                            
                        
                    
                
            
        
        
            
                
            
        
    

基于此XML配置启动ignite节点的方式如下:

@Configuration
public class IgniteConfig {
    @Autowired
    private IgniteConfiguration igniteCfg;
  
    @Bean
    @ConditionalOnMissingBean
    public Ignite initIgnite() {
      //推荐借助spring bean的方式注入ignite配置信息,只需要将配置xml文件import即可
      //启动类加上注解@ImportResource(locations={"classpath:default-config.xml"})
      Ignite ignite = Ignition.start(igniteCfg);
      //Ignite ignite = Ignition.start(classpath:default-config.xml)
    }
}

2,基于JAVA代码的配置

......
        IgniteConfiguration cfg = new IgniteConfiguration();
        cfg.setClientMode(false);
        //配置集群发现
        cfg.setDiscoverySpi(new TcpDiscoverySpi().setLocalPort(48500).setLocalPortRange(20)
                                                 .setIpFinder(new TcpDiscoveryVmIpFinder().setAddresses(Arrays.asList("127.0.0.1:48500..48520"))));
        //基本配置
        cfg.setCommunicationSpi(new TcpCommunicationSpi().setLocalPort(48100));
        cfg.setDeploymentMode(CONTINUOUS);
        cfg.setPeerClassLoadingEnabled(true);
        cfg.setPeerClassLoadingLocalClassPathExclude("com.org.ignite.*");
        cfg.setIncludeEventTypes(EventType.EVT_TASK_STARTED, EventType.EVT_TASK_FINISHED, EventType.EVT_TASK_FAILED);
        cfg.setPublicThreadPoolSize(64);
        cfg.setSystemThreadPoolSize(32);
        //添加cache配置
        List cacheConf = new ArrayList<>();
        CacheConfiguration conf = new CacheConfiguration("test")
                .setCacheMode(CacheMode.REPLICATED)
                .setIndexedTypes(String.class, Integer.class)
                .setAtomicityMode(CacheAtomicityMode.ATOMIC)
                .setCopyOnRead(false)
                .setBackups(1);
        cacheConf.add(conf);
        cfg.setCacheConfiguration(cacheConf.toArray(new CacheConfiguration[]{}));

        //基于java代码配置启动
        Ignition.start(cfg);
......

一般建议基于XML配置,spring bean注入,如果确实需要JAVA配置,可以结合XML配置灵活处理。

​ 在ignite集群中,配置信息是可以动态传播的,而如果是修改配置文件,则需要重启节点才可生效,并且如果有些关键配置不一致,也会导致启动节点报错,无法加入集群。所以最好的做法是,在普通节点中只配置节点相关配置,以及集群发现配置,至于变动性最大的缓存cache配置,可以由应用节点配置,这样便于的集中管控缓存配置。除此之外,使用xml配置,可以保证普通节点与应用节点的配置的一致性,而不需要单独再维护一套代码配置。

你可能感兴趣的:(apache ignite系列(二):配置)