天天看点

springcloud自学之路-1(理论知识铺垫)

一、网站架构演变过程

传统架构(单点)->分布式(以项目进行拆分)->SOA(面向服务架构)->微服务架构

(1)传统架构:SSH或者SSM

缺点:耦合度太高,只适合一个人或者小团队开发。

(2)分布式架构基于传统架构演变过来的。

传统架构的话:

1.代码冲突、任务不好分配、容易起冲突问题。

分布式架构基于传统架构演变过来的。将传统的项目以项目模块进行拆分,比如拆分成会员项目、订单项目、支付项目等。每个项目都有独立的数据库、redis等。

会员项目:登录、注册

订单项目:下单、查询订单

总结:分布式与传统架构区别:

项目粒度更细、适合于互联网人员开发、耦合度。

(3)SOA架构与微服务架构

SOA是面向服务的架构,俗称服务化。可以理解为面向业务的逻辑层。将共同的业务代码进行抽取出来,提供给其他接口进行调用。服务与服务之间通讯采用rpc远程调用。底层基于SOAP或者ESB实现。底层使用HTTP或者HTTPS协议+重量级的数据交换格式进行通讯。在后面的微服务中,已经以json格式替代了xml,因为xml中有太多冗余代码。而json比较轻量,比较节约带宽。

webservice底层是采用HTTP+XML(SOAP)

RPC是两个或者多个应用实现远程调用。

服务化:将共同的业务逻辑进行拆分,拆分成独立的项目进行部署。没有视图层,理解成接口。

(4)微服务架构产生的原因

SOA缺点:

1.依赖中心化的服务发现与机制;

2.因为SOA架构采用SOAP协议(HTTP+XML),因为xml占用宽带,整个xml报文中有非常大的冗余数据,所以微服务中以轻量级的json方式替代xml。

3.服务管理混乱,缺少服务管理和治理设施不完善。

二、微服务架构模式定义

微服务架构是从SOA架构演变过来的,比SOA架构粒度更加精细。提高效率。服务与服务之间互不影响。每个服务独立部署。更加轻量级,采用restful风格提供api。也就是http+json。更适合敏捷开发。快速迭代产品。

三、微服务架构与SOA架构的区别

1.微服务架构基于SOA架构演变过来的,继承SOA的优点,在微服务中去除SOA架构的ESB消息总线,采用HTTP+JSON(RESTFUL)进行传输。

2.微服务架构比SOA架构粒度更加精细,让专业的人做专业的事儿(专注),目的是提高效率,每个服务之间互不影响,微服务架构中,每个服务必须独立部署,微服务架构更加轻巧,轻量级。

3.SOA架构可能数据库存储会发生共享,但是微服务强调每个服务都是单独的数据库,保证服务之间互不影响。

4.微服务架构比SOA架构更适合互联网公司进行敏捷开发,快速迭代,因为划分的粒度更细。

四、为什么使用springcloud?

1.springcloud是目前一套比较完整的微服务解决方案框架。

2.一条龙服务。

五、springcloud简介?

springcloud是基于springboot的基础上开发的微服务框架,是目前一套非常完整的微服务解决方案的框架。包括服务治理、注册中心、配置管理、断路器、智能路由、微代理、控制总线、全局锁、分布式会话等。

包括众多子项目:

springcloud config 分布式配置中心

springcloud netflix 核心组件:

eureka 服务治理 注册中心

Hystrix:服务保护框架

Ribbon:客户端负载均衡器

Feign:基于ribbon和hystrix的声明式调用组件

Zuul:网关组件

六、springcloud解决什么问题?

RPC远程调用、微服务解决方案、配置管理、注册中心eureka、服务发现与服务注册、断路器、路由策略、负载均衡、全局锁、分布式会话、客户端调用、接口网关、服务管理系统