概念扫盲:分布式与微服务
# 单体应用和微服务
# 分布式和微服务
# 微服务架构:
-API GateWay:
API网关是服务访问的统一入口,不是nginx服务器,是需要自定义写在项目中
可作微服务的统一接入、安全防护、流量监控与容错等
且服务间的通信,也会经过API网关,故性能要求特别高
-注册中心:上来一个服务需要在注册中心注册,完成服务的注册与发现
eg: zookeeper(Java使用较多)、etcd(go写的)、consul # 后两个go和python使用较多
-统一日志记录:所有的服务不再自己记录日志,而是异步调用 统一日志记录服务 来记录日志
eg:sentry(Django写的)
# 服务间通信方式IPC: Inter Process Communication
-restful:Http层 主要对外提供接口
-RPC:TCP层 主要内部服务调用 # 更底层一些,通信更快
# RPC框架:
Dubbo : java 同步调用 阿里巴巴开源到Apache上 Java编写的
ZeroRPC : python dotcloud公司开源
Thrift : 跨语言 同步调用 Facebook开源的Apache上 C++编写的 # 跨语言,就会存在数据的序列化
gRPC : 跨语言、protobuf 谷歌公司 go编写的
# 异步消息调用:
通过借助消息中间件MQ,实现消息的异步调用
eg: rabbitmq,kafka
# 微服务异常解决:
-重试
-限流
-熔断
-服务降级