SpringCloud

本文最后更新于:2025年4月29日 下午

SpringCloud

目前微服务的开发框架,最常用的有以下四个:

Spring Cloud:http://projects.spring.io/spring-cloud(现在非常流行的微服务架构)

Dubbo:http://dubbo.io

Dropwizard:http://www.dropwizard.io (关注单个微服务的开发)

Consul、etcd&etc.(微服务的模块)

基本概念

什么是 SpringCloud

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

SpringCloud 与 SpringBoot 的关系

  1. Spring Boot 是 Spring 的一套快速配置脚手架,可以基于 Spring Boot 快速开发单个微服务,Spring Cloud 是一个基于 Spring Boot 实现的开发工具;
  2. Spring Boot 专注于快速、方便集成的单个微服务个体,Spring Cloud 关注全局的服务治理框架;
  3. Spring Boot 使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud 很大的一部分是基于 Spring Boot 来实现,必须基于 Spring Boot 开发。
  4. 可以单独使用 Spring Boot 开发项目,但是 Spring Cloud 离不开 Spring Boot。

Spring Cloud 主要基础服务组件

服务发现——Netflix Eureka (Nacos)

服务调用——Netflix Feign

熔断器——Netflix Hystrix (Sentinel)

服务网关——Spring Cloud GateWay

分布式配置——Spring Cloud Config (Nacos)

Nacos 下载与安装

SpringCloud-Nacos

(1)Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

(2)常见的注册中心:

  1. Eureka(原生,2.0 遇到性能瓶颈,停止维护)

  2. Zookeeper(支持,专业的独立产品。例如:dubbo)

  3. Consul(原生,GO 语言开发)

  4. Nacos

相对于 Spring Cloud Eureka 来说,Nacos 更强大。Nacos = Spring Cloud Eureka + Spring Cloud Config

Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config

- 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。

(3)Nacos 是以服务为主要服务对象的中间件,Nacos 支持所有主流的服务发现、配置和管理。

Nacos 主要提供以下四大功能:

  1. 服务发现和服务健康监测

  2. 动态配置服务

  3. 动态 DNS 服务

  4. 服务及其元数据管理

(4)Nacos 结构图

image-20230919170752976

Nacos 下载和安装

(1)下载地址和版本

下载地址:https://github.com/alibaba/nacos/releases

下载版本:nacos-server-2.2.1.tar.gz 或 nacos-server-2.2.1.zip,解压没有中文没有空格目录即可

(2)修改配置文件

参考官方文档:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html

/nacos/conf/application.properties中,修改nacos.core.auth.plugin.nacos.token.secret.key的,因为 2.2.0.1 以后无默认值

nacos.core.auth.plugin.nacos.token.secret.key SecretKey012345678901234567890123456789012345678901234567890123456789(2.2.0.1 后无默认值) 2.1.0 ~ latest 默认鉴权插件用于生成用户登陆临时 accessToken 所使用的密钥,使用默认值有安全风险

(3)启动 nacos 服务

- Linux/Unix/Mac

启动命令(standalone 代表着单机模式运行,非集群模式)

启动命令:sh startup.sh -m standalone

- Windows

启动方式,cmd 打开,执行命令:

startup.cmd -m standalone

访问:http://localhost:8848/nacos

用户名密码:nacos/nacos

image-20230920100537437

服务注册

把各个微服务注册到注册中心,其他模块步骤相同

在 service 模块配置 pom

配置 Nacos 客户端的 pom 依赖

<!--服务注册-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

添加服务配置信息

配置 application.yml,在客户端微服务中添加注册 Nacos 服务的配置信息

spring:
  cloud:
    nacos:
      server-addr: localhost:8848

添加 Nacos 客户端注解

在客户端微服务启动类中添加注解

@EnableDiscoveryClient

启动客户端微服务

启动注册中心

启动已注册的微服务,可以在 Nacos 服务列表中看到被注册的微服务

image-20230920104317108


SpringCloud
https://junyyds.top/2023/09/19/SpringCloud/
作者
Phils
发布于
2023年9月19日
更新于
2025年4月29日
许可协议