微服务篇

1 微服务之间的调用方式?
  1. RPC
  2. 消息队列
2 CAP理论,BASE理论

CAP理论:

  1. 一致性:
    更新操作成功并返回到客户端,所有节点在同一时间的数据完全一致。
    2.可用性
    服务一直正常,可用
  2. 分区容错性

CP和AP:分区容错使必须保证的,当发生网络分区时,若继续服务,那么强一致性和可用性只能2选1

Base理论:
对CAP一致性和可用性的权衡的结果。
核心:即使无法做到强一致性,但每一个应用可以根据自身业务特点,采用适当的方式来使系统达到最终的一致性。

基本可用
软状态
最终一致性

3 分布式id是什么?有哪些解决方案?

唯一的id对应数据。
分布式系统,可能会出现id冲突。有以下四种解决方案:

  1. uuid,复杂度低,影响空间和性能
  2. 单机数据库的自增主键,并发量大时,有性能限制。
  3. redis,zookeeper生成id, 比如redis的自增id,zookeeper的顺序节点,对比单机mysql的自增id更快。
  4. 雪花算法,直接算法解决,最优解。原理是某一个机器在某一毫秒对某一个数字自增,这种方式可以保证分布式架构的系统id唯一。
4 分布式锁的使用场景是什么?有哪些实现方案?

分布式架构中,多个线程处于不同的进程,在进行资源竞争时,利用ReentranLock,Synchronized无法控制只有一个线程同时操作一个资源。

  1. redis:setnx,lua脚本,消费订阅机制实现。redis分布式锁的特点是高可用,保证AP。不可靠。
  2. zookeeper:临时节点,顺序节点,watch机制实现。zookeeper分布式锁的特点是高一致性,保证CP。更可靠。
5 什么是ZAB协议?

ZAB协议是Zookeeper实现一致性的原子广播协议。

  1. 领导者选举
  2. 数据同步
  3. 请求广播:leader节点收到写请求后,广播写请求,使得事务在其他节点执行。
    尽量强一致。
6 nacos,zk和eureka的区别?

nacos:ap(高可用)优先选择
服务注册,服务配置

zk:cp设计(强一致性)
目标是分布式的协调系统,用于资源的统一管理。
当leader节点crash后,需进行leader的选举,这个期间zk服务不可用。

eureka:ap设计(高可用)停止维护
目标是服务注册发现系统,专门用于微服务的服务发现注册。
Eureka多个节点挂掉也不影响正常使用,剩下的节点依然可以提供注册和查询的服务。如果Eureka客户端向某个Eureka服务注册时,发现连接失败,会自动切换到其他节点。只要有一台Eureka节点正常运行,就能保证可用性,只不过查询的信息可能不是最新的。

当Eureka的服务器发现85%以上的服务没有心跳时,认为自己的网络出现问题,不会从服务队列中删除失去失效的服务。

7 数据库表拆分后如何解决唯一的主键?
  1. UUID:
    优点:简单,性能好
    缺点:没有顺序,没有业务含义,存在泄露mac地址的风险
  2. 数据库主键:
    优点:简单,递增,业务可读性,
    缺点:强依赖数据库,存在性能瓶颈,业务泄露的风险。
  3. redis,mongodb,zk等中间件:
    优点:稳定
    缺点:复杂
    4.雪花id
8 雪花算法的原理

0-41位时间戳-10位workid-12位序列号
优点:性能佳,递增,可根据业务场景数据库节点布置灵活调整bit位划分。
缺点:强依赖时间,如果时间回拨,可能导致重复id生成。

9 spring cloud有哪些常用组件?
  1. Eureka:注册中心
  2. Nacos:注册中心,配置中心
  3. Consul:注册中心,配置中心(Go语言)
  4. Spring cloud config:配置中心
  5. Figen,openFigen:RPC调用
  6. Kong:服务网关
  7. Zuul:服务网关
  8. Spring Cloud GateWay:服务网关
  9. Ribbon:负载均衡
  10. Spring Cloud Sleth:链路追踪
  11. Zipkin:链路追踪
  12. Seata:分布式事务
  13. Dubbo:RPC调用
  14. Sentinel:服务熔断
  15. Hystrix:服务熔断
10 分布式系统常用的缓存方式有哪些?
  1. 客户端缓存:浏览器缓存,APP,localStorage,sessionStorage
  2. CDN缓存:
    内存缓存:数据的缓存
    内存分发:负载均衡
  3. nginx缓存:静态资源
  4. 服务端缓存:本地缓存(内存),外部缓存(文件)
  5. 数据库缓存:
    mybatis多级缓存,mysql查询缓存,MVCC,buffer page pool
  6. 操作系统缓存:
    Page Cache,Buffer Cache
11 Zooker

ZooKeeper 是给分布式配置服务、同步服务和命名注册。
Zookeeper的工作机制
如图所示,服务器上线时,会将服务器的信息注册到Zookeeper中,客户端会从Zookeeper获取服务器信息列表,进行注册[监听],当服务器节点下线或异常时,会通知Zookeeper,Zookeeper进而通知客户端。简单来说,Zookeeper就相当于一个文件系统(存储管理元数据信息)+通知机制。


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

推荐阅读更多精彩内容