我有一个使用KCL的kinesis消费者应用程序。 Kinesis流有3个分片,KCL在一个实例上运行。因此,在使用同一个worker创建的一个实例上将运行三个记录处理器线程。
这些记录处理器是使用相同的记录处理器工厂创建的。这些记录处理器的线程是否安全?
说我的recordprocessorfactory构造函数的签名是
class MyRecordProcessordFactory implements IRecordProcessorFactory{
A a;B b;
MyRecordProcessorFactory(A a , B b)
this.a=a;this.b=b;
}
public IRecordProcessor createProcessor(){
return new MYRecordProcessor(a,b);
}
}
public class MYRecordProcessor implements IRecordProcessor{
A a,B b;
MYRecordProcessor(A a,B b){this.a=a;this.b=b;}
public void processRecords(ProcessRecordInput processRecordInput){
use a ;
use b;
}
}
在processRecords线程安全中使用a和b吗?如果没有做什么,使其线程安全。 只需在MyRecordProcessorFactory和MyRecordProcessor中创建a和b参考最终版本就可以了吗?