Java的Jar包冲突的总结和实践

“我这边现在有个问题,兵哥,你忙吗,想找你看看,有关冲突的,等等我联系下你”,这天接到线上求助。一般情况下jar包冲突开发都可以自己搞定,然后听说找了好几个人,按照常规手法没有搞定。感觉是遇到了疑难杂症,我听完挺有兴趣的,有什么jar包冲突是我们没遇到过的吗?我们今天来总结下jar包冲突相关的处理手法。

继续阅读“Java的Jar包冲突的总结和实践”

又一起GC问题排查过程

背景

继上次找到redis导致的gc问题之后,又有一个应用发生了gc时间长的问题。每次gc的大概1s的停顿时间,导致这1s的请求全部超时,经常被业务方投诉。因为G1有更好的并行度,更短和确定的并行时间,因此负责的开发将应用从CMS升级到G1,然而问题依然没有解决. 这是一个网关类型的应用,负责接受rpc的调用,将请求转发到后端的http请求,将封装好的数据,转发给业务使用。所以实际上是

Application---->rpc-->GateWay(问题应用)-----http client ---> 其他服务.

继续阅读“又一起GC问题排查过程”

flink使用时间戳作为起始offset消费kafka的问题

代码如下
private static voidtest2()throwsException {
    EnvironmentSettings fsSettings = EnvironmentSettings.newInstance().useOldPlanner().inStreamingMode().build();
   StreamExecutionEnvironment fsEnv = StreamExecutionEnvironment.getExecutionEnvironment();
   StreamTableEnvironment tttt = StreamTableEnvironment.create(fsEnv,fsSettings);
   Properties properties =newProperties();
   properties.setProperty("bootstrap.servers","localhost:9092");
    properties.setProperty("group.id","test"+ System.currentTimeMillis());
   FlinkKafkaConsumer011 kafkaConsumer011 =newFlinkKafkaConsumer011("test", newSimpleStringSchema(),properties);
   kafkaConsumer011.setStartFromTimestamp(System.currentTimeMillis());
   DataStream stream = fsEnv.addSource(kafkaConsumer011);
   stream.print();
   fsEnv.execute("test");
}2019-10-21 23:06:58.970 [Thread-8] INFO  o.a.f.s.connectors.kafka.FlinkKafkaConsumerBase - Consumer subtask 0 creating fetcher with offsets {}.
表现为,无法收到kafka发送过来的消息。这就很奇怪了,因为我使用kafka-consumer-console.sh的方式可以看到实际上是有消息产出的,但是这里死活就收不到数据。

继续阅读“flink使用时间戳作为起始offset消费kafka的问题”

flink相关 – 通过Table API写入ElasticSearch的部分源码分析

New ElasticSearch()…xxx...registerTableSink();
ElasticSearch是一个ConnectorDescriptor: 最关键的就是一个toConnectorProperties就是一个配置的map,传给factory使用,他其实是一个配置收集器.

继续阅读“flink相关 – 通过Table API写入ElasticSearch的部分源码分析”