1 一米绿光

尚未进行身份认证

暂无相关简介

等级
TA的排名 31w+

mysql数据同步es踩坑记

背景:需要把mysql的数据同步到es中。由于没有维护canal集群, 我们选择了通过记录最后一次同步数据的update_time来进行数据同步。具体的做法,当有数据变更的时候,发个消息,表示需要进行数据同步。消息的监听者加锁串行执行,从要同步数据的表中获取上一次update_time之后的数据,并且把最后一条记录的update_time更新回去。比如说有用户表user...

2019-03-11 17:48:19

互联网公司技术博客

美团技术https://tech.meituan.com/ 京东达达技术https://tech.imdada.cn/ 阿里技术https://102.alibaba.com/ 阿里开源https://yq.aliyun.com/opensource 360技术http://blogs.360.cn/  阿里中间件http://j...

2019-02-26 15:28:11

canal入个门

一、起源:早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql...

2019-02-25 20:51:27

话说熔断(第一集)

一、为什么需要熔断?1.防止调用雪崩, 比方A->B->C,如果服务C不稳定,会造成B不用,C不可用2. 保证核心服务基本可用 二、熔断是发生在服务方还是调用方?更好的理解是熔断是通过AOP来实现的,当发生错误达到设定的规则以后,会执行fallback逻辑a. 在调用方配置可以保证线程不被榨干b. 在服务方配置可以快速失败,避免每个调用方都进行配置 ...

2019-02-14 20:42:39

Elasticsearch同步mysql数据

主要思路是通过logstash-input-jdbc,并不是实时同步,准实时(通过schedule进行捞取)原理:通过SQL语句(相对BIN LOG同步可以写较复杂的SQL)进行全量和增量同步注意点:增量同步的坑,需要有更新时间,不好做删除,可能需要做逻辑删除(即更新记录)。更新时间需要做索引。步骤1.安装es2.安装logstash安装es对应的版本:...

2019-02-14 14:11:44

mysql数据同步es方案思考

大体方案1. 双写优点: 简单,灵活缺点:a. 业务代码耦合严重.b. 如何保证双写成功?c. 同步双写会增加响应时间2. 消息队列优点: 简单缺点:a. 业务代码耦合b. 需要保证写入MQ成功c. 需要保证MQ集群的稳定性d. 需要考虑异步造成的一致性问题(消费无序和消费时序)坑1:消费消息无序,会有问题,比方两个操作,第一...

2019-01-23 20:15:37

系统架构的基本设计原则

抽象系统及系统间交互1.找出合理通用的领域/业务对象2.职责单一的子系统3.系统间通过消息,或者RPC进行调用4.单向调用,禁止循环调用(启动,升级系统会有麻烦)5.对业务进行抽象,而不是当前的产品需求(业务确定,接口和流程基本确定) 架构设计技术选型1.架构看起来简单清晰,看起来就复杂,很可能是设计有问题(简单原则)2.使用同事熟悉的技术,逐步迭代成理想的技术...

2019-01-22 10:31:26

记一次开发环境redis出现key丢失排查

背景:开发环境大家共用redis集群, 出现设置的redis key随机丢失 1. 检查key是否设置了过期时间执行ttl key发现值是-1,并没有设定过期时间 2. 检查是否有人删除key,或者flushdb,flushall执行info commandstatscmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XX...

2019-01-22 10:13:25

MYSQL的高可用方案

1. 双节点主从 + keepalived/heartbeat特点:简单缺点:一个主节点,可能会是写入的瓶颈一致性:数据的一致性需要通过原生半同步机制保证,如果退化成异步复制,会有丢失数据风险。两个节点可以采用简单的一主一从模式,或者双主模式,并且放置于同一个VLAN中,在master节点发生故障后,利用keepalived/heartbeat的高可用机制实现快速切换到slav...

2019-01-09 21:05:51

调用别人的接口应该注意什么

当我们调用别人提供的接口时候, 需要注意的1. 访问量不要别接口提供方调挂了,跟接口方确认是否有缓存2. 访问授权,安全策略3. 默认接口不稳定,不可用,需要做对应的处理4. 处理接口的各种异常抛出,业务异常,系统异常5. 对于修改,插入类的接口,需要确认接口是否有幂等操作6. 接口超时时间,访问速度7. 接口是否会进行重试8. 接口各个参数的具体含义9. 是否...

2018-12-27 10:48:05

MYSQL锁

一. 查询,修改,删除,插入的时候会不会主动加锁?在读已提交的事务隔离级别下对于Update、Delete和Insert语句,InnoDB会自动给涉及数据集加排他锁(X)。对于普通SELECT语句,InnoDB不会加任何锁。 二. 查询,修改,删除,插入的时候是否需要等待锁释放?获取的结果集上有锁则需要等待锁。 三. 为什么需要锁1. 需要保证数据的一致性,避免...

2018-12-12 16:06:38
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!