1 微服务面临的问题?
微服务间如何通信
从通讯协议角度考虑
- REST API
- RPC(dubbo, thrift, grpc): 微服务之间通讯很常用,是最常用的微服务之间通信协议。
I/O: IO/ NIO(非阻塞IO)/长连接/短连接。(NIO是RPC时候考虑的问题。)
线程模型: 单线程,多线程,线程调度算法。
序列化方式: 二进制, JSON... ,序列化/反序列化效率影响性能。
多语言: 如果是多语言的话,要使用支持多语言的RPC框架。
服务治理: 服务监控、治理。
流行的RPC: dubbo,Dubbox(当当),Motan, Thrift, Grpc
- MQ(消息队列)
微服务如何彼此发现
微服务如何部署?更新?扩容?
2 流行的RPC框架
dubbo, Motan: 只是支持JAVA, 并且实现了服务治理(服务治理:包括服务发现,服务注册,服务摘抄, 高可用, 负载均衡)
Thrift(跨语言): 跨语言,没有实现服务治理;
GRPC: 跨语言,不是基于
3 服务发现
客户端发现
客户端发现
4 服务部署、更新和扩容
5 服务编排
服务编排:服务发现,服务部署,更新扩容、缩容。
Mesos Docker Swarm.