一、说明

在业务使用消息接入方式时,业务一般仅需将数据按照DataProxy可识别的格式(如六段协议、数字化协议等) 进行组包发送,就可以将数据接入到inlong。但为了保证数据可靠性、负载均衡、动态更新proxy列表等安全特性 用户程序就需要考虑更多最终导致程序过于繁琐臃肿。

API的设计初衷就是为了简化用户接入,承担部分可靠性相关的逻辑。用户通过在服务送程序中集成API后,即可将数据发送到DataProxy,而不用关心组包格式、负载均衡等逻辑。

二、功能说明

2.1 整体功能说明

功能详细描述
组包功能(新)将用户数据按打包发送到DataProxy可识别的组包格式(如六段协议、数字化协议等)打包发送到DataProxy
压缩功能发送打包发送到DataProxy前,将用户数据进行压缩,减少网络带宽占用
维护DataProxy列表每隔五分钟获取打包发送到DataProxy列表 ,以检测运维侧是否存在上下线DataProxy机器的情况;每隔20s自动剔除不可用连接,以保证已连接的DataProxy能正常运作
指标统计(新)增加业务分钟级别发送量的指标(接口级)
负载均衡(新)使用新的策略将发送的数据在多个DataProxy间进行负载均衡,不再依靠简单的随机+轮询机制来保证
DataProxy列表持久化(新)根据业务id对DataProxy列表持久化,防止程序启动时配置中心发生故障无法发送数据

2.2 数据发送功能说明

同步批量函数

  1. public SendResult sendMessage(List<byte[]> bodyList, String groupId, String streamId, long dt, long timeout, TimeUnit timeUnit)
  2. 参数说明
  3. bodyList是用户需要发送的多条数据的集合,总长度建议小于512kgroupId代表业务idstreamId代表接口iddt表示该数据的时间戳,精确到毫秒级别。也可直接设置为0,此时api会后台获取当前时间作为其时间戳。timeout & timeUnit:这两个参数是设置发送数据的超时时间,一般建议设置成20s

同步单条函数

  1. public SendResult sendMessage(byte[] body, String groupId, String streamId, long dt, long timeout, TimeUnit timeUnit)
  2. 参数说明
  3. body是用户要发送的单条数据内容,其余各参数涵义基本与批量发送接口一致。

异步批量函数

  1. public void asyncSendMessage(SendMessageCallback callback, List<byte[]> bodyList, String groupId, String streamId, long dt, long timeout,TimeUnit timeUnit)
  2. 参数说明
  3. SendMessageCallback 是处理消息的callbackbodyList为用户需要发送的多条数据的集合,多条数据的总长度建议小于512kgroupId是业务idstreamId是接口iddt表示该数据的时间戳,精确到毫秒级别。也可直接设置为0,此时api会后台获取当前时间作为其时间戳。timeouttimeUnit是发送数据的超时时间,一般建议设置成20s

异步单条函数

  1. public void asyncSendMessage(SendMessageCallback callback, byte[] body, String groupId, String streamId, long dt, long timeout, TimeUnit timeUnit)
  2. 参数说明
  3. body为单条消息内容,其余各参数涵义基本与批量发送接口一致