Какая альтернатива GridAttributesTopologySpi в GridGain 6 (версия с открытым исходным кодом)

Мы переносим приложение со старой кодовой базы gridgain 4 на gridgain 6. В старом приложении мы разделили узлы на основе ключа атрибута сетки «com.mycompany.workgroup». В новом выпуске нет свойства конфигурации topologySpi или GridAttributesTopologySpi .

  1. Каков рекомендуемый подход или альтернатива?

  2. Соответствует ли какой-либо из предоставленных примеров моему требованию? Возможно, я что-то упустил, просматривая их.

Спасибо

<beans profile="default">

    <bean id="workerGrid"
          class="org.gridgain.grid.GridSpringBean">
        <property name="configuration">
            <bean parent="abstractGridConfiguration">
                <property name="gridName" value="${grid.name}-worker"/>
                <property name="userAttributes">
                    <map merge="true">
                        <entry key="com.mycompany.master" value="false"/>
                    </map>
                </property>
                <property name="topologySpi">
                    <bean class="org.gridgain.grid.spi.topology.attributes.GridAttributesTopologySpi">
                        <property name="attributes">
                            <map>
                                <entry key="com.mycompany.workgroup" value="${grid.workgroup}"/>
                            </map>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

person Vinay B    schedule 11.04.2014    source источник


Ответы (1)


Альтернативой является использование GridProjection, например

Grid grid = GridGain.grid();

GridProjection prj = grid.forAttribute("com.mycompany.workgroup", "workers");

GridComputeTaskFuture<?> fut = prj.compute().execute(new MyTask());

// Synchronous wait.
prj.get();
person Dmitriy    schedule 12.04.2014
comment
Спасибо, сработало.. 1). В GridGain6 больше нет способа настроить нужные атрибуты через SPI (наверное, нет)? 2. Есть ли способ сразу указать набор атрибутов, а не связывать их в цепочку, например GridComputeTaskFuture<GridInstanceTaskResult> future = master .forAttribute("com.company.master", "false") .forAttribute("com.mycompany.workgroup", masterInstance1.getWorkgroup()) .compute().execute(new GridInstanceTask(), "something"); ? Спасибо еще раз - person Vinay B; 16.04.2014
comment
Вот еще один способ добиться того же результата в коде. Извините за форматирование, GridInstanceTaskResult> future = master .forPredicate(new GridPredicate<GridNode>() { @Override public boolean apply(GridNode gridNode) { final Map<String, Object> attributes = gridNode.attributes(); return attributes.get("com.mycompany.master").equals("false") && attributes.get("com.mycompany.workgroup").equals(masterInstance1.getWorkgroup()); } }) .compute().execute(new GridInstanceTask(), "something"); - person Vinay B; 16.04.2014
comment
@VinayB 1) Больше нет возможности указать топологию задачи через SPI 2) Вы можете либо использовать цепочку, либо определить свой собственный предикат, как вы это сделали. - person Dmitriy; 16.04.2014