我正在构建几个微服务和一个记录微服务。
日志微服务代码将在其他微服务向Kafka发送日志后发布。作为微服务进行日志记录必须消耗从基于JS的微服务发送的所有日志数据,并且我必须在GO中接收JSON。
有没有其他不使用解析器的方法?(就像g-RPC一样,为了更快地传输,将整个数据转换为二进制,并且对任何环境都是可以理解的。)
在使用Message Broker时,我对不同环境如何协同工作知之甚少。
我正在构建几个微服务和一个记录微服务。
日志微服务代码将在其他微服务向Kafka发送日志后发布。作为微服务进行日志记录必须消耗从基于JS的微服务发送的所有日志数据,并且我必须在GO中接收JSON。
有没有其他不使用解析器的方法?(就像g-RPC一样,为了更快地传输,将整个数据转换为二进制,并且对任何环境都是可以理解的。)
在使用Message Broker时,我对不同环境如何协同工作知之甚少。
2条答案
按热度按时间wswtfjt71#
我不确定我完全明白你在问什么。
Kafka存储字节,JS和Golang都有客户。两种语言/环境都需要有可用于序列化和反序列化的库。关于Golang,您不需要结构来读取JSON。
与g-RPC一样,RPC将整个数据转换为二进制,以加快传输速度,并且对任何环境都可理解
你可以在Kafka主题中使用Protobuf。
或者,您可以使用像Elasticearch或Splunk这样的工具来消费任何Kafka事件,并在反序列化这些记录之后索引字段,而不需要任何Go消费者。
但是,确实需要某个解析器将您的数据索引为可搜索的格式。
zte4gxcn2#
您可以使用schemas (Protobuf, Avro, JSON Schema),因此它将被转换为二进制,尽管为了充分利用它的优点,您将需要一个schema registry,否则,它将把模式嵌入到每条消息中。