Logstash+Kafka网络通道之消息编解码

本文探讨了在Logstash中使用UDP作为输入,通过BASE64编码处理数据,以适应最大UDP包限制。在数据经Kafka传递后,通过Base64解码,将数据写入HBase数据库的过程。在编码阶段需要注意 BASE64可能导致的字节流增长,可能需要对长字节流进行拆分处理。
摘要由CSDN通过智能技术生成

 一、编码Encode

      数据在入logstash之前,以UDP为例,注意UDP序列化后byte[]大小为固定的65507,需要取出真实数据字段进行BASE64,这里有个隐藏问题是BASE64会使数组长度变化为原来的4/3,所以太长的byte流可能就会超限无法发送,需要重新拆分,不过我们这里没这个问题。

final TBase dto = (TBase) message;
final byte[] internalBufferData = serialize(this.serializer, dto);
 final int internalBufferSize = this.serializer.getInterBufferSize();
 byte[] bufferData = new byte [internalBufferSize];
System.arraycopy(internalBufferData, 0, bufferData, 0, internalB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值