Day14_Spring Cloud

文章目录

一、微服务

1.什么是微服务?

微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,一个服务做一件事,服务之间互相协调、互相配合,拥有自己独立的数据库,并且能够被独立地部署到生产环境。

1.分布式、集群、微服务的区别

去饭店吃饭就是一个完整的业务,饭店的厨师、配菜师、传菜员、服务员就是分布式;厨师、配菜师、传菜员和服务员都不止一个人,这就是集群;

分布式:一个大业务分拆多个子业务,部署在不同的服务器上。一个节点垮了,那这个大业务就不可访问了。

集群:同一个业务,部署在多个服务器上

好的设计应该是分布式和集群的结合,先分布式再集群

微服务:与分布式比较相似,微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,一个服务做一件事,服务之间互相协调、互相配合,拥有自己独立的数据库,并且能够被独立地部署到生产环境。

1.微服务有哪些优缺点?

优点:

  • 服务被拆分了,所以每个微服务的代码均只专注于完成该单个业务范畴的事情,这样代码的可读性好;在系统中出现问题的时候仅仅只会影响单个微服务,故障隔离性好;每个开发人员专心搞自己的东西,团队协作起来更易于沟通

缺点:

  • 因为把服务拆解了,那么服务之间的调用就变得复杂了,而且可能还得引入分布式事务,增加了系统复杂性

1.微服务有哪些特点?

优点:

  • 每个微服务的代码均只专注于完成该单个业务范畴的事情,这样代码的可读性好;在系统中出现问题的时候仅仅只会影响单个微服务,故障隔离性好;每个开发人员专心搞自己的东西,团队协作起来更易于沟通

缺点:

  • 因为把服务拆解了,那么服务之间的调用就变得复杂了,而且可能还得引入分布式事务,增加了系统复杂性

1.微服务之间是如何通讯的?

同步:远程过程调用(可以通过HTTP协议进行调用,接口使用restful风格的,数据格式采用json格式)。
缺点:只支持同步的方式,客户端和服务端在请求过程中必须都是可用的

异步:可以使用mq,kafka
优点:把客户端和服务端解耦,而且消息中间件可以缓存消息直到消费者可以消费,支持异步
缺点:消息中间件有额外的复杂性

二、SpringCloud总说

2.什么是 Spring Cloud?

spring cloud 是将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供服务注册中心–服务调用–服务网关—服务总线—服务配置—服务降级

2.请谈谈对SpringBoot 和SpringCloud的理解

SpringBoot专注于快速方便的开发单个个体微服务。

spring cloud 是将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供服务注册中心–服务调用–服务网关—服务总线—服务配置—服务降级

SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖的关系。

2.使用Spring Cloud有什么优势?它解决了SpringBoot的哪些问题?

Spring Cloud解决了Spring Boot开发面临的以下问题:

小项目不需要考虑Spring Cloud。当你的Spring Boot应用越来越多,应用间关系越来越复杂时,引入SpringCloud就可以解决服务发现的一些问题、负载均衡的一些问题、服务配置的一些问题。

2.Spring Cloud由哪些组件组成?

服务注册中心--服务调用--服务网关---服务总线---服务配置---服务降级

服务注册中心和服务调用就不说了,服务网关就相当于站台,我们在站台等车bus,有了bus还想不起config吗?(这两个好搭档),最后就是车多了需要梳理交通(服务降级)

在这里插入图片描述

2.你所知道的微服务技术栈有哪些?

服务注册中心--服务调用--服务网关---服务总线---服务配置---服务降级

服务注册中心和服务调用就不说了,服务网关就相当于站台,我们在站台等车bus,有了bus还想不起config吗?(这两个好搭档),最后就是车多了需要梳理交通(服务降级)

在这里插入图片描述

2.springcloud核心组件及其作用

服务注册中心:EurekaZookeeperNacos
Eureka:服务注册中心。每个服务都向Eureka Server登记自己提供服务的元数据,包括服务的ip地址、端口号、版本号、通信协议等。eureka server将各个服务维护在了一个服务清单中。Eureka的Client连接到 Eureka Server并维持心跳连接,这样系统的维护人员就可以通过 Eureka Server来监控系统中各个微服务是否正常运行。eureka注册的服务之间调用不需要指定服务地址,而是通过服务名向注册中心咨询,并获取所有服务实例清单(缓存到本地),然后实现服务的请求访问。
Zookeeper:说一下“Eureka和zookeeper都可以提供服务注册与发现的功能,两者的区别”

服务调用:RibbonFeign
Ribbon:Ribbon客户端的负载均衡,将负载均衡逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务器。
Feign:Ribbon+RestTemplate是自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤比较繁琐。Feign则是在Ribbon的基础上进行了一次改进,采用接口调用的方式,将需要调用的其他服务的方法定义成抽象方法即可,不需要自己构建http请求,不过要注意的是抽象方法的注解、方法签名要和提供方的完全一致。

服务网关:ZuulGateway
Zuul:zuul是对SpringCloud提供的成熟的路由方案,他会根据请求的路径不同,代理请求到不同的微服务接口,他对外隐蔽了微服务的真正接口地址。

服务总线:Bus
Spring Cloud Bus一般是配合Spring Cloud Config做配置中心的
Spring Cloud config实时刷新也必须采用 SpringCloud Bus消息总线

服务配置:config

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlackTurn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值