2017-07-16 23 views
-1

我有微服務體系結構,所有的微服務都使用相同的數據庫。現在我想在我的架構中分配緩存。目前我選擇榛子發行。作爲一個開始,我將所有微服務中的以下配置。彈簧榛樹緩存集羣顯示警告

@Configuration 
@EnableCaching 
@AutoConfigureBefore(value = { DatabaseConfiguration.class }) 
public class CacheConfiguration { 

    private final Logger LOG = LoggerFactory.getLogger(CacheConfiguration.class); 

    @Value("${cache.timeToLiveSeconds:3600}") 
    private final int timeToLiveSeconds = 3600; 

    @Value("${cache.backupCount:1}") 
    private final int backupCount = 1; 

    @Autowired 
    private Environment env; 

    @PreDestroy 
    public void destroy() { 
     LOG.info("Closing Cache Manager"); 
     Hazelcast.shutdownAll(); 
    } 

    @Bean 
    public CacheManager cacheManager(final HazelcastInstance hazelcastInstance) { 
     LOG.debug("Starting HazelcastCacheManager"); 
     return new HazelcastCacheManager(hazelcastInstance); 
    } 

    @Bean 
    public HazelcastInstance hazelcastInstance() { 
     LOG.debug("Configuring Hazelcast"); 
     final HazelcastInstance hazelCastInstance = Hazelcast 
       .getHazelcastInstanceByName("caching_service"); 
     if (hazelCastInstance != null) { 
      LOG.debug("Hazelcast already initialized"); 
      return hazelCastInstance; 
     } 
     final Config config = new Config(); 
     config.setInstanceName("caching_service"); 
     config.getNetworkConfig().setPort(5701); 
     config.getNetworkConfig().setPortAutoIncrement(true); 

     // In development, remove multicast auto-configuration 
     if (env.acceptsProfiles(Constants.DEV)) { 
      System.setProperty("hazelcast.local.localAddress", "127.0.0.1"); 

      config.getNetworkConfig().getJoin().getAwsConfig().setEnabled(false); 
      config.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false); 
      config.getNetworkConfig().getJoin().getTcpIpConfig().setEnabled(false); 
     } 

     config.getMapConfigs().put("default", initializeDefaultMapConfig()); 
     return Hazelcast.newHazelcastInstance(config); 
    } 

    private MapConfig initializeDefaultMapConfig() { 
     final MapConfig mapConfig = new MapConfig(); 

     /* 
     * Number of backups. If 1 is set as the backup-count for example, then all 
     * entries of the map will be copied to another JVM for fail-safety. Valid numbers 
     * are 0 (no backup), 1, 2, 3. 
     */ 
     mapConfig.setBackupCount(0); 

     /* 
     * Valid values are: NONE (no eviction), LRU (Least Recently Used), LFU (Least 
     * Frequently Used). NONE is the default. 
     */ 
     mapConfig.setEvictionPolicy(EvictionPolicy.LRU); 

     /* 
     * Maximum size of the map. When max size is reached, map is evicted based on the 
     * policy defined. Any integer between 0 and Integer.MAX_VALUE. 0 means 
     * Integer.MAX_VALUE. Default is 0. 
     */ 
     mapConfig.setMaxSizeConfig(
       new MaxSizeConfig(0, MaxSizeConfig.MaxSizePolicy.USED_HEAP_SIZE)); 

     return mapConfig; 
    } 
} 

現在,我開始了我的第一個微服務和日誌行是

