canal原理
Canal server伪装一个MySQL slave,向MySQL发送dump请求;
MySQL master 会将变更日志写入binlog中,然后Slave 的 I/O thread 会去请求 Master 的binlog,并将得到的binlog写到本地的relay-log(中继日志)文件中;
Slave 的 SQL thread 会从中继日志读取binlog,然后执行binlog日志中的内容,也就是在自己本地再次执行一遍SQL语句,从而使从服务器和主服务器的数据保持一致。
canal server 可以有多个instance,底层是由map维护的,每一个instance对应一个canal clinet,也就是canalClient中的destination。
canal server 要启动某个 canal instance 时都先向 zookeeper 进行一次尝试启动判断 (实现:创建 EPHEMERAL 节点,谁创建成功就允许谁启动);
注意:为了减少对mysql dump的请求,不同server上的instance要求同一时间只能有一个处于running,其他的处于standby状态。
为什么需要从canal替换到RabbitMQ
架构调整,统一使用;
RabbitMQ和Kafka有什么区别
RabbitMQ消息堆积怎么处理?
RabbitMQ怎么保证消费顺序?
RabbitMQ的持久化方式是怎么样的?
RabbitMQ怎么保证事务?
RabbitMQ集群模式有哪几种?各有什么优缺点?
主备模式
远程模式
镜像模式
多活模式: 实现异地数据复制的主流模式
Kafka的架构师怎么样的?
Kafka怎么保证高吞吐量的?
Kafka怎么保证顺序性?
Kafka的消费者再平衡是什么?
Kafka怎么保证消息事务?
Kafka适用于什么场景?
Kafka中的消息是怎么存储的?
Kafka怎么保证高可用?
Kafka怎么实现消息的幂等性?
Kafka中的ISR是什么?简要说明
Kafka怎么存储消息的
Redis分布式锁怎么实现?
Redis的持久化类型有哪些?简要说明优缺点
Redis的线程模型是什么?
Redis的集群类型有哪些?各有什么优缺点
Redis为什么这么快?
缓存雪崩、缓存穿透分别是什么?
单点登录CAS的原理
怎么解决跨域问题?
Spring Bean的生命周期是什么?
Spring是一个什么样的框架,谈谈你的理解
Spring的IOC怎么理解?
Spring的AOP怎么理解?
Spring的AOP有哪些重要组件?
Spring AOP动态代理有哪些实现方式?分别是怎么处理的?
Spring是怎么解决循环依赖的?
Spring中BeanFactory和FactoryBean有什么区别?
Spring Bean的后置处理器是什么?什么时候会用到
Spring中的声明式事务是怎么实现的?
SpringBoot跟Spring有哪些区别?
SpringBoot有哪些重要的注解,其简要列举
Spring MVC的简要流程请说明
MyBatis的缓存有哪几种,请简要说明
MyBatis的`#` 与 `$`有什么区别
MySQL的索引是怎么实现的?
MySQL有哪些索引?请详细说明
MySQL的BufferPool和ChangeBuffer是什么,简要说明
MySQL的事务是怎么实现的?(MVCC)
MySQL的架构是怎么样的?
MySQL索引什么时候会失效?
MySQL存储引擎有哪些?请简要说明InnoDb和Mysiam的区别
MySQL发生死锁怎么定位与解决?
MySQL慢查询日志有什么作用?
MySQL的redo log,undo log是什么?
MySQL的主从复制和读写分离怎么实现?
MySQL的分区怎么做?物理上存储跟普通表有什么不同
MySQL中,什么情况下会锁表?如果数据量很大,怎么处理alter table语句
MySQL和Redis双写一致性怎么做?
SpringCloud 可以用来做什么?
SpringCloud有哪些常用组件?简要阐述
SpringCloud Zuul怎么实现的?用到了哪些设计模式
SpringCloud GateWay可以用来做什么?
SpringCloud Eureka是怎么实现的?
SpringCloud Hystrix怎可以用来干什么?
SpringCloud Hystrix怎么做线程隔离的?
SpringCloud OpenFeign怎么实现的?
SpringCloud中网关、Hystrix、OpenFeign都有超时时间吗?如果有,那么请求超时是以哪个为准?
简要说明Paxos协议
简要说明ZAB协议
简要说明CAP理论
简要说明BASE理论
Zookeeper是怎么选举的?
war包和jar包的区别?
怎么部署服务到服务器?
Git有哪些工作空间?