微服务

作者: 小螺丝钉cici | 来源:发表于2018-09-08 18:05 被阅读0次

    微服务的特点

    1:是一系列小服务的组合。
    微服务粒度围绕业务进行拆分的,(比如:商品领域,交易领域,物流领域)

    2:独立进程
    任何一个微服务从它的开发,测试,上线,以及运维等过程都可以独立的进行,不依赖以其他的微服务。

    3:要围绕业务领域模型,进行建造
    轻量级通信:通信模式是轻量级的,两个模块之间的通信没有语言关系,没有平台关系。

    4:任何一个微服务都可以独立的进行部署

    5:去中心化管理
    去中心化管理:微服务具体用的语言,平台都没有强行的规定,以平台,语言没有依赖关系。

    微服务使用原因

    1:业务功能多,
    2:业务复杂性高
    3:用户体验好
    4:业务高速发展

    微服务架构特点:

    1:系统高可用
    2:系统高扩展性
    3:快速迭代
    4:持续交付

    image.png image.png

    微服务网关:维护海量链接(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.
    微服务协议也可以使用消息队列,两个微服务之间引入消息队列,把同步调用变为异步调用,进行传递消息。

    image.png

    Zookeeper注册中心实现机制:
    分为Server 端/Client 端。采用冗余的方法,提供服务。Server 端任何时候,都有主节点和从节点。当主节点挂了之后,自动选举出一个节点来继续对外提供服务,高可用。

    image.png

    当微服务挂了之后,如果保证请求不丢失呢?通过注册中心获得不可用服务。
    如果一个服务需要去远程调用一个地址,可能会存在长时间等待。这个等待时间会不会让微服务网关去把消息向其它服务去转发。
    还有,如果向一个需要有返回值的请求。使用微服务网关,会不会增加等待时长

    image.png

    柔性可用实践:
    系统降级
    数据层降级
    柔性可用策略

    image.png image.png image.png image.png

    服务治理
    open-falcon 自动化监控

    image.png image.png

    微服务架构
    1、系统水平分成,根据业务类型垂直分系统
    2、前端服务(iso,安卓手机),网关层(报文转换http转rpc),业务逻辑层,原子层,数据层(数据库,缓存)
    3、系统柔润性:请求限流(消息在对接超时丢弃,选择丢弃(不重要的消息),随机丢弃),服务降级
    4、系统可用性:注册中心,集群

    相关文章

      网友评论

          本文标题:微服务

          本文链接:https://www.haomeiwen.com/subject/qdnkgftx.html