🍅程序员小王的博客:程序员小王的博客
🍅 欢迎点赞 👍 收藏 ?留言 📝
🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
🍅java自学的学习路线:java自学的学习路线
一、Spring Cloud Alibaba环境搭建
1、创建全局父项目
-
维护SpringCloud依赖:Hoxton.SR6 -
维护Alibaba依赖:2.2.1.RELEASE -
继承SpringBoot项目:2.2.5.RELEASE
2、父项目依赖维护
<?xml?version="1.0"?encoding="UTF-8"?>
<project?xmlns="http://maven.apache.org/POM/4.0.0"
?????????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?????????xsi:schemaLocation="http://maven.apache.org/POM/4.0.0?http://maven.apache.org/xsd/maven-4.0.0.xsd">
????<modelVersion>4.0.0</modelVersion>
????<groupId>com.tjcu</groupId>
????<artifactId>SpringCloud_Alibaba</artifactId>
????<version>1.0-SNAPSHOT</version>
????<properties>
????????<maven.compiler.source>8</maven.compiler.source>
????????<maven.compiler.target>8</maven.compiler.target>
????????<spring.cloud.version>Hoxton.SR6</spring.cloud.version>
????????<spring.cloud.alibaba.version>2.2.1.RELEASE</spring.cloud.alibaba.version>
????</properties>
????<!--继承springboot父项目-->
????<parent>
????????<groupId>org.springframework.boot</groupId>
????????<artifactId>spring-boot-starter-parent</artifactId>
????????<version>2.2.5.RELEASE</version>
????</parent>
????<!--维护依赖-->
????<dependencyManagement>
????????<dependencies>
????????????<!--维护springcloud-->
????????????<dependency>
????????????????<groupId>org.springframework.cloud</groupId>
????????????????<artifactId>spring-cloud-dependencies</artifactId>
????????????????<version>${spring.cloud.version}</version>
????????????????<type>pom</type>
????????????????<scope>import</scope>
????????????</dependency>
????????????<!--维护springcloud?alibaba-->
????????????<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>
</project>
二、Nacos的简介和安装
1、什么是Nacos
-
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 -
总结:Nacos就是微服务架构中服务注册中心以及统一配置中心,用来替换原来的(eureka,consul)以及config组件
2、Nacos的安装
(1)下载地址及版本号
(2)环境准备
(3)解压缩安装包到指定位置
-?bin????????启动nacos服务的脚本目录
-?conf???????nacos的配置文件目录
-?target?????nacos的启动依赖存放目录
-?data???????nacos启动成功后保存数据的目录
(4)启动安装服务
[root@localhost bin]# systemctl stop firewalld 关闭防火墙 [root@localhost bin]# systemctl status firewalld 查看防火墙状态
tail -f logs/nacos.log
(5)访问nacos的web服务管理界面
三、开发服务注册到nacos(服务注册中心)
1、创建项目并引入依赖
???<dependencies>
????????<dependency>
????????????<groupId>org.springframework.boot</groupId>
????????????<artifactId>spring-boot-starter-web</artifactId>
????????</dependency>
????????<!--引入nacos?client的依赖-->
????????<dependency>
????????????<groupId>com.alibaba.cloud</groupId>
????????????<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
????????</dependency>
????</dependencies>
2、配置注册地址
#指定当前端口号
server.port=8989
#指定服务名称
spring.application.name=nacosClient
#指定nacos服务地址
spring.cloud.nacos.server-addr=192.168.5.128:8848
#指定注册中心地址
spring.cloud.nacos.discovery.server-addr=${spring.cloud.nacos.server-addr}
#暴露所有web端点
management.endpoints.web.exposure.include=*
3、加入启动服务注册注解
[注意:][新版本之后这步可以省略不写]
@EnableDiscoveryClient??//发现服务注册注解
@SpringBootApplication
public?class?NacosClientApplication?{
????public?static?void?main(String[]?args)?{
????????SpringApplication.run(NacosClientApplication.class,?args);
????}
}
4、查看nacox的服务列表
四、使用nacos作为配置中心
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.配置配置中心地址
#指定nacos配置中心地址
spring.cloud.nacos.server-addr=192.168.5.128:8848
#指定nacos地址读取配置
spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.server-addr}
#读取配置的分组,告诉从那个组进行配置获取
spring.cloud.nacos.config.group=DEFAULT_GROUP
#指定读取文件的后缀
spring.cloud.nacos.config.file-extension=properties
#从那个组拉取配置文件
spring.cloud.nacos.config.name=application-port
3.在nacos中创建配置
4.编写控制器测试配置读取情况
server.port=9999
spring.application.name=C
spring.cloud.nacos.discovery.server-addr=192.168.5.128:8848
customer.username=王恒杰
5.创建一个Controller层
@RestController
@RefreshScope??//允许远程配置修改自动刷新
public?class?CustomerAction?{
????@Value("${customer.username}")
????private?String?username;
????@GetMapping("/findName")
????public?String?findName()?{
????????System.out.println(username);
????????return?"返回姓名:"?+?username;
????}
}
6.启动项目方式测试配置读取
7、实现自动配置刷新
8、DataId 完整配置文件名称
#指定读取文件的后缀
spring.cloud.nacos.config.file-extension=properties
#从那个组拉取配置文件
spring.cloud.nacos.config.name=application-prod
#指定读取文件的后缀
spring.cloud.nacos.config.file-extension=properties
# 指定读取文件的前缀
spring.application.name=application
# 指定读取文件的具体环境
spring.profiles.active=prod
9、Nacos命名空间
(1)命名空间(namespace)
-
namespace命名空间是nacos针对于企业级开发设计用来针对于不同环境的区分,比如正在企业开发时有测试环境,生产环境,等其他环境,因此为了保证不同环境配置实现隔离,提出了namespace的概念,默认在nacos中存在一个public命名空间所有配置在没有指定命名空间时都在这个命名空间中获取配置,在实际开发时可以针对于不能环境创建不同的namespace空间。默认空间不能删除! -
站在项目的角度隔离每个项目配置文件
(2)创建命名空间
(3)在配置列表查看空间
(4)项目中使用命名空间指定配置
#项目中使用命名空间指定配置
spring.cloud.nacos.config.namespace=5eb1a4fe-0a20-4ce4-bba6-30ac165c4c42
(5)测试配置
10、配置分组(group)
DEFAULT_GROUP
(1)创建学生管理系统分组
(2)读取不同分组的配置
#读取不同分组的配置
Spring.cloud.nacos.config.group=student_group
11、配置文件的导入导出配置迁移
五、nacos持久化
1、说明
2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
2、安装mysql数据库5.6.5+以上版本(略)
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
systemctl status mysql
-
启动mysql数据库 systemctl start mysqld -
修改mysql数据库密码 grep 'temporary password' /var/log/mysqld.log mysqladmin -u root -p password 回车 输入原始密码 在输入新的密码 -
登录mysql mysql -uroot -proot
3、修改配置文件
vim application.properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?
characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=Root!Q2w
4、创建数据库 nacos
(1)创建数据库 nacos
(2)初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
(3)执行成功
5、测试
(1)启动项目
(2)开启日志
(3)项目持久化数据库了
六、nacos高可用
1、什么是集群
2、nacos集群架构图
正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消
3、集群搭建注意事项
4、集群规划
node cluster:
192.168.5.128 8845 nacos01
192.168.5.128 8846 nacos02
192.168.5.128 8847 nacos03
192.168.5.128 9090 nginx
192.168.5.128 3306 mysql
5、搭建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
6、安装Nginx
-
0.安装必要依赖 yum install -y gcc pcre-devel zlib-devel -
1.下载Nginx nginx: download -
2.将Nginx上传到linux中,并解压缩 tar -zxvf nginx-1.11.1.tar.gz -
3.查看Nginx安装目录 ls auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src -
4.在Nginx安装目录中执行如下命令:(指定安装位置) ./configure --prefix=/usr/nginx -
5.执行上述命令后,执行如下命令: make && make install
7、配置nginx conf配置文件
a.加入如下配置:
upstream??nacos-servers?{
??server?192.168.5.128:8845;
??server?192.168.5.128:8846;
??server?192.168.5.128:8847;
}
b.修改
location?/?{
??proxy_pass?http://nacos-servers/;
??}
8、启动nginx进行测试即可
|