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 ...
随机推荐
- Spark SQL源码解析(二)Antlr4解析Sql并生成树
Spark SQL原理解析前言: Spark SQL源码剖析(一)SQL解析框架Catalyst流程概述 这一次要开始真正介绍Spark解析SQL的流程,首先是从Sql Parse阶段开始,简单点说, ...
- [javascript] jquery的父子兄弟节点查找
jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(&q ...
- git基本设置——git工具篇
1.设置邮箱和用户名 /*解释: --global 选项代表对 Git 进行全局设置.*/ $ git config --global user.name "Your Name" ...
- kubernetes的Service是什么?
service到底是什么? k8s的service定义了一个服务的访问入口地址,前端的应用通过这个入口地址访问其背后的一组由pod副本组成的集群实例.来自外部的访问请求被负载均衡到后端的各个容器应用上 ...
- 来自BAT大厂前端工程师的自白-怎么才能学好前端
如果说理解学好web前端是先能找到一份工作,那么你应该这样做: 1.制定好一下系统的web前端学习规划,每天定量,学完什么知识点就掌握,能自己应用,而不是能看懂,写不出来东西. 2.不要自己一个人闷头 ...
- Async,Await 深入源码解析
1.同步与异步 假设存在 IO事件A:请求网络资源 (完成耗时5s) IO事件B:查询数据库 (完成耗时5s) 情况一:线程1工人在发起A请求后,一直阻塞等待,在A响应返回结果后再接着处理事件B,那总 ...
- 获取 保存 系统信息 [Windows]
出处:https://www.technig.com/find-windows-10-system-information/ 在“运行”里,运行 msinfo32. System Informatio ...
- 模糊c-means算法的c++实现
首先输入点的个数,维度,分类数目 我的代码FCM中主要过程如下: 1:(init_c函数)随机初始化聚类中心 2:(comp_dis函数)计算每个点到每个聚类距离 dis[i][j] 表示i点到j聚类 ...
- 记一次Pinpoint监控工具部署过程
环境:Centos 7.4 X64IP:192.168.1.11 1.配置环境,先安装jdk 到Oracle官网下载安装JDK https://www.oracle.com/technetwork/j ...
- C语言基础知识总结
知识点的回忆与巩固 一. 条件分支结构 1.if分支语句 2.switch语句 二.循环体部分知识点整理 1.for循环 2.while循环-适合不确定循环次数时使用 三.字符串与数组 数组的操作 1 ...
- Spring Cloud系列(二) 介绍