该技能用于为指定 Kafka topic 生成 ShadowTraffic 合成数据配置。它会通过会话中已连接的 Kafka MCP 服务器(如 Lenses、Confluent、Aiven 等)发现环境、topic、分区数、bootstrap servers、Schema Registry URL,以及 key 和 value 的 schema 格式(AVRO、JSON、PROTOBUF 或 NONE)与内容,然后把每个字段映射到语义合适的 ShadowTraffic _gen 生成器。若没有可用的 Kafka MCP,或发现不到信息,则转为向用户索取 topic 名、bootstrap servers、Schema Registry URL、键值 schema 格式与内容。生成前必须经过确认环节,向用户复述发现结果并等待确认,不能直接写文件。确认后按 schema 格式选择序列化器:Avro 用 io.confluent.kafka.serializers.KafkaAvroSerializer,JSON Schema 用 KafkaJsonSchemaSerializer,Protobuf 用 KafkaProtobufSerializer,纯字符串键且无 schema 时键用 StringSerializer、值用 io.shadowtraffic.kafka.serdes.JsonSerializer;键和值可分别选择。当使用 Confluent 序列化器并设置 schema.registry.url 时,ShadowTraffic 会自动按 TopicNameStrategy 下载已注册 schema。生成器遵循常见映射:*Id 用 uuid、名称用 #{Name.fullName}、邮箱用 #{Internet.emailAddress}、金额用 uniformDistribution、枚举用 oneOf 且只取 schema 中的值、时间戳用 now、可空联合用 weightedOneOf。输出两个文件:shadowtraffic-config.json 和 license.env.example,随后用 Docker 运行 ShadowTraffic linter 校验,修复全部报错后再交付。交付内容包含文件路径、Docker 运行命令、字段与 _gen 对照表和 throttleMs 限速说明。限制:需要已连接 Kafka MCP 或用户手动提供全部连接与 schema 信息;需要 Docker 运行 linter;需要有效 ShadowTraffic 许可证;无 schema 时不进行 schema 校验。
kafka-shadowtraffic
数据与分析
更新于 10-15 23:58