认识CDC工具go-mysql-transfer

1.认识CDC Change Data Capture(简称CDC):其主要作用是用来捕获数据的变更,在数据发生变化之后,把变更后的数据同步到其他异构数据服务中。例如:通过订阅MySQL中binlog日志,将MySQL中发生变化的数据同步到Redis、kafka、Es等存储服务中。 在现实开发中有一些场景会用到CDC工具,例如: 数据库数据发生变化,异步更新缓存 业务中同时更新DB、cache,需要考虑边缘问题(面试问题:数据库、缓存不一致时如何解决?) 数据存储到MySQL之后,需要同步到ES以便可以使用全文检索 MySQL对全文搜索支持的不是很好,通常全站搜索都会使用E...

中间件 2022/07/06 66℃ 0条

etcd与分布式锁的实现及原理

1.关于etcd 官方文档永远是最好的学习资料,官方介绍etcd如是说。 分布式系统使用etcd作为配置管理、服务发现和协调分布式工作的一致键值存储。许多组织使用etcd来实现生产系统,如容器调度器、服务发现服务和分布式数据存储。使用etcd的常见分布式模式包括leader选举、分布式锁和监视机器活动。 Distributed systems use etcd as a consistent key-value store for configuration management, service discovery, and coordinating distributed w...

中间件 2022/07/06 62℃ 0条

docker多阶段构建

多阶段的构建对于那些努力优化 Dockerfiles 的开发者来说非常有用,同时也使 Dockerfiles 更易于阅读和维护。 1.多阶段 build 之前的 build build镜像 最具挑战性的事情之一是使镜像变得更小。Dockerfile 中的每条指令都会为镜像添加一层,需要记住的是要清理任何不需要的内容,然后再进入下一层。为了编写一个非常有效的 Dockerfile,传统上需要采用shell技巧和其他逻辑来保持每一层尽可能小,并确保每一层都具有上一层中所需的内容,而没有其他多余内容。 实际上,一个用于生产环境的 Dockerfile(其中包含构建应用程序所需的一切),其中仅包...

中间件,CI/CD,容器 2022/06/22 156℃ 0条

基于docker搭建的gitlab实现CI/CD

在开发过程中,提起CI/CD就会想到使用gitlab来实现。本文使用docker搭建gitlab环境,基于官方文档说明并尝试对常见CI/CD操作做讲解说明。 1.gitlab 所需硬件配置 目前,gitlab对内存要求最小是4G。本文使用服务器配置:阿里云ECS,4核8G 配置低的话,容易把系统搞死,gitlab 比较占资源 2.安装docker 卸载老版本docker yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docke...

中间件,CI/CD 2022/06/21 129℃ 0条

MySQL事务分类与验证

MySQL事务特性 原子性 整个事务是不可分割的最小执行单元,要么全部成功,要么全部失败 一致性 总是从一个一致性状态转换到另一个一致状态(不存在中间态) 隔离性 一个事务所做修改在最终提交前,对其他事务不可见 持久性 一旦事务提交,其修改会永久保存到数据库中 事务的隔离级别以及对应问题 事务分类 事务分类 描述 事务ID 读事务 整个事务中只有读操作,则一直是读事务 使用事务对象地址计算得到唯一事务ID,比较大的数值 读写事务 事务中遇到第一个更新语句升级为读写事务 分配全局唯一的读写事务ID 两个问题 事务是在使用 begin / start tran...

中间件 2021/11/20 507℃ 0条

缓存之王 - Redis

1. Redis是什么 Redis官方这样解释 Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius qu...

中间件 2021/11/19 360℃ 0条