我们使用kafka存储消息并推送大量消息(一分钟> 30k).我不确定它是否相关,但是作为kafka消息的生产者的代码是在jruby中.
序列化和反序列化消息也会对系统产生性能影响.
在序列化和反序列化的速度方面,有人可以帮助比较Avro与Protocol Buffer.
performance serialization protocol-buffers avro apache-kafka
我使用了一个地图,它使用句子中的单词作为键,整数作为值.
func WordCount(s string) map[string]int {
var m map[string]int
m = make(map[string]int)
var substrings[]string
count := 0
substrings = strings.Split(s, " ")
for i := range substrings {
count = count + 1
m[substrings[i]] = count
}
return m
}
func main() {
fmt.Println(WordCount("I am learning GO since some days"))
}
Run Code Online (Sandbox Code Playgroud)
以上代码始终以正确的顺序显示地图,即
map[I:1 am:2 learning:3 GO:4 since:5 some:6 days:7]
Run Code Online (Sandbox Code Playgroud)
但如果我改变
count = count + 1
Run Code Online (Sandbox Code Playgroud)
至
count++
Run Code Online (Sandbox Code Playgroud)
输出更改为:
map[learning:3 GO:4 since:5 some:6 days:7 I:1 am:2]
Run Code Online (Sandbox Code Playgroud)
我知道地图迭代在Golang中是随机的,但为什么count = …
这个问题没有太多细节,我收到了一个时间类型为 的kafka 事件google.protobuf.Timestamp。这些 kafka 事件正在(通过 HTTP)发布到我的 rails 应用程序,我需要时间以 ruby 的日期时间格式而不是google.protobuf.Timestamp
apache-kafka ×1
avro ×1
dictionary ×1
epoch ×1
go ×1
hashmap ×1
performance ×1
ruby ×1
time ×1