SpringCloud入门学习(开篇)

SpringCloud入门学习(开篇)

前言:近日,又重新学习了一下SpringCloud,感觉很强大很方便,故将自己的学习过程记录一下。本文很适合初学者,手把手带你从零搭建一个SpringCloud微服务。主要涉及到以下组件:EurekaFeignGatewayZipkin,不了解它们是什么的朋友别着急,后面会一一阐述。好啦,让我们开始搭建微服务吧~

在学习一项新技能之前,首先我们得了解它是什么,它能干什么,以及它有什么优势…

一、什么是SpringCloud

  • SpringCloud是基于SpringBoot的一种微服务架构,是一系列框架的有序集合;
  • Spring Cloud是快速构建分布式系统的工具集,可以实现微服务;
  • 微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。 这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。 这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。(该条来自谷歌)
  • SpringCloud是大势所趋,很多公司都在使用,再不了解,我都不好意思说我是做Java开发的了…

二、Springcloud相关组件简介

1. Eureka服务注册中心

  • 服务注册中心又叫服务发现,在微服务架构中,每个功能都可以是一个服务,都可以独立部署运行,称之为微服务。当A服务需要调用B服务的时候,传统的做法是直接调用;但是一旦服务多了起来,想要找到另一个服务就显得很麻烦,什么域名啊,请求路径啊会显得尤为繁重。假如服务ip有变,修改起来也很麻烦。
  • 于是服务注册中心应运而生,所有的服务都去服务注册中心进行注册,任何服务想要调用其他服务的时候,直接去服务注册中心找就行。服务注册中心把每个微服务都进行了统一管理。
  • 服务注册中心就好比菜单,每个微服务就是菜名。我要吃什么菜,不需要去厨房找,直接看菜单点菜就行,这就是服务调用。一旦有新的菜式,就马上将其写到菜单上,这就是服务注册。
  • 常见的服务注册中心有EurekaZookeeperConsul以及为阿里为Dubbo定制的Nacos,这里主要介绍Eureka的使用。

2. Feign

  • 微服务之间相互调用的时候,常规的做法是使用SpringBoot自带的RestTemplate或者HttpClient实现,也就是常规的API调用,但是都过于麻烦。于是Feign应运而生了~
  • Feign是一个声明式的 Web 服务客户端,使得服务之间的调用相当简单,通过注解以及接口声明即可实现。并且整合了Ribbon,具有负载均衡功能。

3. Gateway

  • Gateway处于客户端和各个微服务之间,充当着反向代理的角色,通过gateway统一进行服务调用。此外它还具有安全,限流,缓存,熔断,监控,重试等功能。
  • 最开始SpringCloud整合的并不是Gateway,而是Zuul,但是Zuul开发进度过于缓慢,于是Spring放弃了Zuul,改而自己开发了Gateway,Gateway具有Zuul的全部功能,并且更加强大。

4. Zipkin

  • Zipkin是一个分布式的链路追踪系统,可以清晰的看到各个微服务之间的调用情况。
  • 为什么需要这个功能呢?可以想象,假如每个微服务都部署在不同的服务器上,且纷繁众多,一旦系统出了bug,查找起来就会比较费事。通过Zipkin链路追踪管理界面,可以清楚的看到什么时候哪个服务调用了哪个服务,耗时多少以及在哪里出了什么问题,简直就是个神器!

Config、bus之类的由于我暂时还没有整合到,就不妄加以介绍了,避免误导查看此文的各位朋友…

好吧,balabala说了这么多,接下来正式进入代码时间 !!!

下一篇 -> 服务注册中心和服务注册

你可能感兴趣的:(随笔,学习篇,SpringCloud系列)