เรามีโทโพโลยีสตรีมที่จะทำงานกับเครื่องหลายเครื่อง เรากำลังจัดเก็บผลลัพธ์การรวมกลุ่มที่มีกรอบเวลาไว้ในร้านค้าของรัฐ เนื่องจากร้านค้าของรัฐกำลังจัดเก็บข้อมูลในเครื่อง การรวมจึงควรดำเนินการในหัวข้ออื่นสำหรับการรวมโดยรวม ฉันคิดว่า แต่ดูเหมือนว่าฉันขาดอะไรบางอย่างไปเพราะไม่มีตัวอย่างใดที่รวบรวมโดยรวมใน KStream หรือโปรเซสเซอร์อื่น
เราจำเป็นต้องใช้ตรรกะ groupBy เพื่อจัดเก็บการรวมกลุ่มโดยรวม หรือใช้ GlobalKtable หรือเพียงแค่ใช้รหัสการควบรวมของเราเองในที่ใดที่หนึ่งหรือไม่?
สถาปัตยกรรมที่ถูกต้องสำหรับสิ่งนี้คืออะไร?
ในโค้ดด้านล่างนี้ ฉันได้พยายามจัดกลุ่มข้อความทั้งหมดที่มาถึงโปรเซสเซอร์ด้วยคีย์คงที่เพื่อจัดเก็บการรวมกลุ่มโดยรวมไว้ในเครื่องเพียงเครื่องเดียว แต่ฉันคิดว่ามันจะสูญเสียความขนานที่ Kafka จัดหาให้ไป
dashboardItemProcessor = streamsBuilder.stream("Topic25", Consumed.with(Serdes.String(), eventSerde))
.filter((key, event) -> event != null && event.getClientCreationDate() != null);
dashboardItemProcessor.map((key, event) -> KeyValue.pair(key, event.getClientCreationDate().toInstant().toEpochMilli()))
.groupBy((key, event) -> "count", Serialized.with(Serdes.String(), Serdes.Long()))
.windowedBy(timeWindow)
.count(Materialized.as(dashboardItemUtil.getStoreName(itemId, timeWindow)));
event.getName()
หรือevent.getClientUuid()
หรือคล้ายกัน แต่อย่างที่ฉันบอกไป ฉันไม่รู้ข้อมูลของคุณ - person OneCricketeer   schedule 12.09.2018