Spring Cloud理解

1、微服务的特点

1)按业务划分为一个独立运行的程序,即服务单元。

2)服务之间通过http协议相互通信。

3)自动化部署。

4)可以用不同的编程语言。

5)服务集中化管理。

6)微服务是一个分布式系统。

2、微服务架构与SOA架构区别

1)SOA架构中通常使用XML方式实现通信,在高并发情况下,XML会比较冗余,所以微服务使用json代替了xml方式。

2)SOA架构的底层实现通过WebService和ESB,WebService底层采用soap协议通讯。

3、微服务的优势

1)服务按照业务进行拆分,编码也是按照业务拆分,代码的可读性和可扩展性增加。

2)由于微服务系统是分布式系统,服务与服务之间没有任何的耦合。随着业务的增加,可以根据业务再拆分服务,具有极强的横向扩展能力。随着用户数量的增加,并发量增加,可以将微服务集群化部署,从而增强服务的负载能力。

3)服务与服务之间通过http协议通信,单个微服务内部高度耦合,服务与服务之间完全独立,无耦合。

4)微服务的修改和测试对其他服务没有影响,只需要测试并部署被修改的那个服务,这就大大减少了测试和部署的时间。

5)微服务在CAP理论汇总采用的是AP架构,即具有高可用和分区容错的特点。

4、分布式系统CAP理论

分布式系统中有一个著名的CAP理论,即同时满足“一致性”、“可用性”、“分区容错”是一件不可能的事。

Consistency:指数据的强一致性。如果写入某个数据成功,之后读取,读到的都是新的写入的数据;如果写入失败,之后读取的都不是写入失败的数据。

Aviaibility:指服务的可用性。

Partition-tolerance:指分区容错。

单体服务通常是CA系统,微服务系统通常是AP系统,其数据一致性通常采用两阶段提交的策略实现。

5、微服务的三大难题

1)服务故障的传播性

2)服务的划分

3)分布式事务

6、Spring Cloud与Dubbo

1)Spring Cloud是基于Spring Boot的。包含以下组件:

Eureka:服务注册与发现组件(Spring Cloud也支持Consul和Zookeeper)

Hystrix:熔断组件,除了有一些基本的熔断器功能外,还能够实现服务降级、服务限流的功能

Ribbon:负载均衡组件,通常和Eureka、Zuul、RestTemplate、Feign配合使用。

Zuul:路由网关。内部服务的API接口通过Zuul网关统一对外暴露,内部服务的API接口不直接暴露,防止了内部服务敏感信息对外暴露。还可以拦截请求,实现角色权限判断。

以上组件都来自Netflix公司,统一称为Spring Cloud Netflix。

Spring Cloud Config:配置文件统一管理(读取仓库配置文件信息然后管理)

Spring Cloud Security:用户验证与权限控制

Spring Cloud Sleuth:分布式链路追踪组件,通过它可以知道服务之间依赖管理,并实时观察链路的调用情况。

2)Dubbo是阿里巴巴开源的一个分布式服务框架,集成了Apache的Zookeeper组件,用于服务注册和发现。

3)区别:

Spring Cloud的通信方式大多基于HTTP Restful风格的,服务与服务之间解耦无关,各服务无关乎语言平台,只需要对应的API接口即可相互调用;Dubbo的通信方式基于远程调用,对接口、平台和语言有强依赖性。如果需要实现跨平台调用服务,需要额外中间件;

Spring Cloud在模块完备性上远超过Dubbo,如Dubbo不具备网关、链路追踪等模块。

 

参考书籍:深入理解Spring Cloud与微服务构建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值