Skip to content

Latest commit

 

History

History
59 lines (59 loc) · 3.33 KB

File metadata and controls

59 lines (59 loc) · 3.33 KB

Dubbo的底层实现原理和机制

  1. 暂时没用过,了解后再更新

描述一个服务从发布到被消费的详细过程

  1. 这题貌似是接着dubbo问的

分布式系统怎么做服务治理

  1. 服务注册中心(比如spring cloud的eureka) 服务提供者 服务消费者
  2. 服务消费的负载均衡

接口的幂等性的概念

  1. 语义是指: 函数/接口可以使用相同的参数重复执行, 不应该影响系统状态, 也不会对系统造成改变 .
  2. http的幂等性
  3. 分布式接口的幂等性

消息中间件如何解决消息丢失问题

Dubbo的服务请求失败怎么处理

重连机制会不会造成错误

对分布式事务的理解

  1. 强制一致性
  2. 最终一致性
  3. 参考:http://www.codeceo.com/distributed-transaction.html
  4. 微服务构架下,分布式事务一般采用最终一致性保证:https://blog.csdn.net/javahongxi/article/details/54177741
  5. 对于涉及支付的系统,人工对账是终极防线

如何实现负载均衡,有哪些算法可以实现?

  1. 随机
  2. 轮询
  3. BestAvailable
  4. weighted

Zookeeper的用途,选举的原理是什么?选举策略?watch机制?

  1. 配置服务
  2. 分布式锁

数据的垂直拆分?水平拆分?分库分表后,如何解决全表查询的问题?

  1. 垂直拆库 是根据数据库里面的数据表的相关性进行拆分,比如:一个数据库里面既存在用户数据,又存在订单数据,那么垂直拆分可以把用户数据放到用户库、把订单数据放到订单库
  2. 垂直拆表 是对数据表进行垂直拆分的一种方式,常见的是把一个多字段的大表按常用字段和非常用字段进行拆分,每个表里面的数据记录数一般情况下是相同的,只是字段不一样,使用主键关联
  3. 水平拆分是把单个大表(数据量大>1000W行)按某个规则把数据分散到多个表的拆分方式
  4. 拆分出来的表,可以分别放至到不同数据库中,即同时进行水平拆库操作

用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗?MQ系统的数据如何保证不丢失

  • 一定要结合一个实际的MQ产品来说,比如Kafka

如何做一个分布式锁,应用场景?

  • 一般有三种实现方案
  1. redis:https://yq.aliyun.com/articles/307547
  2. zookeeper:http://www.54tianzhisheng.cn/2018/04/24/Distributed_lock
  3. mysql

分布式唯一ID

  1. https://tech.meituan.com/dianping_order_db_sharding.html

redis/zk节点宕机如何处理