Spring Cloud认知学习(一):Spring Cloud介绍与Eureka使用
这是一个Spring Cloud系列文章,它并不会讲解所有的知识点,它只是基于微服务的场景来逐步介绍常见组件的作用和意义,以及场景组件的整合。对于每个组件的知识并不会讲解太多,只讲常见的,目的是尽可能快速的对Spring Cloud的常用组件有一个基础的认知,有了认知之后,你就可以基于你面对的场景来单独学习某个组件,逐步丰满自己Spring Cloud的知识。
Spring Cloud的介绍
- Spring Cloud是一个微服务架构,他有多种组件来管理微服务的方方面面。Spring Cloud是用于构建微服务开发和治理的框架的集合。
- Spring Cloud是最热门的Java技术毋庸置疑。
- 官网
微服务的介绍
- 微服务是什么这里就不细化介绍了吧,应用服务化已经成为了趋势,简单的说就是把以前ALL-IN-ONE的一体应用的内部功能进行拆分,比如把短信功能单独出来作为一个可以提供给外部调用的服务,这样既提供了短信服务的复用性(其他的应用也能够复用这个功能),也使得对某个功能进行单独的负载能力提升称为可能(All In One 的如果想提升抢购功能的负载能力的话,采用部署多个服务端来提升抢购功能的负载能力的时候也会顺带提升了用户注册等的负载能力,这就额外浪费了资源)。
- 在微服务的理论中,为了解耦,每个微服务使用单独的数据库(当然了,可能有些人会觉得是同名服务使用同一个数据库,微服务这东西概念其实还挺多争论的。)。
- 马丁.福勒谈微服务
Spring Cloud出现的原因:
- 当你把原来的应用服务化了之后,那么就会遇到这些服务的管理问题了,比如说检测服务的可用性、查看现在有什么服务、多个同名(同功能)的服务怎么做到负载均衡之类的问题。
- Spring Cloud,基于Spring Boot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件。这些组件也不全是Spring 自己开发的,有一些是开源的组件,Spring进行了封装了而已(Spring Cloud Netflix主要来自Netflix OSS的开源组件,Spring Cloud Alibaba由阿里提供)。Spring Cloud像Spirng Boot 的starter一样屏蔽了复杂的配置,让我们能够通过简单的配置来进行微服务开发。
常见场景:
Spring Cloud可以解决以下的常见几个场景(暂时只列举几个常见场景,其实微服务的方方面面基本都有解决方案)
- 服务的开发:使用Spring Boot开发服务方便快速(Spring Boot其实不算Spring Cloud的内部组件,只能算一家人吧)
- 服务的注册与发现:主要是Eureka提供,用于把微服务注册到Eureka中和让服务消费者从Eureka中获取可用微服务列表。(当然现在也有很多采用别的组件来做服务的注册与发现)
- 负载均衡:主要由Ribbon提供,用于在服务消费者端进行负载均衡,从而把请求均衡到各个同名服务上。
- API网关:主要由Zuul提供,提供统一的服务调用入口,所有的服务调用都通过Zuul来调用,提供请求转发、请求过滤等功能。
- 服务的容错的处理--断路器:主要有Hystrix提供,用于解决微服务调用时发生服务熔断的问题。
- 分布式服务配置:主要由Spring Cloud Config提供,用于解决多个微服务的统一配置和分发配置问题。(一个服务的配置可以从Config配置中心中拉取)
- 数据监控、消息总线。。。。。。。
微服务的优劣势:
优势:
- 微服务化之后,代码也偏向简单模块化,会比较容易理解,就好比你搞一个正经的商城难,你搞一个注册功能还不轻松吗?
Spring Cloud认知学习(一):Spring Cloud介绍与Eureka使用的更多相关文章
- Spring Cloud系列(二) 介绍
Spring Cloud系列(一) 介绍 Spring Cloud是基于Spring Boot实现的微服务架构开发工具.它为微服务架构中涉及的配置管理.服务治理.断路器.智能路由.微代理.控制总线.全 ...
- spring cloud系列教程第一篇-介绍
spring cloud系列教程第一篇-介绍 前言: 现在Java招聘中最常见的是会微服务开发,微服务已经在国内火了几年了,而且也成了趋势了.那么,微服务只是指spring boot吗?当然不是了,微 ...
- spring cloud学习(六)Spring Cloud Config
Spring Cloud Config 参考个人项目 参考个人项目 : (希望大家能给个star~) https://github.com/FunriLy/springcloud-study/tree ...
- Spring Cloud(二):Spring Cloud Eureka Server高可用注册服务中心的配置
前言 Eureka 作为一个云端负载均衡,本身是一个基于REST的服务,在 Spring Cloud 中用于发现和注册服务. 那么当成千上万个微服务注册到Eureka Server中的时候,Eurek ...
- Spring Cloud第三篇 | 搭建高可用Eureka注册中心
本文是Spring Cloud专栏的第三篇文章,了解前两篇文章内容有助于更好的理解后面文章: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring ...
- Spring Boot版本,Spring Cloud版本与组件版本关系
我们在学习Spring Cloud时,可能总是碰到以下问题: 1.Spring Boot版本与Spring Cloud版本关系 2.启动时,报莫名其妙的错,稀里糊涂的换个版本就好了 3.这么多版本,用 ...
- Spring Cloud 学习 之 Spring Cloud Eureka(架构)
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 Eureka服务治理基础架构的三个核心要素: 服务治理机制: 服务提供者: ...
- Spring顶级项目以及Spring cloud组件
作为java的屌丝,基本上跟上spring屌丝的步伐,也就跟上了主流技术. spring 顶级项目: Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说 ...
- Spring Cloud Netflix vs Spring Cloud Alibaba
Spring Cloud Netflixhttps://spring.io/projects/spring-cloud-netflix spring-cloud-alibaba/README-zh.m ...
随机推荐
- mac上安装htop
对于经常在mac上使用top命令的童鞋来说,htop会是一个更加好看和更加好用的命令,下面就是在mac上安装htop的步骤 1.首先去htop官网去下载,我下的是最新的2.2.0版本,网址是https ...
- Linux命令与Shell
Linux 目录结构及解释 查看命令行执行完位置: echo $BASH 命令记录 mkdir mkdir命令 用来创建目录. 语法:mkdir (选项)(参数) 主要选项: -m<目标属性& ...
- PHP出现SSL certificate:unable to get local issuer certificate的解决办法
当本地curl需要访问https时,如果没有配置证书,会出现SSL certificate: unable to get local issuer certificate错误信息. 解决办法: 1.下 ...
- [linux][nginx] 通过nginx扩展nginx-rtmp-module简单做了一个流媒体直播
做的过程出现很多问题,环境其实就需要nginx就可以,然后就是在播放的问题,m3u8的格式,mac直接访问就支持,苹果系统原生H5支持m3u8,还有就是手机直接访问也支持!但是其他其他系统PC端不支持 ...
- 解决cvc-complex-type.2.4.a: Invalid content was found starting with element
今天用myeclipse导入 一个项目出现后出现cvc-complex-type.2.4.a: Invalid content was found starting with element 'inf ...
- Pycharm 操作数据库
view--->Tool Buttons,点击Pycharm右侧的Database 1.连接数据库 2.建立一个表,添加数据 通过以上操作把用户名和密码储存到了数据库中 3.连 ...
- 在项目中部署redis的读写分离架构(包含节点间认证口令)
#### 在项目中部署redis的读写分离架构(包含节点间认证口令) ##### 1.配置过程 --- 1.此前就是已经将redis在系统中已经安装好了,redis utils目录下,有个redis ...
- 1、flink介绍,反压原理
一.flink介绍 Apache Flink是一个分布式大数据处理引擎,可对有界数据流和无界数据流进行有状态计算. 可部署在各种集群环境,对各种大小的数据规模进行快速计算. 1.1.有界数据流和无界 ...
- Js实现将html页面或div生成图片
参考:https://blog.csdn.net/huwei2003/article/details/79761580 今天要分享的是用html2canvas根据自己的需求生成截图,并且修复html2 ...
- tp5--开发规范
在日常开发的过程中,写代码都要有一定的规范,不然可读取就太差了,所以为了以后的维护.对接,好的代码规定是必须的. 以下是我自己对自己提出的要求: 全部: 1) 每个方法都要写好备注(@retrun作 ...
- Spring Cloud系列(二) 介绍