2017-07-16 10:38:06.581 INFO 13084 --- [   main] c.h.instance.DefaultAddressPicker  : [LOCAL] [dev] [3.7.7] Picked [127.0.0.1]:5701, using socket ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=5701], bind any local is true 
2017-07-16 10:38:06.595 INFO 13084 --- [   main] com.hazelcast.system      : [127.0.0.1]:5701 [dev] [3.7.7] Hazelcast 3.7.7 (20170404 - e3c56ea) starting at [127.0.0.1]:5701 
2017-07-16 10:38:06.595 INFO 13084 --- [   main] com.hazelcast.system      : [127.0.0.1]:5701 [dev] [3.7.7] Copyright (c) 2008-2016, Hazelcast, Inc. All Rights Reserved. 
2017-07-16 10:38:06.595 INFO 13084 --- [   main] com.hazelcast.system      : [127.0.0.1]:5701 [dev] [3.7.7] Configured Hazelcast Serialization version : 1 
2017-07-16 10:38:06.769 INFO 13084 --- [   main] c.h.s.i.o.impl.BackpressureRegulator  : [127.0.0.1]:5701 [dev] [3.7.7] Backpressure is disabled 
2017-07-16 10:38:07.171 DEBUG 13084 --- [   main] c.h.internal.cluster.ClusterService  : [127.0.0.1]:5701 [dev] [3.7.7] Updating members [Member [127.0.0.1]:5701 - b2e3c44d-0392-4813-a2c8-d648695e8f1d this] 
2017-07-16 10:38:07.171 DEBUG 13084 --- [   main] c.h.i.p.InternalPartitionService   : [127.0.0.1]:5701 [dev] [3.7.7] Adding Member [127.0.0.1]:5701 - b2e3c44d-0392-4813-a2c8-d648695e8f1d this 
2017-07-16 10:38:07.293 INFO 13084 --- [   main] c.h.s.i.o.impl.OperationExecutorImpl  : [127.0.0.1]:5701 [dev] [3.7.7] Starting 8 partition threads 
2017-07-16 10:38:07.295 INFO 13084 --- [   main] c.h.s.i.o.impl.OperationExecutorImpl  : [127.0.0.1]:5701 [dev] [3.7.7] Starting 5 generic threads (1 dedicated for priority tasks) 
2017-07-16 10:38:07.302 INFO 13084 --- [   main] com.hazelcast.core.LifecycleService  : [127.0.0.1]:5701 [dev] [3.7.7] [127.0.0.1]:5701 is STARTING 
2017-07-16 10:38:07.302 DEBUG 13084 --- [   main] c.h.i.p.InternalPartitionService   : [127.0.0.1]:5701 [dev] [3.7.7] Adding Member [127.0.0.1]:5701 - b2e3c44d-0392-4813-a2c8-d648695e8f1d this 
2017-07-16 10:38:07.303 INFO 13084 --- [   main] c.h.n.t.n.NonBlockingIOThreadingModel : [127.0.0.1]:5701 [dev] [3.7.7] TcpIpConnectionManager configured with Non Blocking IO-threading model: 3 input threads and 3 output threads 
2017-07-16 10:38:07.305 DEBUG 13084 --- [   main] c.h.n.t.n.NonBlockingIOThreadingModel : [127.0.0.1]:5701 [dev] [3.7.7] IO threads selector mode is SELECT 
2017-07-16 10:38:07.317 WARN 13084 --- [   main] com.hazelcast.instance.Node    : [127.0.0.1]:5701 [dev] [3.7.7] No join method is enabled! Starting standalone. 
2017-07-16 10:38:07.351 INFO 13084 --- [   main] com.hazelcast.core.LifecycleService  : [127.0.0.1]:5701 [dev] [3.7.7] [127.0.0.1]:5701 is STARTED 

現在,我開始了我的第二個微服務

