官网:https://spring.io/projects/spring-cloud-alibaba
Spring Cloud Alibaba provides a one-stop solution for distributed application development. It contains all the components required to develop distributed applications, making it easy for you to develop your applications using Spring Cloud.
With Spring Cloud Alibaba, you only need to add some annotations and a small amount of configurations to connect Spring Cloud applications to the distributed solutions of Alibaba, and build a distributed application system with Alibaba middleware.
Spring Cloud Alibaba 提供分布式应用开发的一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松使用 Spring Cloud 开发应用程序。
使用 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,即可将 Spring Cloud 应用连接到 Alibaba 的分布式解决方案,并通过 Alibaba 中间件构建分布式应用系统。
微服务实战项目开发
构建项目并引入依赖
<properties>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
<spring.cloud.alibaba.version>2.1.2.RELEASE</spring.cloud.alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
官网:https://nacos.io/zh-cn/index.html
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Name Service(服务注册与发现) & Configurations Services(统一配置中心)
总结:Nacos就是微服务架构中服务注册中心以及统一配置中心,用来替换原来的(eureka,consul)以及config组件
这里选用linux环境,注意安装nacos前,要保证 jdk1.8+、maven3.2.x+ 环境
1.下载nacos
https://github.com/alibaba/nacos/releases
2.解压缩安装包到指定位置
- [root@localhost ~]# tar -zxvf nacos-server-1.3.1.tar.gz
- bin 启动nacos服务的脚本目录
- conf nacos的配置文件目录
- target nacos的启动依赖存放目录
- data nacos启动成功后保存数据的目录
3.启动安装服务
- linux/unix/mac启动
打开终端进入nacos的bin目录执行如下命令
./startup.sh -m standalone
4.访问nacos的web服务管理界面 http://localhost:8848/nacos/
- 用户名 和 密码都是 nacos
1、创建项目并引入依赖
<!--引入nacos client的依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2、配置注册地址
server.port=8789
spring.application.name=NACOSCLIENT
spring.cloud.nacos.server-addr=ip:8848 #指定nacos服务总地址
spring.cloud.nacos.discovery.server-addr=${spring.cloud.nacos.server-addr} #指定注册中心地址
3、加入启动服务注册注解
注意:新版本springcloud只要引入依赖后,默认开启服务注册与发现,可以不写 @EnableDiscoveryClient
4、查看nacos的服务列表
由于springcloud alibaba中没有提供服务间通信的组件,所以还采用 openFeign,方式与之前springcloud中一致,这里不再写
1、创建项目并引入nacons配置中心依赖
<!--引入nacos client 依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--引入配置中心依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2、添加配置文件 bootstrap.properties
spring.cloud.nacos.server-addr=localhost:8848 # 远程配置中心的地址
spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.server-addr} # 去指定nacos地址读取配置
spring.cloud.nacos.config.group=DEFAULT_GROUP # 读取配置的分组
spring.cloud.nacos.config.file-extension=properties # 指定读取文件后缀
spring.cloud.nacos.config.name=configclient-dev # 指定文件名
配置文件名称必须是bootstrap.properties|yml,否则会启动报错,让项目在启动时先预拉取远程配置
3、在nacos中创建配置
4、编写控制器测试配置读取情况
@RestController
public class ConfigClientController {
private static final Logger log = LoggerFactory.getLogger(ConfigClientController.class);
@Value("${user.name}")
private String name;
@GetMapping("/demo")
public String demo() {
log.info("username:{}", name);
return name;
}
}
默认情况下nacos已经实现了自动配置刷新功能,如果需要刷新配置直接在控制器中加入 @RefreshScope
注解即可
dateId = ${prefix}-${spring.profile.active}.${file-extension}
dateId = spring.cloud.nacos.config.name + spring.cloud.nacos.config.file-extension
读取远程配置中心的配置文件有两种方式:
${prefix}-${spring.profile.active}.${file-extension}
- a. prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
- b. spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
- c. file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
${name}.${file-extension}
- name 指的就是文件名,比如configclient-dev,可以通过配置项spring.cloud.nacos.config.name来设置
- file-exetension 文件后缀,即文件的数据格式
https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
在没有明确指定 ${spring.cloud.nacos.config.namespace}
配置的情况下, 默认使用的是 Nacos 上 Public 这个namespae。如果需要使用自定义的命名空间,可以通过以下配置来实现:
每个命名空间都有一个唯一id,这个id是读取配置时指定空间的唯一标识
spring.cloud.nacos.config.namespace=b3404bc0-d7dc-4855-b519-570ed34b62d7
注意:该配置必须放在 bootstrap.properties 文件中。
Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。
在没有明确指定 ${spring.cloud.nacos.config.group}
配置的情况下, 默认使用的是 DEFAULT_GROUP 。如果需要自定义自己的 Group,可以通过以下配置来实现:
spring.cloud.nacos.config.group=YinXue
注意:该配置必须放在 bootstrap.properties 文件中。并且在添加配置时 Group 的值一定要和 spring.cloud.nacos.config.group
的配置值一致。
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
1.安装数据库,版本要求:5.6.5+
2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sq
3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow
再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql
官网:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
nacos集群架构图
# 1.集群搭建注意事项
- 注意:
a.3个或3个以上Nacos节点才能构成集群。
b.要求虚拟机内存分配必须大于2G以上
# 2.集群规划
- node cluster:
10.15.0.3 8845 nacos01
10.15.0.3 8846 nacos02
10.15.0.3 8847 nacos03
10.15.0.3 9090 nginx
10.15.0.3 3306 mysql
# 3.搭建nacos集群
1).将nacos安装包从新解压缩
2).开启nacos mysql持久化
注意:数据库中不能存在原始数据
3).修改nacos conf目录中cluster.conf文件添加所有集群节点
10.15.0.3:8845
10.15.0.3:8846
10.15.0.3:8847
4).将修改后nacos复制三份
注意:修改为不同端口信息
5).分别启动三台机器
./startup.sh
# 4.安装Nginx
- 0.安装必要依赖
yum install -y gcc pcre-devel zlib-devel
- 1.下载Nginx
http://nginx.org/en/download.html
- 2.将Nginx上传到linux中,并解压缩
tar -zxvf nginx-1.11.1.tar.gz
- 3.查看Nginx安装目录
[root@localhost nginx-1.11.1]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
- 4.在Nginx安装目录中执行如下命令:(指定安装位置)
./configure --prefix=/usr/nginx
- 5.执行上述命令后,执行如下命令:
make && make install
# 5.配置nginx conf配置文件
a.加入如下配置:
upstream nacos-servers {
server 10.15.0.3:8845;
server 10.15.0.3:8846;
server 10.15.0.3:8847;
}
b.修改
location / {
proxy_pass http://nacos-servers/;
}
# 6.启动nginx进行测试即可
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/su2231595742/article/details/122629912
内容来源于网络,如有侵权,请联系作者删除!