架构设计相关
0. 什么是分布式系统,什么是微服务?
集群:多机器做同一件事情;
分布式系统: 一件事情,多系统协同完成;
微服务架构:构建分布式系统的一种架构方式, 核心思路是:去中心化;
http://www.cnblogs.com/liuning8023/p/4493156.html
1. RPC和RPC框架
RPC是指远程过程调用,实现远程过程调用的方式有很多中,Dubbo,Rmi,Hessian等等;
RPC的核心过程包括了客户端和服务端的通讯协议,寻址,数据序列化/反序列化;
对上述过程进行了封装,不需要开发人员自己去定义通讯协议,去实现序列化的细节工作,
这样的组件称为RPC框架;常见RPC框架有 thrift,gRpc,dubbo,motan
2. 序列化方式及作用
序列化:将java对象或者其他内存中的数据,转换为一种特定格式的流,使之可以在网络中传输或者磁盘上存储;
反序列化:将流以特定的格式转为java对象或者内存中其他形式的数据;# json,jdk serializable, Hessian,Dubbo, Protobuf,
作用:压缩;持久化存储;跨网络传输;
3. 分布式系统中事务的处理
参考:https://wenku.baidu.com/view/be946bec0975f46527d3e104.html
https://segmentfault.com/a/1190000004468442
事务相关必了解的概念:
ACID(Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性)
CAP(一致性Consistency,可用性Availability,分区容错性Partitiontolerance),分布式系统来说,P是不能放弃的
BASE(Basically Available(基本可用),Soft state(软状态),Eventuallyconsistent(最终一致性))
分布式事务实现方式:
1. XA (数据库厂商实现);2. 后台任务定期校对数据;3. 通过消息队列,实现最终一致(确保消息到达MQ,幂等性);4. TCC机制(Try,Confirm,Cancel)
https://www.cnblogs.com/rainwang/p/7099648.html
4. 系统监控
5. 高可用
6. 服务调用的负载均衡
7. 分布式配置中心
8. 服务注册与发现机制
9. 分布式系统如何拆分?