1 概念
变化数据捕获 (Change Data Capture,缩写CDC) 是指识别和捕获对数据库中的数据所做的更改(包括数据或数据表的插入、更新、删除等),然后将这些更改按发生的顺序完整记录下来,并实时通过消息中间件传送到下游流程或系统的过程。通过这种方式,CDC能够向数据仓库提供高效、低延迟的数据传输,以便信息被及时转换并交付给专供分析的应用程序。
2 常见的开源方案
1.Maxwell,这个框架是基于kafka的,然后通过修改MySQL配置文件可以获取其二进制日志文件,然后通过producer/consumer机制可以实现对biolog(二进制文件)的解析,并输出至kafka。这个的缺点是主要面向MySQL至不同中间管道的输出,而不是各种数据库至中间管道的输出。
2.Debezium,这个框架大概原理上和上面的一致,不同点在于:它是基于confluent platform下的kafka connect,算是数据采集的一种。同时kafka connect前景蛮不错,比flume,sqoop好很多。而且现在这个框架不仅仅有MySQL的采集,还有其他的,例如or ...
1 AOP概念和相关术语
Aspect Oriented Programming(AOP):面向切面编程,是面向对象编程(OOP)的一种补充,典型的就是Spring的事务管理。将比如,日志的记录,权限的校验,异常的处理这样非核心功能单独抽离出来,和核心功能解耦,横切在业务代码之上。
相关术语
Aspect
切面,在spring的aop里面,切面通常是一个类,对横切关注点的抽象
Join point
连接点,就是被拦截的点,简单来说,就是声明在什么时候,因为spring只支持方法的拦截,所以在spring中连接点可以理解为被拦截的方法
Pointcut
切入点,也可以叫切点,一般配合切点表达式定位到哪些方法,哪些类,什么地方,是对连接点拦截的定义,可以拦截一个连接点,也可以拦截多个连接点
Advice
通知,就是和Join point一起要做的事情,简单来说就是做什么事,就是拦截到连接点后,需要在这个连接点做什么事情
Weaving
织入,就是将切面中的通知应用到目标对象(Target Object)上,生成代理对象(AOP Proxy)的过程
2 ...
Java
未读1 什么是Gradle
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,他抛弃掉了maven的繁琐的xml配置文件,使用Groovy语言去书写配置,整个配置文件更加的清晰,功能也更加强大。
Gradle使用的是Groovy动态语言,Groovy的基本的语法,类型,包结构和其他方面都与 Java 一样,Groovy 在这之上又增加了许多东西。但是和 Java 也有着共同点。
2 下载和安装(MAC)2.1 官方下载地址
https://gradle.org/releases/
进入官方下载地址后,选择对应的版本,下载binary-only就可以,点击下载
2.2 mac中配置环境变量
确保java的环境存在,确保jdk的安装。
将下载下来的压缩包解压,把文件可以放在自己的目录下,一定要记住存放地址。比如我放在了下面的文件
打开终端来配置环境变量
输入vi ~/.bash_profile
回车后后点击i进入编辑模式,输入一下内容,这里需要确保home的路径是正确的,输入之前存放gradle的目录
123GRADLE_H ...
Java
未读认识Java中的NIO
nio(non-blocking io)非阻塞IO,在jdk1.4后加入,也有称为new io
1 三大组件1.1 Channel和Buffer
Channel(通道)是双向的数据通道,比如InputStream和OutputStream是写入和写出数据,是单向的,而channel既可以输入数据也可以输出数据。
Buffer(缓冲区)用来暂存channel的数据,或者写出数据时,也是需要写到buffer然后写出通道
1.1.1 常见的Channel和Buffer
Channel
FileChannel:文件的数据传输通道
DatagramChannel:UDP网络数据传输通道
SocketChannel:TCP数据传输通道
ServerSocketChannel:TCP数据传输通道(用于服务器端)
Buffer
ByteBuffer
MappedByteBuffer
DirectByteBuffer
HeapByteBuffer
ShortBuffer
IntBuffer
LongBuffer
FloatBuffer
DoubleBuffer ...
1 简介1.1 什么叫Spring
狭义的Spring: Spring Framework
广义的Spring:指的是整个Spring生态,包含 Spring Framework,Spring boot,Spring cloud,Spring Security 等在内的一站式开发框架。
1.2 Spring架构图
2 初识Spring IOC
IOC (Inversion of Control): 控制反转,是一种设计理念。将实例对象的权利转移到IOC容器管理,使用时不再需要new对象,直接在IOC容器里面拿。
DI (dependency injection): 依赖注入,是实现IOC理念的一种方式。
核心作用就是:由Spring IOC容器创建和管理对象(Beans)
2.1 传统方式
当使用一个类的时候都需要先去实例这个类对象,每多一个,多实例一个,这样的方式代码耦合性相当高,当需求改变时,需要修改代码中对应的实例对象。
2.2 IOC思想
全部统一由一个容器去管理这些需要的类,当需要使用时,直接在容器中拿,这样减少了代码的耦合性。 ...