- 博客(9)
- 收藏
- 关注

原创 Unexpected EOF read on the socket
最近负责的SpringBoot项目日志里面老是出现“Unexpected EOF read on the socket”的错误,但是测试时,测来测去又没发现什么问题,但是看到日志里面有错误日志又不知道原因,这个怎么能忍,所以花点时间好好看看。首先得出我的结论:在客户端上传请求体的期间,客户端关闭了网络连接,导致服务器端的输入流异常中断,最终导致Jackson反序列化出现异常。下面是具体的分析过程。首先我们看看错误日志:11:00:13.792 [http-nio-9090-exec-1] E.
2020-08-11 17:50:11
27488
11
原创 为什么循环比递归快
但是有些算法是循环实现不了的,比如回溯算法,就必须得使用递归才能实现,因为这里必须要用到返回值来实现回溯的过程,这种情况就只能使用递归了。循环和递归基本思路是差不多的,但是这两者之间最大区别则是在于执行效率上,循环的执行效率要比递归快,递归的代价要比循环的大得多。22 istore 5 //把相除的结果赋值给index, int index = (left + right) / 2。13 istore 6 //将相除的结果赋值给index,int index = (left + right) / 2;
2023-03-10 13:29:07
2399
原创 FlinkKafkaConsumer并行度设置
这个代码里的addSource、map里面的自定义函数会被分配进同一个JobVertex,这里的JobVertex跟Spark里面的Stage几乎是等价的概念,同一个JobVertex的算子会放进同一个task线程里执行,上一个算子的数据会直接通过方法调用传递给下一个算子。所以当source算子并行度大于topic分区数时,有的task线程就会分配不到相应的分区,就会出现空转的情况,浪费资源,而且这里影响到的不仅仅是source单个算子,还包括被包含在同一个JobVertex的其他算子。
2022-08-19 16:38:58
3457
2
原创 Spark mapPartitions算子注意事项与编程技巧
最近不是很忙,把之前写的代码review了一遍,发现一个关于mapPartitions算子小问题。在我们的业务中有一个需求就是要把收集的日志里面的long型时间戳转换成年月日的String类型,代码很简单,如下:.map((MapFunction<Data, Data>) value -> { SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); format.setTimeZone(TimeZon
2022-05-13 15:56:51
1065
原创 Spark:Container exited with a non-zero exit code 137
最近公司用户量暴涨,老板笑嘻嘻,但是搬砖的心里MMP,服务器压力骤然上升,最近大数据集群在跑spark任务时老是报“Container exited with a non-zero exit code 137”这样的错误,详细日志如下:22/04/29 11:02:27 WARN YarnSchedulerBackend$YarnSchedulerEndpoint: Requesting driver to remove executor 4 for reason Container marked a
2022-05-06 15:30:53
7379
1
原创 Java String的不可变性
学过一段时间Java的人都知道String具有不可变性,但是对于初学者而言对String的不可变性的认识可能还是会比较模糊。为什么Java的String要设计成不可变的呢,它的不可变性是怎么实现的呢,以及它的不可变性对我们的编码具有什么影响呢?最近自己在看jvm和多线程相关的知识,对String的不可变性有了一写新的认识,所以跟大家分享一下。1.不可变性首先我们从普遍意义上来说明一下不可变...
2022-02-16 14:55:14
1072
原创 Flink集成Mybatis
最近在使用Flink写了一个流式处理项目,最后是把处理的结果写到mysql里面,虽然Flink官方提供JDBC Connector,但是毕竟JDBC太原始了,用Mybatis+Druid不香吗,经过一段时间的摸索和测试,把最后的代码以及遇到的一些问题分享一下。相关依赖: pom.xml<dependency> <groupId>org.mybatis</groupId> <artifactId>myb......
2021-08-27 13:46:43
3335
原创 JAVA动态代理与静态代理
java很多地方都会用到动态代理,比如最常见就是spring的面向切面编程,之前也看了一下将动态代理的文章,但是作为一个资深搬砖工程师在平时的编码过程中几乎是用不到这个概念的,最近对mybatis原理有一点兴趣,刚好mybatis里面也用到了动态代理,那么我们就来实际写点代码来探索一下。mybatis里面最基本的用法是调用SqlSession.getMapper(Class<T> type)来返回参数type的一个实例,来进一步调用type里面定义的方法来执行SQL,但是type就只是一个接
2020-11-30 10:50:31
185
原创 对Java中的接口的认识
相信用过Java的人对接口(interface)都不会陌生,每天写代码都可能会用到它。但是呢写了几年Java代码后,还是觉得对接口的理解不是很清楚,一来是对“接口”这个名字比较纠结,我们平时会听到很多电脑硬件上面的接口,比如USB接口、VGA接口等等,直观地讲接口是就用来“插”的,但是软件里面怎么会有接口,这个接口怎么“插”呢?二来是不是很清楚接口的实际意义是什么,在Java里面经常会看到很多地方会要求我们的类去实现一个接口,那为什么需要这样的要求哪,接口里面定义一些空的方法,这样的要求的目的是什么呢?最近
2020-07-14 17:22:52
433
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人