Redis做不了负载超垃圾,用ignite实现了可负载节点自动发现的内存数据库集群和内存集群
直接上代码:
初始化代码:
package com.xxxxxxxx.config;
import com.xxxxxxxx.hzdao;
import com.xxxxxxxx.model.Person;
import org.apache.ignite.Ignite;
import org.apache.ignite.Ignition;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author: 黄智
* @create: 2018-07-17 19:08
**/
@Configuration
public class IgniteCfg {
/**
* 初始化ignite节点信息
* @return Ignite
*/
@Bean
public Ignite igniteInstance() {
if (hzdao.ignite != null) {
return hzdao.ignite;
} else {
// 配置IgniteConfiguration
IgniteConfiguration cfg = new IgniteConfiguration();
// 设置节点名称
// cfg.setIgniteInstanceName("springDataNode");
// 启用Peer类加载器
cfg.setPeerClassLoadingEnabled(true);
// 创建一个新的Cache以供Ignite节点使用
CacheConfiguration ccfg = new CacheConfiguration("PersonCache");
// 设置SQL的Schema
ccfg.setIndexedTypes(Long.class, Person.class);
cfg.setCacheConfiguration(ccfg);
//自己追加的代码begin
TcpDiscoverySpi spi = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
ipFin