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 ...
随机推荐
- JMeter分布式压测-常见问题之(Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception )
问题描述: 在Linux环境启动jmeter-server时抛出了如下异常: 问题描述: 1.可能监听的端口被占用,修改端口号2.Server相关的rmi配置需要调整 解决方案: 在目录/apache ...
- Python父类和子类关系/继承
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @File:继承_子类和父类的关系.py @E-mail:364942 ...
- PHP函数:memory_get_usage
memory_get_usage() -返回分配给 PHP 的内存量 说明: memory_get_usage ([ bool $real_usage = false ] ) : int 参数: r ...
- jmeter 聚合报告参数解释
label:每个请求的名称 样本:发送给服务器的请求数量 平均值:平均响应时间,默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以T ...
- Python 七步捉虫法
了解一些技巧助你减少代码查错时间. -- Maria Mckinley 在周五的下午三点钟(为什么是这个时间?因为事情总会在周五下午三点钟发生),你收到一条通知,客户发现你的软件出现一个错误.在有了初 ...
- 百度云BCH配置说明
百度云虚拟空间(BCH) 来源:https://www.cnblogs.com/llll/p/7930029.html 参考资料:https://cloud.baidu.com/doc/BCH/Ge ...
- redis的5种数据类型
卸载服务:redis-server --service-uninstall 开启服务:redis-server --service-start 停止服务:redis-server --service- ...
- 斐波那契数列计算html代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python封装应用程序的最佳项目结构是什么?
Python封装应用程序的最佳项目结构是什么? 转载来源于stackoverflow:https://stackoverflow.com/questions/193161/what-is-the-be ...
- mac OS 查看开机/关机/重启记录
last 查看最近的开关机.登录用户等记录 以及操作时间节点. last | grep reboot 查看重启记录 last | grep shutdown 查看关机记录
- Spring Cloud系列(二) 介绍