记一次难受的上线经历

本文记录了一次信贷业务上线过程中遇到的ES版本冲突、Spark与Flink转换问题,以及解决这些问题的经过。从Spark消费Kafka数据到ES存储,因jar包版本不一致导致各种错误,最终通过修改查询方式、处理数据类型和调整打包策略成功解决问题并上线。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.业务背景

该业务为信贷业务,业务流程图如下:信贷基本流程
数据部门主要是对两次用户数据进行存储和解析转换,存储用的ES来存(将两次用户数据合并存为一条)

2.开发

由于之前业务是通过spark消费kafka数据进行计算,最后落地到ES上,所以这次需求下来,也直接采用了这个方案。
于是开发阶段就确定,第一次数据通过spark计算指标之后,就直接落地ES,然后第二次ES过来之后,通过申请号(同一个用户申请号一致)将两条数据合并,最后再落ES。
在这样的方案下,开发进行得很顺利。

3.测试

在测试阶段,利用本地idea跑spark程序进行联调测试得,当然测试也很顺利得通过。

4.上线

临近上线,我早早的到线上环境部署,完蛋,部署报错,java.lang.NoSuchFieldError: INSTANCE,于是Google了一下,好吧 版本冲突。心想,哎呀 这个简单呀。然后回到开发环境一顿操作。PS:还发现了RestHighLevelClient对象没有单例,然后把单例加上了。

操作一通后,发现还有测试集群环境这个东西,之前居然没有想到。然后部署了测试集群环境,发现主要是httpcli

包含以下java源文件: com.google.gson.DefaultDateTypeAdapter.class com.google.gson.ExclusionStrategy.class com.google.gson.FieldAttributes.class com.google.gson.FieldNamingPolicy.class com.google.gson.FieldNamingStrategy.class com.google.gson.Gson.class com.google.gson.GsonBuilder.class com.google.gson.InstanceCreator.class com.google.gson.JsonArray.class com.google.gson.JsonDeserializationContext.class com.google.gson.JsonDeserializer.class com.google.gson.JsonElement.class com.google.gson.JsonIOException.class com.google.gson.JsonNull.class com.google.gson.JsonObject.class com.google.gson.JsonParseException.class com.google.gson.JsonParser.class com.google.gson.JsonPrimitive.class com.google.gson.JsonSerializationContext.class com.google.gson.JsonSerializer.class com.google.gson.JsonStreamParser.class com.google.gson.JsonSyntaxException.class com.google.gson.LongSerializationPolicy.class com.google.gson.TreeTypeAdapter.class com.google.gson.TypeAdapter.class com.google.gson.TypeAdapterFactory.class com.google.gson.annotations.Expose.class com.google.gson.annotations.SerializedName.class com.google.gson.annotations.Since.class com.google.gson.annotations.Until.class com.google.gson.internal.ConstructorConstructor.class com.google.gson.internal.Excluder.class com.google.gson.internal.JsonReaderInternalAccess.class com.google.gson.internal.LazilyParsedNumber.class com.google.gson.internal.LinkedTreeMap.class com.google.gson.internal.ObjectConstructor.class com.google.gson.internal.Primitives.class com.google.gson.internal.Streams.class com.google.gson.internal.UnsafeAllocator.class com.google.gson.internal.bind.ArrayTypeAdapter.class com.google.gson.internal.bind.CollectionTypeAdapterFactory.class com.google.gson.internal.bind.DateTypeAdapter.class com.google.gson.internal.bind.JsonTreeReader.class com.google.gson.internal.bind.JsonTreeWriter.class com.google.gson.internal.bind.MapTypeAdapterFactory.class com.google.gson.internal.bind.ObjectTypeAdapter.class com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.class com.google.gson.internal.bind.SqlDateTypeAdapter.class com.google.gson.internal.bind.TimeTypeAdapter.class com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.class com.google.gson.internal.bind.TypeAdapters.class com.google.gson.reflect.TypeToken.class com.google.gson.stream.JsonReader.class com.google.gson.stream.JsonScope.class com.google.gson.stream.JsonToken.class com.google.gson.stream.JsonWriter.class com.google.gson.stream.MalformedJsonException.class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值