基于 Canal 和 Kafka 实现 MySQL 的 Binlog 近实时同步

2020-03-16
阅读 13 分钟
4.9k
近段时间,业务系统架构基本完备,数据层面的建设比较薄弱,因为笔者目前工作重心在于搭建一个小型的数据平台。优先级比较高的一个任务就是需要近实时同步业务系统的数据(包括保存、更新或者软删除)到一个另一个数据源,持久化之前需要清洗数据并且构建一个相对合理的便于后续业务数据统计、标签系统构建等扩展功能的...

【并发编程】深入理解Java内存模型

2020-03-13
阅读 9 分钟
1.4k
Java内存模型(Java Memory Model,JMM)是java虚拟机规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现java程序在各种不同的平台上都能达到内存访问的一致性。可以避免像c++等直接使用物理硬件和操作系统的内存模型在不同操作系统和硬件平台下表现不同,比如有些c/c++程序可...

Apache Flink 基础架构与概念

2020-03-11
阅读 12 分钟
2.8k
Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtime),提供支持流处理和批处理两种类型应用的功能。现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为他们它们所提供的SLA是完全不相同的:流处理一般需要支持低延迟、Exactly-once保...

专治MySQL乱码问题

2020-03-10
阅读 5 分钟
3.3k
在客户端将一条命令输入MySQL时,MySQL只知道这条命令是0101的字节流,并不知道具体采用的是什么编码。第一个参数character_set_client就告诉了MySQL,这条命令是UTF-8编码,于是MySQL会使用UTF-8解码字节流。当MySQL成功解码以后,会将命令内容转化为目标表格的编码。

如何使用 SpringBoot + Redis 优雅的解决接口幂等性问题

2020-03-07
阅读 9 分钟
5k
爱码士人员 [链接] 前言: 在实际的开发项目中,一个对外暴露的接口往往会面临,瞬间大量的重复的请求提交,如果想过滤掉重复请求造成对业务的伤害,那就需要实现幂等! 我们来解释一下幂等的概念: 任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是对数据库的影响只能是一次性的,不能重...

高可用Redis服务架构分析与搭建

2020-03-04
阅读 5 分钟
2.4k
基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Red...

Mysql高性能优化规范建议

2020-02-05
阅读 6 分钟
2.6k
作者:听风。 博客园:cnblogs.com/huchong/p/10219318.html 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为...

Git 如何优雅的回退代码?

2020-02-03
阅读 4 分钟
3.5k
从接触编程就开始使用 Git 进行代码管理,先是自己玩 Github,又在工作中使用 Gitlab,虽然使用时间挺长,可是也只进行一些常用操作,如推拉代码、提交、合并等,更复杂的操作没有使用过,看过的教程也逐渐淡忘了,有些对不起 Linus 大神。

大佬用这近百张图来给我解释红黑树,看完直接跪了!

2019-12-20
阅读 15 分钟
1.8k
这篇文章算是我写博客写公众号以来画图最多的一篇文章了,没有之一,我希望尽可能多地用图片来形象地描述红黑树的各种操作的前后变换原理,帮助大家来理解红黑树的工作原理,下面,多图预警开始了。

开局一张图,学一学项目管理神器Maven!

2019-12-18
阅读 6 分钟
1.7k
Maven强大的Java工程构建工具,做Java开发时少了跟Maven打交道,之前在知乎上看到有人提问:“学Java开发需不需要学习Maven?”,个人认为是必需要学的,这和工欲善其事必先利其器是一个道理,开发软件也要先把工具学好才能事半功倍啊。所以最近花了一点时间,将Maven的基础知识整理成一张脑图: