public class CdcMain extends Object implements Runnable
CdcConsumer to consume events(CdcEvent) from WAL segments.
The user should provide CdcConsumer implementation with custom consumption logic.
Ignite node should be explicitly configured for using CdcMain.
DataRegionConfiguration.setCdcEnabled(boolean) to true.DataStorageConfiguration.setCdcWalPath(String) to path to the directory
to store WAL segments for CDC.DataStorageConfiguration.setWalForceArchiveTimeout(long) to configure timeout for
force WAL rollover, so new events will be available for consumptions with the predicted time.DataStorageConfiguration.getCdcWalPath() is true then Ignite node on each WAL segment
rollover creates hard link to archive WAL segment in
DataStorageConfiguration.getCdcWalPath() directory. CdcMain application takes
segment file and consumes events from it.
After successful consumption (see CdcConsumer.onEvents(Iterator)) WAL segment will be deleted
from directory.
Several Ignite nodes can be started on the same host.
If your deployment done with custom consistent id then you should specify it via
IgniteConfiguration.setConsistentId(Serializable) in provided IgniteConfiguration.
Application works as follows:
IgniteConfiguration.| Modifier and Type | Field and Description |
|---|---|
static String |
BINARY_META_DIR
Binary metadata metric name.
|
static String |
CDC_DIR
Cdc directory metric name.
|
protected CdcConfiguration |
cdcCfg
Change Data Capture configuration.
|
static String |
COMMITTED_SEG_IDX
Committed segment index metric name.
|
static String |
COMMITTED_SEG_OFFSET
Committed segment offset metric name.
|
static String |
CUR_SEG_IDX
Current segment index metric name.
|
static String |
ERR_MSG |
static String |
LAST_SEG_CONSUMPTION_TIME
Last segment consumption time.
|
static String |
MARSHALLER_DIR
Marshaller metric name.
|
static String |
META_UPDATE
Metadata update time.
|
static String |
STATE_DIR
State dir.
|
| Constructor and Description |
|---|
CdcMain(IgniteConfiguration cfg,
GridSpringResourceContext ctx,
CdcConfiguration cdcCfg) |
| Modifier and Type | Method and Description |
|---|---|
static String |
cdcInstanceName(String igniteInstanceName) |
void |
consumeWalSegmentsUntilStopped()
Waits and consumes new WAL segments until stopped.
|
protected CdcConsumerState |
createState(Path stateDir)
Creates consumer state.
|
void |
run()
Runs Change Data Capture.
|
void |
runX()
Runs Change Data Capture application with possible exception.
|
void |
stop()
Stops the application.
|
public static final String ERR_MSG
public static final String STATE_DIR
public static final String CUR_SEG_IDX
public static final String COMMITTED_SEG_IDX
public static final String COMMITTED_SEG_OFFSET
public static final String LAST_SEG_CONSUMPTION_TIME
public static final String META_UPDATE
public static final String BINARY_META_DIR
public static final String MARSHALLER_DIR
public static final String CDC_DIR
protected final CdcConfiguration cdcCfg
public CdcMain(IgniteConfiguration cfg, GridSpringResourceContext ctx, CdcConfiguration cdcCfg)
cfg - Ignite configuration.ctx - Spring resource context.cdcCfg - Change Data Capture configuration.public void runX()
throws Exception
Exceptionprotected CdcConsumerState createState(Path stateDir)
public void consumeWalSegmentsUntilStopped()
public void stop()
Follow @ApacheIgnite
Ignite Database and Caching Platform : ver. 2.15.0 Release Date : April 25 2023