Spring Cloud Alibaba及其Nacos初学习

目录

1、Spring Cloud Alibaba是什么

2、Spring Cloud 微服务体系​

3、Nacos

3.1 Nacos概述

3.2 下载nacos

3.3 解压nacos

3.4 配置文件properties和sql

3.5 访问web管理页面

4、Spring Cloud整合Nacos

4.1 nacos创建命名空间namespace

4.2 配置管理

4.3 Spring Cloud


1、Spring Cloud Alibaba是什么

官网介绍:Spring Cloud Alibaba 是什么 | Spring Cloud Alibaba

Spring Cloud Alibaba 是提供微服务开发的一站式解决方案组件。此项目包含开发分布式应用服务必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。

此外,Spring Cloud Alibaba 企业版,包括无侵入服务治理(全链路灰度,无损上下线,离群实例摘除等),企业级 Nacos 注册配置中心和企业级云原生网关等众多产品。

Spring Cloud Alibaba是:1. 对Spring Cloud的标准实现;2. 以微服务为核心的整体解决方案;3. 开源与平台服务分开维护。

图片来源:Spring Cloud Alibaba 是什么 | Spring Cloud Alibaba

SCA主要包含以下组件:

1. Spring Cloud Gateway:网关

Spring Cloud GateWay 是微服务模块的网关,整合 Nacos,实现动态路由的配置。通过监听 Nacos 配置的改变,实现服务网关路由配置动态刷新,每次路由信息变更,无需修改配置文件而后重启服务。

2. Nacos:服务注册和配置中心

Nacos 是 SCA 微服务模块的服务注册中心和配置中心。整合 Spring Cloud Gateway,所有的微服务模块都注册到 Nacos 中进行服务注册与发现。

3. Sentinel:熔断限流


4. Seata:分布式事务

基于 Seata 的 AT 模式,用于库存模块,账户模块,订单模块的分布式事务处理。当库存不足/账户余额不足时,进行事务回滚。


5. RocketMQ:消息队列,削峰填谷

用于进行点赞服务流量的削峰填谷。通过将大流量的点赞请求从生产者发送到 mq,消费者模块从 mq 中拉取进行一定频率的消费,不是简单的直接服务熔断限流降级,实现 RocketMQ 针对大流量的削峰填谷能力。


6. Docker:使用Docker进行容器化部署
7. Kubernetes:使用k8s进行容器化部署

2、Spring Cloud 微服务体系

Spring Cloud 是分布式微服务架构的一站式解决方案,它提供了一套简单易用的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务系统的构建。 Spring Cloud 提供以微服务为核心的分布式系统构建标准。它本身并不是一个使用的框架,而是一套微服务的应用规范。

3、Nacos

3.1 Nacos概述

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 提供了一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。以及更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

3.2 下载nacos

下载版本地址:Releases · alibaba/nacos · GitHub

选择Linux环境的 nacos-server-2.0.4.tar.gz 

注意:安装之前检查:需要安装jdk,MySQL就绪

vim /etc/profile

  1. JAVA_HOME=/usr/local/software/jdk1.8.0_341
  2. CLASSPATH=.:$JAVA_HOME/lib
  3. PATH=$JAVA_HOME/bin:$PATH
  4. export JAVA_HOME CLASSPATH PATH

source /etc/profile

3.3 解压nacos

3.4 配置文件properties和sql

新建数据库,导入该表

配置properties

31 #*************** Config Module Related Configurations ***************#

32 ### If use MySQL as datasource:

33 spring.datasource.platform=mysql

34

35 ### Count of DB:

36 db.num=1

37

38 ### Connect URL of DB:

39 db.url.0=jdbc:mysql://虚拟机IP:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000& autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai

40 db.user.0=root

41 db.password.0=123

42

43 ### Connection pool configuration: hikariCP

运行nacos

开放防火墙端口

需要Linux打开8848和9848两个端口(当前端口+1000)

sh startup.sh -m standalone

查看日志

cat /usr/local/software/nacos/logs/start.out

3.5 访问web管理页面

LinuxIP:8848/nacos/index.html

初始用户名和密码为nacos

新版本默认无需用户名密码登录,可自行设置

4、Spring Cloud整合Nacos

nacos可作为项目的配置中心,替换之前使用的config模块配置等

4.1 nacos创建命名空间namespace

4.2 配置管理

新建配置并发布

4.3 Spring Cloud

配置文件

引入依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
    </dependencies>

bootstrap.yml

参照nacos配置管理

spring:
  cloud:
    nacos:
      config:
        server-addr: 192.168.***.***:8848
        namespace: a3f1db25-a200-47bc-b6f7-********ba8
        name: ***-config
        group: DEV
        file-extension: yaml
  application:
    name: ssc-alibaba-nacos

application.yml

运行程序

只是简单启动读取nacos配置测试,不全。


相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-10 14:20:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-10 14:20:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-10 14:20:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-10 14:20:02       18 阅读

热门阅读

  1. tomcat安全基线检查

    2023-12-10 14:20:02       36 阅读
  2. 单例模式【C#】

    2023-12-10 14:20:02       36 阅读
  3. LINQ【C#】

    2023-12-10 14:20:02       32 阅读
  4. C#.net使用npgsql批量写入数据入库到postgresql数据库

    2023-12-10 14:20:02       34 阅读
  5. pytorch 笔记:dist 和 cdist

    2023-12-10 14:20:02       36 阅读
  6. C语言中getchar函数

    2023-12-10 14:20:02       37 阅读
  7. Codeforces Round 912 (Div. 2)补题

    2023-12-10 14:20:02       36 阅读
  8. paddle detection 怎么解析配置文件

    2023-12-10 14:20:02       29 阅读
  9. postgresql设置免密登录

    2023-12-10 14:20:02       33 阅读
  10. nodejs流

    nodejs流

    2023-12-10 14:20:02      30 阅读
  11. Linux环境FFTW源码编译 | WSL编译报错解决

    2023-12-10 14:20:02       32 阅读