我正在研究构建一个没有数据接收器的 flink 管道。即,当我的管道成功对数据存储进行 api 调用时,它就会结束。
在这种情况下,如果我们不使用接收器运算符,检查点将如何工作?
因为检查点基于检查点前纪元(所有保存在状态中或发送到接收器中的事件)和检查点后纪元的概念。Flink 管道是否需要接收器?
我对同步实例方法和静态方法很困惑.我想写一个线程安全类如下:
public class safe {
private final static ConcurrentLinkedQueue<Object> objectList=
new ConcurrentLinkedQueue<Object>();
/**
* retrieves the head of the object and prints it
*/
public synchronized static void getHeadObject() {
System.out.println(objectList.peek().toString());
}
/**
* creates a new object and stores in the list.
*/
public synchronized void addObject() {
Object obj=new Object();
objectList.add(obj);
}
}
Run Code Online (Sandbox Code Playgroud)
在静态方法上同步将锁定safe.class锁,并且在实例方法上进行同步将锁定此问题,因此将达到不一致的状态.
如果我想为下面的代码片段实现一致状态,那么如何实现呢?
我是Docker的新手,正在尝试探索多阶段构建。我想在Docker上运行特定阶段docker build -t build-stage-tag --target build
我希望它可以运行以下阶段dependencies --> compile --> build并跳过test。但是碰巧它也运行测试阶段。
让我知道我对多阶段构建的理解--target是错误的还是我的docker文件中存在一些错误。
我想做的是运行build舞台而不运行,test反之亦然。
这是我的Dockerfile的外观:
# Pull base image
FROM openjdk:8u171 as dependencies
# Install Scala
## Piping curl directly in tar
// do some stuff
# Copy source into container
COPY . /usr/src/app
FROM dependencies as compile
WORKDIR /usr/src/app
# Test and build the jar in the same step to save time
RUN sbt -Dsbt.log.noformat=true compile
RUN sbt -Dsbt.log.noformat=true …Run Code Online (Sandbox Code Playgroud)