微服务的特点
1:是一系列小服务的组合。
微服务粒度围绕业务进行拆分的,(比如:商品领域,交易领域,物流领域)
2:独立进程
任何一个微服务从它的开发,测试,上线,以及运维等过程都可以独立的进行,不依赖以其他的微服务。
3:要围绕业务领域模型,进行建造
轻量级通信:通信模式是轻量级的,两个模块之间的通信没有语言关系,没有平台关系。
4:任何一个微服务都可以独立的进行部署
5:去中心化管理
去中心化管理:微服务具体用的语言,平台都没有强行的规定,以平台,语言没有依赖关系。
微服务使用原因
1:业务功能多,
2:业务复杂性高
3:用户体验好
4:业务高速发展
微服务架构特点:
1:系统高可用
2:系统高扩展性
3:快速迭代
4:持续交付
微服务网关:维护海量链接(http短链接,tcp长链接),对用户身份合法性,登录,session做以一些处理。
微服务聚合层:根据用户的请求,拆分成原子性的请求,做业务逻辑处理。比如商品相关的逻辑,交易相关的逻辑。
微服务原子层:增删改查这些服务接口/RPC
微服务数据层:对每个服务单独存在一个库中,或表里
轻量级通信:API采用Http/Https,服务之间的接口采用Rpc传输,通信效率高。
去中心化管理:避免不同语言的代价。微服务采用Java开发语言
微服务注册:需要微服务注册中心。ZK
微服务发现:
通信协议:轻量级通信
通信协议的种类:
image.png在我们公司项目实际运用中采用:
微服务网关:Rest Api (Https,Json)
微服务聚合层,原子层:RPC(SCF,私有协议)
REST协议基于HTTP协议的轻量级协议。
HAL协议基于REST协议提升。
RPC相较HTTP的优势之一:省去了HTTP头信息,传输包更轻量
RPC协议远程过程调用,开源的RPC的框架很多,如Thrift,gRpc,dubbo.
微服务协议也可以使用消息队列,两个微服务之间引入消息队列,把同步调用变为异步调用,进行传递消息。
Zookeeper注册中心实现机制:
分为Server 端/Client 端。采用冗余的方法,提供服务。Server 端任何时候,都有主节点和从节点。当主节点挂了之后,自动选举出一个节点来继续对外提供服务,高可用。
当微服务挂了之后,如果保证请求不丢失呢?通过注册中心获得不可用服务。
如果一个服务需要去远程调用一个地址,可能会存在长时间等待。这个等待时间会不会让微服务网关去把消息向其它服务去转发。
还有,如果向一个需要有返回值的请求。使用微服务网关,会不会增加等待时长
image.png image.png image.png image.png柔性可用实践:
系统降级
数据层降级
柔性可用策略
image.png image.png服务治理
open-falcon 自动化监控
微服务架构
1、系统水平分成,根据业务类型垂直分系统
2、前端服务(iso,安卓手机),网关层(报文转换http转rpc),业务逻辑层,原子层,数据层(数据库,缓存)
3、系统柔润性:请求限流(消息在对接超时丢弃,选择丢弃(不重要的消息),随机丢弃),服务降级
4、系统可用性:注册中心,集群
网友评论