目录
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
JAVA_HOME=/usr/local/software/jdk1.8.0_341
CLASSPATH=.:$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
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配置测试,不全。