2017-07-16 10:41:30.841 INFO 17936 --- [   main] c.h.instance.DefaultAddressPicker  : [LOCAL] [dev] [3.7.7] Picked [127.0.0.1]:5702, using socket ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=5702], bind any local is true 
2017-07-16 10:41:30.854 INFO 17936 --- [   main] com.hazelcast.system      : [127.0.0.1]:5702 [dev] [3.7.7] Hazelcast 3.7.7 (20170404 - e3c56ea) starting at [127.0.0.1]:5702 
2017-07-16 10:41:30.855 INFO 17936 --- [   main] com.hazelcast.system      : [127.0.0.1]:5702 [dev] [3.7.7] Copyright (c) 2008-2016, Hazelcast, Inc. All Rights Reserved. 
2017-07-16 10:41:30.855 INFO 17936 --- [   main] com.hazelcast.system      : [127.0.0.1]:5702 [dev] [3.7.7] Configured Hazelcast Serialization version : 1 
2017-07-16 10:41:31.017 INFO 17936 --- [   main] c.h.s.i.o.impl.BackpressureRegulator  : [127.0.0.1]:5702 [dev] [3.7.7] Backpressure is disabled 
2017-07-16 10:41:31.451 DEBUG 17936 --- [   main] c.h.internal.cluster.ClusterService  : [127.0.0.1]:5702 [dev] [3.7.7] Updating members [Member [127.0.0.1]:5702 - db64274e-73bd-4aa2-ae67-f626433b25c6 this] 
2017-07-16 10:41:31.452 DEBUG 17936 --- [   main] c.h.i.p.InternalPartitionService   : [127.0.0.1]:5702 [dev] [3.7.7] Adding Member [127.0.0.1]:5702 - db64274e-73bd-4aa2-ae67-f626433b25c6 this 
2017-07-16 10:41:31.582 INFO 17936 --- [   main] c.h.s.i.o.impl.OperationExecutorImpl  : [127.0.0.1]:5702 [dev] [3.7.7] Starting 8 partition threads 
2017-07-16 10:41:31.583 INFO 17936 --- [   main] c.h.s.i.o.impl.OperationExecutorImpl  : [127.0.0.1]:5702 [dev] [3.7.7] Starting 5 generic threads (1 dedicated for priority tasks) 
2017-07-16 10:41:31.590 INFO 17936 --- [   main] com.hazelcast.core.LifecycleService  : [127.0.0.1]:5702 [dev] [3.7.7] [127.0.0.1]:5702 is STARTING 
2017-07-16 10:41:31.591 DEBUG 17936 --- [   main] c.h.i.p.InternalPartitionService   : [127.0.0.1]:5702 [dev] [3.7.7] Adding Member [127.0.0.1]:5702 - db64274e-73bd-4aa2-ae67-f626433b25c6 this 
2017-07-16 10:41:31.591 INFO 17936 --- [   main] c.h.n.t.n.NonBlockingIOThreadingModel : [127.0.0.1]:5702 [dev] [3.7.7] TcpIpConnectionManager configured with Non Blocking IO-threading model: 3 input threads and 3 output threads 
2017-07-16 10:41:31.592 DEBUG 17936 --- [   main] c.h.n.t.n.NonBlockingIOThreadingModel : [127.0.0.1]:5702 [dev] [3.7.7] IO threads selector mode is SELECT 
2017-07-16 10:41:31.633 WARN 17936 --- [   main] com.hazelcast.instance.Node    : [127.0.0.1]:5702 [dev] [3.7.7] No join method is enabled! Starting standalone. 
2017-07-16 10:41:31.633 WARN 17936 --- [   main] com.hazelcast.instance.Node    : [127.0.0.1]:5702 [dev] [3.7.7] Config seed port is 5701 and cluster size is 1. Some of the ports seem occupied! 
2017-07-16 10:41:31.663 INFO 17936 --- [   main] com.hazelcast.core.LifecycleService  : [127.0.0.1]:5702 [dev] [3.7.7] [127.0.0.1]:5702 is STARTED 

,所以我想知道如果我做的事情在這裏,因爲我得到這條線後開始第二微服務

[127.0.0.1]:5702 [dev] [3.7.7] Config seed port is 5701 and cluster size is 1. Some of the ports seem occupied! 

我有以下查詢

1.)創建Hazelcast spring分佈式緩存機制的正確方法是什麼? 2.)當我說分佈式的時候,它是否意味着如果我在兩個微服務中都有相同的實體緩存,那麼在一個微服務中對實體進行CRUD的服務將更新其他微服務中的緩存,用於相同的 實體好。

3.)如果我不想使用像緩存等春季緩存註釋...我可以刪除EnableCaching或它不是一個好主意。我想要 以編程方式創建緩存,並通過註釋以編程方式管理緩存而不是 。

+0

@收縮的是。這不是一個答案。這個問題的作者問到了榛子。您的geode插件不合適。謝謝 –

+0

@VicGamov:這就是爲什麼我把它作爲評論的原因;-)我只是想「警告」OP,因爲我嘗試了和他一樣的方式,並在我瞭解Hazelcast的缺陷時結束了切換到Gemfire/Geode – Marged

回答