菜鸟程序猿之微服务介绍

spring cloud学习

一、架构
    1、单体架构
        ★什么是单体架构
            一个归档包包含了应用所有功能的应用程序,我们通常称之为单体应用。
            架构单体应用的架构风格,我们称之为单体架构,这是一种比较传统的架构风格。
        
        ★单体架构的缺点
            a.复杂性逐渐变高
            b.部署速度逐渐变慢
            c.阻碍技术创新
            d.无法按需伸缩
        
    2、架构的演进
        ★单体架构
        ★SOA
        ★微服务
        
二、微服务
    1、定义(Martin Fowler):
        简而言之,微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。
        其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。
        这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。
        这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。
        
    2、特性
        ★每个微服务可独立运行在自己的进程里;
        ★一系列独立运行的微服务共同构建起了整个系统;
        ★每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理、用户管理等;
        ★微服务之间通过一些轻量的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。
        
    3、优点
        ★易于开发和维护
        ★启动较快
        ★局部修改容易部署
        ★技术栈不受限
        ★按需伸缩
        ★DevOps
        
    4、微服务带来的挑战
        ★运维要求较高
        ★分布式的复杂性
        ★接口调整成本高
        ★重复劳动
        
    5、设计原则
        ★单一职责原则
        ★服务自治原则
        ★轻量级通信原则
        ★接口明确原则
        
    6、分布式系统一致性问题
        ★案例1:下订单和扣库存
        ★案例2:同步调用超时
        ★案例3:异步回调超时
        ★案例4:掉单
        ★案例5:系统间状态不一致
        ★案例6:缓存和数据库不一致
        ★案例7:本地缓存节点间不一致
        ★案例8:缓存数据结构不一致
        ...
        
    7、保证最终一致性的模式
        ★查询模式
        ★补偿模式
        ★异步确保模式
        ★定期校对模式
        ★可靠消息模式
        ★缓存一致性模式

    8、微服务开发框架
        ★Spring Cloud:http://projects.spring.io/spring-cloud
        ★Dubbo:http://dubbo.io
        ★Dropwizard:http://www.dropwizard.io
        ★Consl: https://www.consul.io/

        ★Thrift: http://thrift.apache.org/

三、Spring Cloud
    1、优势
        ★产出于spring大家族,spring在企业级开发框架中无人能敌,来头很大,可以保证后续的更新、完善。
        ★作为一个微服务治理的全家桶,考虑的很全面,几乎服务治理的方方面面都考虑到了,方便开发开箱即用。
        ★采用Spring Boot应用程序提供的集成功能,通过几个简单的注释,开发人员可以快速配置和启用应用程序中的常见功能模块,并使用久经考验的Netflix组件构建大型分布式系统。
        ★Spring Cloud 社区活跃度很高,教程很丰富,遇到问题很容易找到解决方案。
        
    2、常用组件

        ★服务发现——Netflix Eureka
        ★客服端负载均衡——Netflix Ribbon
        ★断路器——Netflix Hystrix
        ★服务网关——Netflix Zuul
        ★分布式配置——Spring Cloud Config




猜你喜欢

转载自blog.csdn.net/yxh13521338301/article/details/80730683