- 博客(215)
- 问答 (1)
- 收藏
- 关注
原创 Flink源码解析之TM之间的数据传输
Flink核心技术源码剖析与特性开发》第八章数据传输,读书笔记,主要讲解TM之间的数据传输,包括反压的实现基于Flink1.10,版本有点老,但思想是没变的。
2025-03-20 09:42:41
816
原创 Hadoop、Spark、Flink Shuffle对比
前置知识:Map任务的数量由Hadoop框架自动计算,等于分片数量,等于输入文件总大小 / 分片大小,分片大小为HDFS默认值128M,可调Reduce任务数由用户在作业提交时通过设置数据分配到Reduce任务的时间点,在Map任务执行期间,通过Partitioner(分区器)确定每个键值对的目标Reduce分区。
2025-03-08 21:33:40
1128
原创 短分享-Flink图构建
Execution是ExecutionVertex的执行抽象,Flink构成图之后,会将Execution结点分发到各个TaskManager进行执行,可以看下面本地debug图,各个Execution刚刚处于创建状态等待执行,具体后续执行流程各位感兴趣可以再继续探究。有了所有的边,就可以将边构成图了,图主要通过递归关系构建,不同Transformation有不同处理策略,对于map会把该结点和它之前的结点构成边,对于union会把它的前后结点连接起来,对于keyby会变成边的策略。
2025-03-06 21:48:43
934
原创 Mac m1 电脑 idea 卡顿的问题解决
公司发的mac m1重装系统后贼卡,我一直以为是系统兼容性的问题,平时自己太忙(懒)了,一直没看,今天抽空看了一下发现是贼简单的问题,对自己无语了。其实就是下载错版本了,可以看下打开about看下自己的版本,如果不是aarch64,而是x86,那就是版本错了。然后去idea官网再下一个就好了,估计我当时下错就是没点那个下拉按钮。。。。...
2022-02-02 12:48:28
4660
5
原创 RocketMq 集群模式下不同组、队列、标签下的负载均衡情况
前言:目前rocketmq的配置如下所示,突然发现当在本地调试程序时,有多个机器会订阅同一个组(一个生产、其余本地测试环境),感觉这样应该会有负载均衡,所以会导致生产环境上的rocketMq收不到消息,所以我决定先测试一下到底什么情况会负载均衡,然后再调整一下配置。# 人脸识别生产者的组名rocketmq.faceProducerGroup=face-producer-group# 人脸识别消费者组名rocketmq.faceConsumerGroup=face-consumer-group#
2021-03-11 22:23:20
1164
原创 简单分析Mysql不同方式联表查询的效率问题
前言:在项目中看别人写的后台代码发现了很多种连表查询的方式,所以来调查一下哪种连表查询方式效率较高,因为初入门,所以不涉及索引之类的,主要是分析过程,据我分析应该主要有三种联表方式。参考:https://www.cnblogs.com/wyq178/p/11576065.htmlhttps://blog.youkuaiyun.com/hzz532968708/article/details/77370497第一章 Mysql执行顺序来源:https://www.cnblogs.com/wyq178/
2021-03-04 12:20:58
3962
原创 内存实现原理浅析
前言:在看操作系统、计算机组成原理乃至JVM虚拟机等等时,都会提到内存的寻址空间,还经常会说到,如32位的系统内存寻址空间最多为2^32即4GB,也就是最大能用的内存为4GB,不禁好奇为什么会这样,上面的逻辑应该是每个地址能存储8bit数据,这样32位空间,也就能表达2^32个地址也就能存4GB,但直接的想一下,存储数据不只是要存储数据,还要存储地址,这样才能根据地址找到数据,但这样光地址都32位了,哪来的空间存储数据呢?新手入门,参考下大概意思即可参考:https://www.jianshu.com/
2021-02-22 11:18:45
1051
原创 RocketMq报错:the message is illegal, maybe msg body or properties length not matched
RocketMq:org.apache.rocketmq.client.exception.MQBrokerException: CODE: 13 DESC: the message is illegal, maybe msg body or properties length not matched. msg body length limit 128k, msg properties length limit 32k.
2021-01-13 22:35:15
6737
2
原创 Mysql InnoDB引擎中索引理解
前言:面试的时候经常问到索引,前面也只是拿面经背了背,今天看了看书查了查资料,重新理解了一下索引,文章中说的mysql没有特别说明指的都是InnoDB引擎下得mysql。参考:《Mysql技术内幕:InnoDB存储引擎》第一章 InnoDB逻辑存储结构InnoDB中所有数据都被逻辑地存放在一个空间中,称之为表空间,表空间又由段、区、页组成。1.1 表空间默认情况下,InnoDB存储引擎有一个共享的表空间ibdata1,即所有数据都存放在这个表空间中,如果用户启用了innodb_file_
2020-12-23 18:22:26
452
1
原创 跨域报错:Response to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Origi
在编写一个简单POST跨域请求时碰到了这个问题,我看了下网上的答案,感觉我好像也都做到了,但是就是不行,我将核心问题进行了抽象,抽象为下面的代码:前端是这样的:$.ajax({ type: "post", url: "http://localhost:8081/test/testUploadPhoto", dataType: "json", data:{ canvasPhotoBase64Data:"dataUrl", }, beforeSend:
2020-12-21 16:45:02
27589
3
转载 阿里电商架构演变之路
前言:从网上找的首届阿里中间件技术峰会上的一个报告,2017年7月的,报告的名字叫阿里电商架构演变之路,感觉不错所以看了一遍,在此记录一下,复制了其中大部分内容,并进行了整理,然后在晦涩之处用自己的语言解释了一下,用于个人复习。参考:https://yq.aliyun.com/articles/147755https://developer.aliyun.com/article/161190目录第一章 淘宝1.0第二章淘宝2.02.1 1.0架构出现的问题2.2 2.0架构.
2020-12-05 22:42:45
1277
原创 多master模式部署RocketMQ
前言:目前项目打算把一些操作都通过RocketMq改成异步的,现在系统是只有一台单点RocketMq,担心万一挂了就太影响使用了,所以打算部署成集群的,网上看到RocketMq有四种不同的部署模式,针对我这种只有两台电脑的,我打算部署成多master模式。参考:https://blog.youkuaiyun.com/qq_36147908/article/details/107844959https://blog.youkuaiyun.com/leexide/article/details/80035468第一章
2020-11-29 19:39:54
950
1
原创 用RocketMq+CountDownLatch优化人脸识别在工程运用时的速度
前言:先说明这个不是优化人脸识别的算法,这个是解决人脸识别在工程中遇到的一些速度慢的问题。项目中有个需要人脸识别的功能,比较慢,学弟是这样做的,因为我目前还不大熟悉人脸识别的算法,据学弟口述流程是这样的,用户上传的照片传到后台后,学弟调用旷视接口判断照片的可用性,如果可以的话,就再调用xx接口提取体征值,提取完体征值后保存到数据库,最后返回给用户识别的结果,目前这样有点慢。第一章 原代码1.1 controller层接收用户上传的左、正、右脸的照片并提交给service层处理@Reques
2020-11-15 14:39:43
454
1
原创 数据库分库分表入门
前言:想搞一下读写分离,看到读写分离经常和分库分表一起出现,所以一起来探究下分库分表到底是什么与其使用场景第一章 什么是分库分表第二章 使用场景
2020-11-05 23:18:47
339
原创 IP寻址与分配
前言:需要几台服务器做点实验,如搭建个主从数据库、MQ、缓存集群、分布式系统什么的,实验室刚好有几台服务器可以玩玩,但是得理清一下它们得关系,所以看看IP的寻址策略,首先把实验室的网络状况搞清楚。第一章 ip地址的寻址策略第二章 如何给局域网的电脑分配IP第三章 分析实验室电脑的关系...
2020-11-04 22:37:49
1394
1
原创 SpringBoot+Mybatis动态切换数据源
前言:目前在接手学校的一个项目,架构是SSM,用到了读写分离,学弟改成把项目改成了SpringBoot,因为流量不大,所以取消了读写分离,为了确保项目的没问题,同时多学点知识,决定先复盘一下之前SSM项目的读写分离,然后学习一下在SpringBoot中实现读写分离。参考:https://www.cnblogs.com/panxuejun/p/6770515.html第一章 SSM项目中的读写分离(仅讲解)1.1Spring中的DataSourceDataSource是一个Spring接口,.
2020-11-01 13:00:51
1870
13
原创 Mybatis入门
前言:之前一直在用SpringJPA和JdbcTemplate,Mybatis用过一段时间但是忘了,今天从最基础的地方从新复习一遍Mybatis,具体讲解不多,主要看代码吧。第一章 原生Java操作数据库public class MysqlDemo { static final String DB_URL = "jdbc:mysql://localhost:3306/mysql_learn?serverTimezone=GMT%2B8"; static final String U
2020-10-30 12:35:55
273
转载 分布式事务初步理解
前言:经常听到这个词,来学习一下,从各个博客上摘抄了一下,供本人复习之用。参考:https://blog.youkuaiyun.com/bjweimengshu/article/details/79607522(解释什么是分布式事物的,写的很好,建议入门的直接去看)还有一个是在微信公众号上看的,公众号叫无敌码农,文章名叫 分布式事务之深入理解什么是2PC、3PC及TCC协议,也写的很好,其它的文章也不错。第一章 什么是分布式事务注:我这里就是总结下,关于什么是分布式事务可以去看https://blo
2020-10-22 17:40:29
386
转载 高并发系统设计入门
前言:终于有时间能来研究研究自己感兴趣的东西了,这里假设我们系统部署的机器是 4 核 8G,数据库服务器是 16 核 32G,这也算是高并发的一个主干,后面会单独摘出来其中的一些技术细节来讲,如如何分库分表、分布式事务是什么等等,因为本篇文章大部分算是转载的,所以就标个转载了,不过本人对原文章还是进行了微调以及加进了自己的一些想法,供本人复习之用。参考:https://www.jianshu.com/p/4f35b3ad47bc(此篇文章绝大部分转载于此博客)第一章 估算网站的访问量此时假设你的
2020-10-22 12:46:52
406
原创 AQS实现ReentrantLock和CountLatchDown详解
前言:之前AQS、ReentrantLock、CountLatchDown大概原理都看懂了,面试的时候一问能说个大概,感觉这样也就行了,跟背课文一样背源码也没什么意思,但是根据被拒的情况可能只说个大概不能满足面试官,今天结合源码好好看一遍,适合有一定基础的同学。第一章AQS概要第二章 基于AQS实现ReentrantLock第三章 基于AQS实现CountLatchDown第四章ReentrantLock和booleanlock这个是因为我之前看过bool...
2020-10-11 22:06:57
689
原创 JUC阻塞队列BlockingQueue
前言:最近面试和手动创建线程池时都用到了阻塞队列,不由得产生好奇,探究一下原理参考:https://www.cnblogs.com/tjudzj/p/4454490.htmlhttps://www.cnblogs.com/it-science/p/5721104.html第一章 基础使用JUC中实现一个阻塞队列一般都会实现BlockingQueue接口,主要方法说明第二章 实现原理网上说的主流的阻塞队列实现有两种,分别是ArrayBlockingQueue和Linked.
2020-10-11 20:00:03
318
原创 AQS详解
前言:之前AQS、ReentrantLock、CountLatchDown大概原理都看懂了,面试的时候一问能说个大概,感觉这样也就行了,跟背课文一样背源码也没什么意思,但是根据被拒的情况可能只说个大概不能满足面试官,今天结合源码好好看一遍,适合有一定基础的同学。参考:https://blog.youkuaiyun.com/u013728021/article/details/87358517https://www.cnblogs.com/waterystone/p/4920797.html第一章 AQS
2020-10-05 22:16:13
1799
原创 Java网络编程入门(四)
前言:这是本人在慕课网上学习 一站式学习Java网络编程 全面理解BIO/NIO/AIO 时所做的笔记,供本人复习之用,在入门二和三中讲述了如何实现一个BIO聊天室和NIO的基本概念后,本文主要讲述如何实现一个基于NIO的聊天室,不保证一定准确。目录第一章 NIO编程模型第二章 ChatServer第三章 ChatClient3.1 客户端3.2 处理读入的类第一章 NIO编程模型我们要在单个线程中处理多个IO操作,首先我们有一个Selector,我们在服务器端启动我们的Se
2020-10-02 14:52:48
267
原创 Java网络编程入门(三)
前言:这是本人在慕课网上学习 一站式学习Java网络编程 全面理解BIO/NIO/AIO 时所做的笔记,供本人复习之用,本文主要讲述NIO的概念,并比较下不同类型IO(阻塞式、非阻塞式等)的速度,不保证一定准确。目录第一章 NIO概述1.1 由来1.2 基本概念第二章 Buffer2.1 写模式2.2 读模式第三章 Channel第四章 多方法实现本地文件拷贝第五章 Selector5.1 channel的状态5.2 基本操作第一章 NIO概述1.1
2020-10-02 12:02:28
289
原创 Java网络编程入门(二)
前言:这是本人在慕课网上学习 一站式学习Java网络编程 全面理解BIO/NIO/AIO 时所做的笔记,供本人复习之用,本文主要讲述BIO,并实现一个基于BIO的聊天室,不保证一定准确。目录第一章 一个简单的客户端、服务端通信的例子第二章 BIO编程模型2.1 基于BIO的聊天室2.2 聊天室服务端2.3 聊天室客户端第一章 一个简单的客户端、服务端通信的例子懒得讲解了,直接上代码,应该都能看懂1.1 服务端package bio;import java.io.
2020-09-25 13:15:16
290
原创 JVM内存模型再理解
前言:之前看过JVM的内存模型,无非是方法区、堆、本地栈、程序计数器、虚拟机栈,然后区别哪个是线程私有,哪个是线程共享,大概是干什么的,存的是什么,其余的似乎没了解太多,如看常量池到底存储在哪?什么样的东西会存储在常量池?类的元信息存储在元空间,类的元信息包括什么?所以今天重新学了一下JVM内存模型,说点高级内容,知识来源于网络,不保证一定没问题,这块网上好像也没个准信,等以后有机会再深入一下吧。第一章 JVM内存模型概要根据 JVM 规范,JVM 内存共分为程序计数器,虚拟机栈、本地方法栈,堆、方
2020-09-24 21:40:43
210
原创 SSM项目Bean的加载时机与DispatcherServlet的执行流程分析
前言:对SSM项目中bean的加载时机产生了兴趣,我们都知道Spring项目启动时会扫描所有模式注解、xml中的配置,以把相关的类注册成bean,那我们SSM项目是跑在服务器上的,不像SpringBoot直接执行main,它是在什么时候执行的注册bean的操作呢。同时它不像普通的web项目会配置很多servlet,SpringMVC靠一个DispatcherServlet来分发所有请求,个人对这个也比较好奇,想求证一下DispatcherServlet是不是靠getBean来获取对应的处理函数(Reques
2020-09-23 18:04:01
520
原创 Spring中Bean的加载与SpringBoot的初始化流程
前言:一直对它们之间的关系感到好奇,SpringBoot既然是Spring的封装,那么SpringBoot在初始化时应该也会有Bean的加载,那么是在何时进行加载的呢?参考:https://blog.youkuaiyun.com/qq_36688143/article/details/84968036https://blog.youkuaiyun.com/q610376681/article/details/87928766https://blog.youkuaiyun.com/q610376681/article/detai
2020-09-23 08:46:31
5539
原创 Java高并发编程详解学习笔记(五)
前言:要秋招了,复习一下应对秋招,纠结该先看啥,最后决定先学习《Java高并发编程详解》,此博客为看书所写的笔记,因为是笔记,所以会只记比较重要的东西,不适合初学者。第一章 volatile关键字介绍当开启两个线程同时操作某个数据时,一个对线程对数据进行读操作,一个对数据进行写操作,一个线程可能会感知不到另一个线程对数据做的修改,即在一个线程中修改某个数的值,另一个线程感知不到。这样是为什么呢,可以看下面的解释。1.1 机器硬件CPU在计算机中,所有的运算操作都是由CPU的寄存器来完成的,C
2020-09-16 21:43:59
289
原创 对Mysql可重复读的进一步分析
前言:今天复习数据库的时候,又看到了可重复读,对其实现方式,以及应用中会遇到的一些问题做了思考参考:https://blog.youkuaiyun.com/qq_29857681/article/details/90576491https://blog.youkuaiyun.com/wwd0501/article/details/85322142第一章 实现方式https://blog.youkuaiyun.com/qq_29857681/article/details/90576491第二章 关于锁与事务的开启.
2020-09-13 22:28:26
233
1
原创 Java高并发编程详解学习笔记(四)
前言:要秋招了,复习一下应对秋招,纠结该先看啥,最后决定先学习《Java高并发编程详解》,此博客为看书所写的笔记,因为是笔记,所以会只记比较重要的东西,不适合初学者。参考:https://blog.youkuaiyun.com/weixin_42447959/article/details/81675512第一章 类的加载过程ClassLoader的主要职责就是负责加载各种class文件到JVM中,ClassLoader是一个抽象的的class,给定一个class的二进制文件名,ClassL..
2020-09-13 22:20:27
366
原创 Java高并发编程详解学习笔记(三)
前言:学了一些高并发编程的知识了,打算针对几个难点敲点代码加深一下理解。第一章 interrupt当线程进入阻塞状态时,另一个线程调用被阻塞线程的interrupt()方法,将会使被阻塞线程中断阻塞,一个线程在阻塞的情况下被打断会抛出异常。可以看到,线程被打断并抛出异常后,继续执行。public class Interrupt { public static void main(String[] args) { Thread thread = new Thread(
2020-08-04 15:25:38
308
原创 Java编程题笔试常用API
前言:有家有公司联系上了我,然后要在牛客网参加一场笔试,之前搞ACM的时候都是用的C++,现在做后端开发都用java了,想用java答题了,虽然java麻烦点,但是从长远看,更有利于我java水平的提高,所以总结了一下java在编程题中常用的API,到时候好查,不保证一定没问题,只是我自己的理解,事关面试很重大还是要自己敲一遍的,出问题别找我。参考:https://blog.youkuaiyun.com/weixin_43217942/article/details/83043120https://www.
2020-07-14 17:30:52
1803
原创 Java高并发编程详解学习笔记(二)
前言:要秋招了,复习一下应对秋招,纠结该先看啥,最后决定先学习《Java高并发编程详解》,此博客为看书所写的笔记,因为是笔记,所以会只记比较重要的东西,不适合初学者。第三章 ThreadAPI的详细介绍第四章 线程安全与数据同步第五章 线程间通信...
2020-06-27 21:36:08
335
原创 Java高并发编程详解学习笔记(一)
前言:要秋招了,复习一下应对秋招,纠结该先看啥,最后决定先学习《Java高并发编程详解》,此博客为看书所写的笔记,因为是笔记,所以会只记比较重要的东西,不适合初学者。参考:https://blog.youkuaiyun.com/q610376681/article/details/87922812目录第一章 快速认识线程1.1 线程的生命周期1.2 模板设计模式在Thread中的应用1.3 策略模式在Thread中的使用第二章 深入理解Thread构造函数2.1 线程的命名2.2
2020-06-25 01:03:53
640
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人