当前位置: 移动技术网 > IT编程>开发语言>Java > Spring Boot and Cloud part1

Spring Boot and Cloud part1

2020年07月17日  | 移动技术网IT编程  | 我要评论

part1 学习笔记第一天**

1、笔记概况
注释:Spring Cloud是微服务风格的一种实现方式

1.1、Spring Cloud Eureka:本质是服务发现和注册中心。
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的

1.2、Spring Cloud Ribbon:客户端负载均衡

1.3、Spring Cloud Feign:
在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端。我们可以使用JDK原生的URLConnection、Apache的Http Client、Netty的异步HTTP Client,Spring的RestTemplate。但是,用起来最方便的还是要属Feign了。
Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。

1.4、Spring Cloud Hystrix:熔断器
在微服务架构中多层服务之间会相互调用,如果其中有一层服务故障了,可能会导致一层服务或者多层服务故障,从而导致整个系统故障。这种现象被称为服务雪崩效应。
SpringCloud 中的 Hystrix 组件就可以解决此类问题,Hystrix 负责监控服务之间的调用情况,连续多次失败的情况进行熔断保护。保护的方法就是使用 Fallback,当调用的服务出现故障时,就可以使用 Fallback 方法的返回值;Hystrix 间隔时间会再次检查故障的服务,如果故障服务恢复,将继续使用服务。

1.5、Spring Cloud Zuul:服务网关

1.6、Spring Cloud Config:集中的配置文件,将配置从项目中解藕出来。

1.7、Spring Cloud Sleuth: 分布链路追踪。

2、微服务是什么

2.1、Spring Boot !=微服务
Spring Cloud!=微服务

2.2、微服务是一种架构风格而不是一种标准

2.3、什么是微服务:
顾名思义,是一个微小的服务,为什么会说是“微”呢?意思整个服务的是比较微小的,是一个独立的业务模块,专做改业务的事情,是一个独立的功能单元,每个功能可以拆分为一个个服务进行开发,可以通过http的api进行相互调用。

2.4、微服务的好处:
单体的功能全部耦合在一个项目上,代码的量非常的大,维护成本高,相对于微服务来说,按照功能划分服务,每个服务只做一个服务功能,代码量少,维护成本低,管理非常的方便。对于数据存储来说,单服务是把所有的表放在一个数据库中,如果遇到瓶颈的时候,是没办法拆分出来,对于微服务来说,按照业务功能来划分服务,每个服务有专门存储的数据库,对于功能拓展来说是非常的方便。

2.5、单体应用项目部署后,任何代码的更改都需要对整个应用项目进行重新部署更改,微服务则是改变了这一现象

3、组件化和服务

3.1、组件是一个软件单元,可以独立的也可以替换的或者进行升级的。

3.2、服务是进程外的组件,通过web的service的请求或者远程过程调用

3.3、服务是可以独立部署的,因此当多个服务组成的项目功能进行更新时,可以单独更新某个服务,而不需要更新整个项目,但是当提供的接口更新后,项目必须重新部署。

3.4、远程调用要比进程内调用效率要低

3.5、一个服务可以包含多个进程
在这里插入图片描述
4、产品并非项目

4.1、微服务的每一个团队应该有一个产品,任何一个更改都需要各个团队进行通力合作。

4.2、微服务的跨进程通信(服务间通信)最好一次调用获得多个返回消息,最好不要跨进程的多次调用得到较少的返回值(即服务调用服务,然后重复调用其他服务,最后得到一个返回值),与传统的进程间通信不同点在于,传统进程间通信可以调用一个方法后这个方法调用其他方法,通过多次调用后,最后得到一个返回值。

4.3、微服务可以在一定程度上使用其他语言实现某个服务,但是这种做法并不常见(即拥有这种选择但是不一定要选择这么去做)。

5、数据管理

5.1、传统的单个项目使用一个数据库,其中包含整个项目所需要的数据

5.2、微服务项目,可以每一个服务使用一个单独的数据库,或者某几个服务使用的数据相同时,也可以多个服务使用一个数据库,因此一个微服务可以使用多个数据库进行数据管理
在这里插入图片描述
6、缺点

6.1、当使用微服务时需要忍受微服务的一个服务不可达,及不响应的缺点,因为微服务引入了更复杂的调用方式。

6.2、微服务团队必须检测好服务的调用失败,然后即使进行修复

本文地址:https://blog.csdn.net/qq_41217631/article/details/107350179

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网