StreamClient#
- 包路径:
org.yuanrong.datasystem.stream
流客户端。
构造方法#
public StreamClient(ConnectOptions connectOptions)#
连接到 Worker 并创建一个流缓存客户端实例。
- 参数:
connectOptions - 用于建立连接的参数,详见 ConnectOptions 章节。
- 返回:
流缓存客户端实例。
StreamClient(ConnectOptions connectOptions, boolean shouldReportWorkerLost)#
连接到 Worker 并创建一个流缓存客户端实例。
- 参数:
connectOptions - 用于建立连接的参数,详见 ConnectOptions 章节。
shouldReportWorkerLost - 当 Worker 崩溃或 Worker 丢失客户端时是否向调用者报告。
- 返回:
流缓存客户端实例。
公共方法#
public Producer createProducer(String streamName)#
创建一个 Producer 来发送元素。
- 参数:
streamName - 流的名称。
- 返回:
用户可以用来发送元素的 Producer 接口。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public Producer createProducer(String streamName, long delayFlushTimeMs)#
创建一个 Producer 来发送元素。
- 参数:
streamName - 流的名称。
delayFlushTimeMs - 发送后自动刷新的时间(毫秒),默认值为 5ms。
- 返回:
用户可以用来发送元素的 Producer 接口。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public Producer createProducer(String streamName, long delayFlushTimeMs, long pageSizeByte)#
创建一个 Producer 来发送元素。
- 参数:
streamName - 流的名称。
delayFlushTimeMs - 发送后自动刷新的时间(毫秒)。
pageSizeByte - 分配页面的大小,默认大小为 1MB,必须是 4KB 的倍数。
- 返回:
用户可以用来发送元素的 Producer 接口。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public Producer createProducer(String streamName, long delayFlushTimeMs, long pageSizeByte, long maxStreamSize)#
创建一个 Producer 来发送元素。
- 参数:
streamName - 流的名称。
delayFlushTimeMs - 发送后自动刷新的时间(毫秒)。
pageSizeByte - 分配页面的大小,默认大小为 1MB,必须是 4KB 的倍数。
maxStreamSize - Worker 中的最大流大小,默认大小为 1GB,必须大于 64KB 且小于共享内存大小。
- 返回:
用户可以用来发送元素的 Producer 接口。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public Producer createProducer(String streamName, long delayFlushTimeMs, long pageSizeByte, long maxStreamSize, boolean autoCleanup)#
创建一个 Producer 来发送元素。
- 参数:
streamName - 流的名称。
delayFlushTimeMs - 发送后自动刷新的时间(毫秒)。
pageSizeByte - 分配页面的大小,默认大小为 1MB,必须是 4KB 的倍数。
maxStreamSize - Worker 中的最大流大小,默认大小为 1GB,必须大于 64KB 且小于共享内存大小。
autoCleanup - 当最后一个消费者/生产者退出时是否自动删除,默认为 false。
- 返回:
用户可以用来发送元素的 Producer 接口。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public Producer createProducer(String streamName, long delayFlushTimeMs, long pageSizeByte, long maxStreamSize, boolean autoCleanup, long retainForNumConsumers)#
创建一个 Producer 来发送元素。
- 参数:
streamName - 流的名称。
delayFlushTimeMs - 发送后自动刷新的时间(毫秒)。
pageSizeByte - 分配页面的大小,默认大小为 1MB,必须是 4KB 的倍数。
maxStreamSize - Worker 中的最大流大小,默认大小为 1GB,必须大于 64KB 且小于共享内存大小。
autoCleanup - 当最后一个消费者/生产者退出时是否自动删除,默认为 false。
retainForNumConsumers - 为多少个消费者保留数据,默认为 0。
- 返回:
用户可以用来发送元素的 Producer 接口。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public Producer createProducer(String streamName, long delayFlushTimeMs, long pageSizeByte, long maxStreamSize, boolean autoCleanup, long retainForNumConsumers, boolean encryptStream)#
创建一个 Producer 来发送元素。
- 参数:
streamName - 流的名称。
delayFlushTimeMs - 发送后自动刷新的时间(毫秒)。
pageSizeByte - 分配页面的大小,默认大小为 1MB,必须是 4KB 的倍数。
maxStreamSize - Worker 中的最大流大小,默认大小为 1GB,必须大于 64KB 且小于共享内存大小。
autoCleanup - 当最后一个消费者/生产者退出时是否自动删除,默认为 false。
retainForNumConsumers - 为多少个消费者保留数据,默认为 0。
encryptStream - 是否启用 Worker 之间的流数据加密,默认为 false。
- 返回:
用户可以用来发送元素的 Producer 接口。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public Producer createProducer(String streamName, long delayFlushTimeMs, long pageSizeByte, long maxStreamSize, boolean autoCleanup, long retainForNumConsumers, boolean encryptStream, long reserveSize)#
创建一个 Producer 来发送元素。
- 参数:
streamName - 流的名称。
delayFlushTimeMs - 发送后自动刷新的时间(毫秒)。
pageSizeByte - 分配页面的大小,默认大小为 1MB,必须是 4KB 的倍数。
maxStreamSize - Worker 中的最大流大小,默认大小为 1GB,必须大于 64KB 且小于共享内存大小。
autoCleanup - 当最后一个消费者/生产者退出时是否自动删除,默认为 false。
retainForNumConsumers - 为多少个消费者保留数据,默认为 0。
encryptStream - 是否启用 Worker 之间的流数据加密,默认为 false。
reserveSize - 默认保留大小为页面大小,必须是页面大小的倍数。
- 返回:
用户可以用来发送元素的 Producer 接口。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public Consumer subscribe(String streamName, String subName, SubscriptionType subscriptionType)#
订阅一个新的消费者到主请求。
- 参数:
streamName - 流的名称。
subName - 订阅的名称。
subscriptionType - 订阅类型,详见 SubscriptionType 章节。
- 返回:
Consumer 实例。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public Consumer subscribe(String streamName, String subName, SubscriptionType subscriptionType, boolean shouldAutoAck)#
订阅一个新的消费者到主请求。
- 参数:
streamName - 流的名称。
subName - 订阅的名称。
subscriptionType - 订阅类型,详见 SubscriptionType 章节。
shouldAutoAck - 是否为此订阅者启用自动确认。
- 返回:
Consumer 实例。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public long queryGlobalProducerNum(String streamName)#
查询全局 Worker 节点中的生产者数量。
- 参数:
streamName - 目标流的名称。
- 返回:
查询结果。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public long queryGlobalConsumerNum(String streamName)#
查询全局 Worker 节点中的消费者数量。
- 参数:
streamName - 目标流的名称。
- 返回:
查询结果。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public void deleteStream(String streamName)#
删除流。
- 参数:
streamName - 目标流的名称。
- 异常:
DataSystemException - 如果客户端已关闭,将抛出异常。
public void close()#
删除流客户端,断开与数据系统 Worker 之间的连接,释放客户端持有的资源。
public void finalize()#
finalize() 方法用于释放 JNI 端的流客户端指针,由于java垃圾回收的不确定性,该操作不能保证会被执行。
强烈建议使用 close() 方法显式释放资源,而不是依赖 finalize()。