概述
微服务架构:是一套使用小服务或者单一业务来开发单个应用的方式或途径。微服务架构是一种风格,将系统拆分成很多小型服务,通过http,restful api通信。
特点:
- 单一职责
- 服务粒度小
- 面向服务(对外暴露REST api)
- 服务可使用不用语言实现
- 服务之间相互独立
与使用ESB的SOA架构的区别:微服务架构没有使用ESB,有服务治理注册中心;业务粒度小。
01-初识
Spring Cloud 是一系列框架的有序集合,如服务发现注册、配置中心、消息总线、负载均
衡、 断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署
版本命名方式采用了伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序
springboot和springcloud区别
-
Spring Boot是spring的一个脚手架,基于spring,快速开发单个微服务
-
Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。
-
Spring Cloud是一个基于Spring Boot实现的云应用开发工具;
-
Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;
-
spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,
-
Spring Cloud很大的一部分是基于Spring boot来实现。
04-Spring Cloud-Spring Cloud 和 dubbo 对比
小结
• 微服务就是将项目的各个模块拆分为可独立运行、部署、测试的架构设计风格。
• Spring 公司将其他公司中微服务架构常用的组件整合起来,并使用 SpringBoot 简化其开发、配置。称为 Spring Cloud
• Spring Cloud 与 Dubbo都是实现微服务有效的工具。Dubbo 性能更好,而 Spring Cloud 功能更全面。
面试题:
dubbo 和springcloud 区别?
-
Spring Cloud抛弃了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。两种方式各有优劣,后者牺牲了服务调用的性能,而且REST相比RPC更为灵活,在强调快速演化的微服务环境下,显得更为合适。
-
Dubbo和Spring Cloud并不是完全的竞争关系,两者所解决的问题域不一样:Dubbo的定位始终是一款RPC框架,而Spring Cloud的目的是微服务架构下的一站式解决方案。
-
非要比较的话,Dubbo可以类比到Netflix OSS技术栈,而Spring Cloud集成了Netflix OSS作为分布式服
务治理解决方案,但除此之外Spring Cloud还提供了包括config、stream、security、sleuth等分布式服务解决方案。当前由于RPC协议、注册中心元数据不匹配等问题,在面临微服务基础框架选型时Dubbo与Spring Cloud只能二选一,这也是两者总拿来做对比的原因。Dubbo之后会积极寻求适配到Spring Cloud生态,比如作为SpringCloud的二进制通讯方案来发挥Dubbo的性能优势,或者Dubbo通过模块化以及对http的支持适配到Spring Cloud
RPC 和 Http 区别 ?
- RPC:Remote Produce Call远程过程调用,RPC基于Socket,工作在会话层。自定义数据格式,速度快,效
率高。早期的webservice,现在热门的dubbo,都是RPC的典型代表 - Http:http其实是一种网络传输协议,基于TCP,工作在应用层,规定了数据传输的格式。现在客户端浏览器
与服务端通信基本都是采用Http协议,也可以用来进行远程服务调用。缺点是消息封装臃肿,优势是对服务的
提供和调用方没有任何技术限定,自由灵活,更符合微服务理念。现在热门的Rest风格,就可以通过http协议来实现。
如果公司全部采用Java技术栈,那么使用Dubbo作为微服务架构是一个不错的选择。相反,如果公司的技术栈多样化,而且你更青睐Spring家族,那么Spring Cloud搭建微服务是不二之选