SpringCloud微服务架构的学习理解一

一.什么是springcloud

springCloud是集合了其他的技术,多达21种的技术,集成了为微服务工作的各个组件。

二.什么是微服务架构

微服务架构是由马丁-福勒提出的,将单一的应用程序划分为多个模块的进行服务设计的一种架构风格。其中包括多个微服务,并对这些微服务进行统一 的管理,和调用等方面的工作。
多个服务之间互相协调,互相配合,互相进行通信。
Dubbo是通过RPC调用进行通信的,SpringCloud是通过基于http协议的REST API进行通信,各个服务中可以使用多种语言进行编写服务,互相进行调用。

三.什么是微服务

我们一个工程中的每一个module都是一个服务,根据垂直方向上的业务分为多个模块,完成一个具体的任务,功能,在自己的进程中,与其他的服务互不干扰,就是每一个业务模块。

四.微服务有什么优点与缺点

优点:
1.聚集一个指定的业务模块或者业务需求,开发效率高
2.耦合性低,每个服务就是一个进程,服务之间互相不干扰
3.每个服务可以使用不同的语言进行开发,服务之间通过REST API进行调用。
4.微服务只是一个后端的程序,我们没必要去关注前端的html,css,javascript,只需要关注REST 请求的地址+输入参数的格式和报文约定+输出参数
5.每一个服务可以有自己的数据库,与其他的服务的数据库互不干扰,也可以服务之间共用一个数据库。
缺点:
1.分布式的复杂性(之前只需要部署一个war,现在需要进行多个进行部署)
2.服务之间进行通信的复杂性及调用超时的处理
3.对服务的性能进行监控。

五.微服务的技术栈

多种技术的集合体,包括服务治理,服务注册,服务负载均衡,服务监控,服务调用等,
springCloud为我们提供一条龙的服务。

技术维度 技术实现

服务开发 : springboot,spring,springMVC
服务配置和管理: Netflix公司的Archaius,阿里的Diamond
服务注册与发现 : Eureka, zookeeper, cnsul
服务之间调用 : REST RPC GRPC
服务熔断器(调用超时): Hystrix Envoy
负载均衡 : Ribbon Nginx
服务调用接口(调用简化工具): Feign
消息队列 : Kafka RabbitMQ ActiveMQ
服务配置中心管理 : springcloudConfig chef
服务路由(API网关): Zuul
服务监控 : zabbix nagios metrics spectator
服务部署 : Docker,openstack,Rubernetes
数据流操作开发包 : springCloud Stream(封装Redia,Rabbit,kafka)

六.市面上的微服务架构

  1. 阿里:Dubbo/HSF
  2. 京东:JSF
  3. 新浪微博:Motan
  4. 当当网:DubboX

七.springCloud和springBoot的关系

1.springBoot指的是快速搭建每一个服务,相当于医院的你每一个科室
2.springCloud指的是把多个由springBoot搭建的服务进行管理,进行调控,相当于一个医院,springCloud依赖于springBoot,是一个微服务架构,为各个微服务提供继承的各个技术的一个整体架构。

你可能感兴趣的:(SpringCloud)