私はApache Igniteの初心者です。私は3つのJavaクラスClassA、ClassB、およびClassCを持っています。Apache Igniteでオブジェクトアフィニティを作成するには?
ClassA{
int idA; //unique
String stringA;
public ClassA(){}
public ClassA(int idA,String stringA){
this.idA=idA;
this.stringA=stringA;
}
public int getidA(){
return idA;
}
public String getstringA(){
return stringA;
}
}
ClassB{
int idB; //unique
String stringB;
public ClassB(){}
public ClassB(int idB,String stringB){
this.idB=idB;
this.stringB=stringB;
}
public int getidB(){
return idB;
}
public String getstringB(){
return stringB;
}
}
ClassC{
int idC,idB; //idC unique. idB from ClassB
String stringC;
public ClassC(){}
public ClassB(int idB,int idC,String stringC){
this.idB=idB;
this.idC=idC;
this.stringC=stringC;
}
public int getidC(){
return idC;
}
public String getstringC(){
return stringC;
}
}
例を教えてください。私はClassAを複製モードで、B & Cをパーティションモードで使いたい。 ClassCはClassBに関連しています。 ClassBのIDはClassCにあります(外部キーのように動作します)。 3つのノード、30のClassAオブジェクト、30のClassBオブジェクト、30のClassCオブジェクトがあります。それらは以下のようなノードに分散されています。
Node 1 => ClassA->30, ClassB->10,ClassC->8
Node 2 => ClassA->30, ClassB->5,ClassC->3
Node 3 => ClassA->30, ClassB->15,ClassC->19
ClassBに関連するオブジェクトは、同じノードに存在する必要があります。私はいくつかの機構AffinityKeyがあることを知っていますが、これを実装する方法はわかりません。
はすでにそれを経て。私はそれを解決することができなかったので、質問を投稿しました。 –
ClassC.idBフィールドに@AffinityKeyMapped注釈を添付する必要があります。 javadocは次のとおりです。https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cache/affinity/AffinityKeyMapped.html – Dmitriy