下面哪部分代码会在服务器端运行

Which part of the following code will run at the server side

我正在使用以下代码将数据从 mysql 加载到 Ignite 缓存中。代码是 运行 客户端模式 Ignite 并将数据加载到 Ignite 集群中。

我会问:

  1. 代码的哪些部分将 运行 在服务器端?

  2. 将数据加载到缓存的工作机制类似于map-reduce,那么,向服务器发送哪些任务呢? sql?

  3. 我特别想问一下:下面的代码运行是在客户端还是在服务端?

    CacheConfiguration cfg = StudentCacheConfig.cache("StudentCache", storeFactory); IgniteCache 缓存 = ignite.getOrCreateCache(cfg);

以下是将数据加载到缓存中的完整代码

public class LoadStudentIntoCache {


    public static void main(String[] args) {
        Ignition.setClientMode(false);
        String configPath = "default-config.xml";
        Ignite ignite = Ignition.start(configPath);
        CacheJdbcPojoStoreFactory storeFactory = new CacheJdbcPojoStoreFactory<Integer, Student>();
        storeFactory.setDialect(new MySQLDialect());
        IDataSourceFactory factory = new MySqlDataSourceFactory();

        storeFactory.setDataSourceFactory(new Factory<DataSource>() {
            public DataSource create() {
                try {
                    DataSource dataSource = factory.createDataSource();
                    return dataSource;
                } catch (Exception e) {
                    return null;
                }
            }
        });
        //
        CacheConfiguration<Integer, Student> cfg = StudentCacheConfig.cache("StudentCache", storeFactory);
        IgniteCache<Integer, Student> cache = ignite.getOrCreateCache(cfg);

        List<String> sqls = new ArrayList<String>();
        sqls.add("java.lang.Integer");
        sqls.add("select id, name, birthday  from db1.student where id < 1000" );
        sqls.add("java.lang.Integer");
        sqls.add("select id, name, birthday  from db1.student where id >= 1000 and id < 1000" );
        cache.loadCache(null, , sqls.toArray(new String[0]));

        Student s = cache.get(1);
        System.out.println(s.getName() + "," + s.getBirthday());
        ignite.close();
    }
}

您在此处显示的代码将在您的应用程序中执行,没有魔法发生。通常它是一个客户端节点,但是在你的情况下它是在服务器模式下启动的(可能是错误的):Ignition.setClientMode(false).

数据加载过程将发生在每个服务器节点上。 IE。每个服务器节点将执行 SQL 提供的查询以从数据库加载数据。