曂沅仴駦 发表于 2025-4-8 11:23:12

分布式微服务系统架构第96集:大型跨境电商JVM调优,MongoDB、Elasticsearch (ES)、Cassandra

加群联系作者vx:xiaoda0423
仓库地址:https://webvueblog.github.io/JavaPlusDoc/
https://1024bat.cn/
方法界说:

public void handleBiz(List<ConsumerRecord<?, ?> > records, long countTime, String timeStr)

[*]records:从 Kafka 消费到的消息列表。
[*]countTime:用于记录处理耗时的初始时间戳。
[*]timeStr:处理时间字符串,一般为当前时间格式化结果。
1. 遍历 Kafka 消息:

for (ConsumerRecord<?, ?> record : records) {对每条消息进行业务处理。
解析 JSON 转为对象:

String value = record.value().toString();ES 异步写入及耗时记录:

将事件信息写入 ES 异步批处理系统(可能用于后续查询或分析)并记录耗时。
装备响应处理(装备侧上报才响应):



[*]假如装备上传带有响应信息,而且是 装备端上报,则向装备返回响应;
[*]失败则跳过,等待下次装备重发。
判定是否重复事件(幂等性处理):

构造唯一标识,并通过 Redis 判定事件是否已经处理,防止因装备重发造成重复操作。
查询事件明细判定是否已经入库(制止重复):

假如该事件的明细数据已经存在,说明该事件已经完备处理,跳过即可。
校验用户订单:

判定当前用户是否正在进行换电操作(有进行中的订单),假如没有,调用 isReportBlChangeBat 判定是否需要响应,并跳过处理。
总结版对比:

场景/特性
MongoDB
Elasticsearch
Cassandra
查询速率(通用)
⭐⭐☆(较快)
⭐⭐⭐(超快)
⭐☆(一般)
复杂查询支持
强(文档查询、聚合)
强(全文检索、聚合、打分)
弱(只支持简单查询)
全文搜索
一般(支持,但不强)
非常强(焦点优势)
弱(险些不支持)
实时数据分析
中等
非常快
较慢(非计划目标)
批量写入性能

中等
非常高(写入利器)
写入一致性保障
强(支持事务)
弱(可设置)
最终一致性
适合数据结构
文档型(JSON)
文档型(JSON)
表结构(类SQL行列结构)
页: [1]
查看完整版本: 分布式微服务系统架构第96集:大型跨境电商JVM调优,MongoDB、Elasticsearch (ES)、Cassandra