解析-专业技术

专业技能

1.分布式服务

  • 为什么要做分布式服务
    首先分析之前的系统架构及其存在的问题:单一系统在大容量、高并发、业务耦合、业务快速发展、系统演进迭代方面存在问题
  • 分布式服务应该怎么做
    1.原则
    无状态化(即使有,也要将状态封装在小范围内,避免影响横向扩展)
    2.向2个方向扩展
    横向和纵向。横向解决系统的容量问题,同时对业务系统的拆分又能是业务领域知识专门化,有利于系统稳定性。纵向解决系统的灵活性和复杂性。同时业务进行纵向拆分,能够解决业务的逻辑复杂性,支持业务的快速扩展。
    3.要有相关的支撑体系
    分布式配置中心、分布式消息系统、分布式缓存、分布式数据存储
    4.解决分布式的典型问题
    通过以上的支撑体系,来解决典型问题,如 集群管理、共享锁、队列管理等问题
    5.典型的分布式集群的设计思路
    master-slave模式:如主从复制,双主+主从。示例:tair 如何解决扩容和数据一致性的。(扩容通过bucket的转移,容灾通过bucket的副本机制和配置更新时的版本控制)
    无对等设计:利用gossip协议。(谣言协议,形象点说就是:说的人多了,就成了真的了。。。)

2.分布式缓存

  • 了解哪些
    使用过的有tair和redis,对redis了解的多一些
  • redis都有哪些了解
    1.数据结构,典型的如skiplist
    2.线程模型:
    单线程。风险点:大数据的操作容易造成阻塞
    3.持久化
    RDB。风险点:save会阻塞服务,bgsave不会阻塞服务(用的子进程+写时复制)。
    AOF。记录命令的方式。可进行重写来缩减体积。
    4.集群故障发现
    gossip协议。多数人说某台机器有问题,就是有问题,就下掉该master
    5.故障转移
    epoch机制。slave发起选举,每轮epoch只能投一票。投不出结果就再来一轮epoch
    6.缓存雪崩
    避免同时过期、双缓存机制
    7.缓存穿透
    穿透后加互斥锁再访问数据库、布隆过滤器来判断是否是正常请求。
    8.集群复制 TODO
    hash槽,moved,ask
    9.大key
    对于集合类型的,拆分成多个key;禁止批量获取1000个以上的key
    10.热点key
    key分段+multi get、key做多个副本(针对小容量key)、服务本地缓存
    11.线上问题
    大key,热点key
  • 优势劣势
    1.优势 纯内存速度快,数据结构支持应用场景多、
    2.劣势 容量小

3.分布式任务

  • 分布式调度
    1.任务分发模式。由任务自己控制源数据的获取。优点是并行度高。
    2.数据分发模式。任务系统抽取源数据,分发到任务。

  • 任务设计
    1.规范
    6个阶段:任务配置、任务执行、结果通知、业务监控、异常挂牌、异常重跑
    3个级别:强制、推荐、参考
    21子项:
    任务配置:执行时间窗口、执行时长、任务依赖
    任务执行:依赖校验、异常隔离、接口重试、可终止。。
    异常重跑:

  • 为什么用java任务,而不用大数据处理
    1.复杂性。业务逻辑复杂,很难处理。
    2.成本。比如依赖各方的服务,而数据层是业务隔离的,但是java服务接口是现成的。
    3.效率。
    4.质量。

  • 高并发
    多机分片+多线程、控制数据库写入速率防止主从延迟、外部输入数据查询如果串行查询太慢,考虑分片并行查询、任务结果同步到缓存

  • 数据一致性
    数据源的flag校验、对账、幂等、重跑修复、异常重试、异常监控

  • 分布式
    任务防并发执行(考勤)、分布式调度分片

4. MQ

  • 介绍
    特性:分布式的(topic分区且副本机制),pull模型(消费者维护消费进度,可回溯),分区内的有序性,无中心的控制机制(zk选举controller,进行集群管理,如分片)。

  • 集群

  • 数据一致性
    多种ack模式

  • 消息顺序性
    offset机制。每条生产的消息都会被分配一个offset,其在分区内是唯一的,顺序的。offset不会跨越分区。所以消费者通过记录offset并顺序消费消息,来达到消息顺序性

  • 日志压缩
    首先,在特定场景中,消费者只关心key对应的最新value。所以kafka启动子线程压缩日志,只保留最新的value

  • ISR
    同步的副本的集合。由leader副本维护。如果同步的消息滞后,就会被剔除。被剔除的不能被选择为leader。

  • 定期删除旧消息的策略
    1.根据消息的保留时间 2.topic下消息的大小

  • 高并发

    1. topic分区。主副本负责读写,flower副本只负责同步容灾。
      2.批量发送
      3.数据存储,不在cache中,而是落入磁盘,且利用了顺序写入的高性能
      4.IO:zero-copy
  • 高可用
    分布式集群

  • 负载均衡
    1.生产者通过指定算法发送到不同分区
    2.不同分区在不同broker上有副本。主副本负责读写
    3.zk负责信息维护和更新

  • 为什么用(优点)

  • 缺点是什么

5. thrift

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容