模拟Slave节点接收Binlog

发布在 后端技术

前言

不知道阅读该篇文章的同学有没有听说过阿里的Binlog增量订阅组件Canal。通过Canal的简介我们也能大致看出Canal Server模拟了Mysql的Slave节点向Master发送Dump请求推送Binlog日志,再Canal Server接收到请求后对日志文件做数据过滤、加工最终推送到下游客户端(如ES、Hbase、Kafka)以实现诸如业务Cache刷新、业务增量数据处理等。
canal-introduction
该篇文章主要针对Canal Server如何模拟Slave节点并让Master节点推送Binlog日志,Canal组件肯定会对性能如IO这块做优化,这里建议去学习Canal整体的架构设计。
阅读全文

K8s笔记--集群部署

发布在 运维

前言

在了解了K8s的基础架构之后我们就可以尝试去部署K8s集群,目前K8s集群部署的方式有3种:

方式名称 区别
MiniKube 仅支持单节点部署集群,相当于是初学者学习K8s集群的工具
Kubeadm 通过Kubeadm init初始化集群以及通过kubeadm join 加入Node节点,以此来实现集群部署。部署比较方便,执行init会自动初始化Master节点需要的服务
二进制包 从官网下载各个服务的二进制包单独部署

该篇文章将展示如何通过Kubeadm部署集群并且实现公网部署。(由于仅俩台服务器且处在不同的内网下导致只能通过公网部署,正常企业阿里云同一账户下的俩台ECS处在同一内网)

Kubeadm 集群部署

  1. 安装Docker(Master、Node)
    安装Docker可参考官方文档,注意这里Docker有个配置需要调整,我们需要调整Docker的Cgroup为systemd(目的是跟K8s保持一致),Docker默认的是groupfs。不确定的同学可以执行docker info | grep cgroup看一下。更改方式如下:
    执行vim /etc/docker/daemon.json
    1
    2
    3
    4
    5
    6
    {
    "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com"
    ],
    "exec-opts": ["native.cgroupdriver=systemd"] // 新增该行
    }
阅读全文

K8s笔记--基础架构

发布在 运维

前言

K8s目前也是比较主流的一套分布式容器编排工具,因此有着很好的社区,网络上与其相关的技术文章也是数不胜数,该篇文章只是之前学习K8s的笔记搬运。我一直觉得学习一个组件最好的方式还是先了解他的组成架构,然后才会尝试去搭建运行。因此在开始搭建K8s集群前还是应当先对其基础架构中的模块有所了解,该篇文章主要梳理K8s集群部署时我们需要运行的模块(或者说我们在搭集群实质上是在运行哪些模块)。以下是K8s的架构图(截取至K8s官方网站)。
k8s-structure
阅读全文

知识梳理Mysql篇(三)

发布在 数据库

前言

该篇文章主要接着《知识梳理Mysql篇(二)》的题干把剩下的内容补充完整。

日志

Mysql中日志主要有以下几种BinLog、SlowLog、RelayLog、RedoLog(Innodb)、UndoLog(Innodb)。下面通过表格大致描述各个日志的作用:

日志类型 作用
BinLog BinLog日志是Mysql Server层实现的日志,其作用主要是实现主从复制以及备份恢复。其格式有三种STATEMENT、ROW、MIXED。
SlowLog SlowLog主要是记录慢SQL,平常我们需要时需要看下slow_query_log是否开启。
RelayLog RelayLog(中继日志)主要用在主从复制中,IO线程将主库的BinLog写入RelayLog之后SQL线程执行RelayLog里的语句
RedoLog RedoLog主要是用在Mysql断电等故障修复
UndoLog UndoLog主要用在事务回滚以及MVCC机制上
阅读全文
  • 第 1 页 共 1 页
作者的图片

晨晨晨晨晨晨🐼

凛冬散尽,待春拂面,星河长明。


Java开发者、PHP开发者、DevOps爱好者


杭州,中国🇨🇳