IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringCloud -> 正文阅读

[Java知识库]SpringCloud

目录

一、什么是SpringCloud?

二、为什么要学SpringCloud?

三、怎么用SpringCloud?

0、SpringCloud 常用组件表 (管家)

0、SpringCloud 版本对应关系【开发重点】

1、Spring Cloud Eureka

Spring Cloud Eureka 和 Zookeeper 的区别(面试)


一、什么是SpringCloud?

SpringCloud为了管理、治理好我们的微服务,从多个角度提供了很多组件给我们用。

SpringCloud是微服务思想的实现。SpringCloud是Java语言的微服务框架。什么是微服务在为什么要学SpringCloud中介绍。它依赖于 Spring Boot,简化了很多配置文件的编写。

Spring Cloud 就是通过提供一系列开发组件和框架,帮助开发者迅速搭建 一个分布式的微服务系统。主要由三家公司Spring Netflix Alibaba提供一些组件。

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

二、为什么要学SpringCloud?

单体架构应用的缺点大于优点,所以推出了分布式架构应用:将一个应用拆分成多个小的模块,每个模块都有自己的功能和职责,每个模块可以进行交互,这就是微服务,每个模块都是一个微小的服务用来服务整体应用。

而为了更好的管理和治理这些个微服务,就需要使用SpringCloud中提供的各个组件。

微服务架构的4个核心问题

1、有很多个服务,客户端该怎么访问?

2、这么多服务,各个服务之间该如何通信完成功能?

3、这么多服务,应该如何管理?

4、这么多服务,要是有一个服务挂了怎么办?

而我们的SpringCloud生态中的各个组件就是为了解决这四个问题而出现的。

三、怎么用SpringCloud?

0、SpringCloud 常用组件表?

服务的注册和发现。(eureka, nacos, consul)

服务的负载均衡。 (ribbon, dubbo)

服务的相互调用。(openFeign, dubbo)

服务的容错。(hystrix, sentinel)

服务网关。(gateway, zuul)

服务配置的统一管理。(config-server, nacos, apollo)

服务消息总线。 (bus)

服务安全组件。 (security, Oauth2 . 0)

服务监控。 (admin) (jvm)

链路追踪。 (sleuth+zipkin)

0、SpringCloud 版本对应关系【开发重点】

SpringCloud用哪个版本需要对应版本的SpringBoot,然后如果用了Alibaba的某个版本的组件,也需要对应版本的SpringBoot,所以版本一定要注意。可以去spring官网参考。

SpringCloud和SpringBoot的对应版本:

?Alibaba、cloud、boot的版本对应:

1、解决微服务架构的4个核心问题的方案

1、有很多个服务,客户端该怎么访问?

2、这么多服务,各个服务之间该如何通信完成功能?

3、这么多服务,应该如何管理?

4、这么多服务,要是有一个服务挂了怎么办?

而我们的SpringCloud生态中的各个组件就是为了解决这四个问题而出现的。

1)Spring Cloud NetFlix 一站式解决方案

API网关:zuul组件

Feign--HttpClient--服务间采用Http通信方式,同步,阻塞

服务注册和发现:使用Euraka管理服务

熔断机制:Hystrix

2)Apache Dubbo Zookeeper 半自动,需要整合一些别人的组件

API网关:没有,需要借助第三方组件(如zuul组件)或自己编码实现

服务通信:Dubbo

服务注册中心:Zookeeper

熔断机制:没有,借助第三方Hystrix

3)Spring Cloud Alibaba 一站式解决方案,更简单!

2、SpringBoot和SpringCloud的关系

SpringBoot用来开发微服务架构中的一个个微服务,而Spring Cloud是用来协同管理治理这些微服务。

SpringCloud依赖SpringBoot,离不开。

3、Spring Cloud Eureka

服务注册与服务发现的组件

Eureka 来源于古希腊词汇,意为“发现了”。在软件领域, Eureka 是 Netflix 公司开源的一个?服务注册与发现?的组件,和其他 Netflix 公司的服务组件(例如负载均衡、 熔断器、网关等) 一起,被 Spring Cloud 社区整合为 Spring Cloud Netflix 模块。

Eureka 是 Netflix 贡献给 Spring Cloud 的一个框架! Netflix 给 Spring Cloud 贡 献了很多框架,后面我们会学习到!

1.1 Spring Cloud Eureka 和 Zookeeper 的区别(面试)

什么是CAP原则?

CAP 原则又称 CAP 定理,指的是在一个分布式系统中,

一致性(Consistency)、

可用性(Availability)、

分区容错性(Partition tolerance)(这个特性是不可避免的);

CAP 原则指的是,在一个分布式系统中这三个要素最多只能同时实现两点,不可能三者兼顾,所以要有取舍。CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。

一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)

可用性(A):保证每个请求不管成功或者失败都有响应。

分区容忍性(P):系统中任意信息的丢失或失败不会影响系统的继续运作。

?分区容错性是必须要的,所以一般都是CP或AP,Zookeeper注重数据的一致性,采用CP原则。而Eureka注重服务的可用性,采用AP原则。

区别?

Euraka是服务的注册中心和服务发现的组件,Zookeeper是服务注册中心。

Euraka注重服务的可用性,采用AP原则,每个服务节点都是平级的,没有主从关系,所以只要还有一个服务的服务器没挂,整个系统还是可以用的。

Zookeeper注重各个服务间数据的一致性,采用CP原则,在zookeeper里面,若主机挂掉了,则zk集群整体不对外提供服务了,需要选一个新leader的出来(120s)才能继续对外提供服务!不保证高可用。

1.2 搭建 Eureka- server?

Eureka Server提供服务注册 服务,各个服务节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。

就像饿了吗软件,就可以理解为一个注册中心,各个商家在里面注册,

1.3?搭建 Eureka- client


Lombok常用注解
@Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法。

@ToString : 作用于类,覆盖默认的toString()方法 ,可以通过of属性限定显示某些字段,通过。

exclude属性排除某些字段。

@AllArgsConstructor:生成全参构造器。

@NoArgsConstructor:生成无参构造器。

@Data: 该注解使用在类上,该注解会提供 getter 、 setter 、 equals 、 hashCode 、

toString 方法。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 01:51:23  更:2022-09-15 01:52:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:21:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码