欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring Boot and Cloud part1

程序员文章站 2022-06-22 13:54:09
#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栈中,...

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、一个服务可以包含多个进程
Spring Boot and Cloud part1
4、产品并非项目

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

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

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

5、数据管理

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

5.2、微服务项目,可以每一个服务使用一个单独的数据库,或者某几个服务使用的数据相同时,也可以多个服务使用一个数据库,因此一个微服务可以使用多个数据库进行数据管理
Spring Boot and Cloud part1
6、缺点

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

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

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

相关标签: 学习 分布式