美文网首页
微服务概念

微服务概念

作者: Marlon666 | 来源:发表于2018-06-19 14:02 被阅读9次

    微服务

    将功能分解到各个离散的服务中,以实现对解决方案的解耦,并提供更加灵活地额服务支持。
    系统中的微服务可被独立部署,各个微服务之间是松耦合的。每个服务仅仅关注完成一件任务并很好的完成该任务。
    
    微服务是一种架构风格,把一个大型复杂软件应用拆分成一个或者数十个个微服务,它可以扩展单个组件,
    而不是而不是应用程序堆栈,从而满足服务等级协议。
    微服务是根据业务组件领域来创建应用,这些组件可以独立的完成开发、管理和迭代。
    

    特点

    1、分布式管理,强调隔离性。
    2、按照业务来划分组织
    3、有生命的产品,而不是项目
    4、强服务个体弱通信
    5、自动化运维Devps
    6、具有高度的容错性
    7、可以快速演化和迭代
    
    image.png image.png

    微服务具体实践要解决的问题?

    1、客户端如何访问这些服务?
    Api Gateway进行处理 : 提供统一的服务入口,微服务对前台透明;聚合后台服务,集成流量,提升性能;提供安全、过滤、流控等API的管理功能。
    
    2、每个服务之间是如何通信的?
    
    异步:消息队列 (Kafka) 
    
    同步:Rest(Spring boot 、JAX-RS ) 或 RPC(dubbo) 
     
    同步和异步的区别?
     1)同步调用比较简单、一致性强,但是容易出现调用问题,尤其是在调用层次比较多的时候;可以跨客户端;支持各种语言更加灵活;封装了httpSDK就可以使用广泛;
      RPC传输协议协议更加高效,安全更加可靠,特别是在一个公司内部,有统一规范。
     2)异步应用广泛,既能减少调用服务之间的耦合又能调用之间的缓冲,确保消息不会冲垮被调用方,同事能保证调用的服务体验。
     但是会使一致性减弱,需要介绍数据的最终的一致性,后台服务要实现幂等性;有时会有重复;同时要引入Broker(代理)。
    

    3、如此多的服务如何实现?

    采用类似zookeeper实现:服务注册等信息的分布式管理。
    当服务上线时,服务提供者将自己的服务信息提供到ZK,并通过心跳维持长链接,实时更新链接信息。服务调用者根据ZK去寻找地址,通过
    可定制的算法,找到一个服务,还可以服务的信息缓存到本地来提高性能,当服务上线时,ZK会把信息通知给服务的客户端。和doubbo很像。
    

    4、服务挂了,该如何解决?有什么备份方案和应急处理机制?

    重试机制、应用限流、熔断机制、负载均衡、系统降级。
    

    相关文章

      网友评论

          本文标题:微服务概念

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