StreamClient

Contents

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()。