数据结构与算法的实际应用(有向图)——有依赖的任务并行处理框架 背景一开始接到一个技改需求,需要将我们系统的一些首页查询接口进行优化,合并为一个聚合接口提供给前端;最初与前端同学进行交流,认为这些首页查询接口没有依赖关系,因此对于我来说解决方案比较简单,直接将需要查询的接口进行并行处理即可: 其中每一个查询抽象成了一个Function,在子线程中调用apply方法执行。 但是在与前端同学联调时,发现其中一个接口的入参依赖另一个接口的结果,本想让前端给我传过来 2021-12-05 数据结构与算法 数据结构与算法 图 拓扑排序 多线程
数据结构与算法的实际应用——根据表关系构建SQL语句 数据结构与算法的实际应用——根据表关系构建SQL语句背景需求最近在项目中有一个场景,根据前端可视化模式传入的参数构建一组SQL语句,应用在Spark Streaming应用的数据同步中。这其实是一个已有的功能,但是发现原先的代码实现发现有较严重的问题,导致该功能在有关联查询时不可用,我经过调研之后决定重新实现。 这些SQL由普通的Lookup SQL和Spark SQL组成,Lookup SQL用 2021-03-25 数据结构与算法 数据结构与算法 Spark SQL BFS scala
canal在docker下的搭建(配合canal-admin) MySQL配置 对于自建 MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下 [mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择 ROW 模式 server_id=1 # 配置 MySQL replaction 需要 2021-03-07 docker 后端开发 MySQL canal
jar包执行时访问资源文件造成的FileSystemNotFoundException问题 问题描述在Java项目中,若需要访问资源文件,通常使用getClass().getResource("/xxx")和getClass().getResourceAsStream("/")来获取资源文件,后一种方式获取到的是InputStream,一般不会出现什么问题,但是通过第一种获取资源URL的方式,在IDEA中执行时没有问题,但是在服务器环境执行时,会出 2021-01-07 后端开发 Java 踩坑记录
前端发展简史 前端技术发展历程远古时代:还没有前端这个概念,网页是纯静态页面,HTML伴随着HTTP协议诞生,做一些纯文字信息的展示。 CSS和JavaScript加入早期的页面样式是由<font><b><sub><center>等一系列标签去控制的,但是不利于维护和扩展,所以出现了CSS,将样式控制独立了出来,利于样式的复用。那时候网速也很慢,为了优化交互体验, 2020-12-23 前端开发
docker安装mongo 拉取镜像docker pull mongo 选择一个合适的文件夹, 创建mongo目录并进入mkdir mongo && cd mongo 创建配置文件目录mkdir conf 创建并编辑配置文件vim conf/mongod.confmongod.config为mongo配置文件, 示例: storage: journal: enabled: true engine: 2020-12-15 docker 后端开发
关于一次Kafka重复消费问题排查记录的闲谈 前段时间上线一个新服务,我们的运营在测试的时候,导入了一批数据,结果目标表里的数据是预期数量的2倍,有大量的重复数据,一开始我认为可能是我没有过滤数据类型导致的,我所消费的数据是通过监听数据库的binlog解析后推送到Kafka的数据,我收到kafka消息经过反序列化得到多条数据库表的变动记录,每一条记录都有一个类型:INSERT,UPDATE,DELETE,其实也就是对应 2020-12-15 kafka 后端开发
动态创建与修改定时任务 最近遇到一个需求,需要能够按照特定的配置执行定时任务,而且定时任务需要在应用不重启的情况下动态增删改,Spring提供的@Scheduled注解是硬编码形式,只能实现固定的定时任务,随后经过一番探究,依托注明的quartz框架终于实现了该功能,下面来分享一下我的方案。 首先引入quartz maven依赖: <dependency> <groupI 2020-12-15 后端开发 Java quartz
Angular使用Http拦截器 在前端开发的过程中,一般通过HTTP接口与后端进行数据交互,而后端一般会固定一个返回格式,例如: { "code": 0, "success": true, "message": "", "result":{ 2020-12-15 前端开发
docker安装zookeeper集群(附bash脚本) 准备一个文件夹并进入此文件夹, 例如 mkdir -p ~/docker-app/zookeeper && cd ~/docker-app/zookeeper 准备三个文件夹并写入zookeeper的myid mkdir -p zoo1/data && echo 1 > zoo1/data/myidmkdir -p zoo2/data && 2020-12-14 docker 后端开发