一、nacos的下载
1.1 下载
地址: github.com/alibaba/nac… , 这是各种版本的nacos下载链接,本次我用的是1.4.0作为演示版本,建议使用稳定版。
1.2 解压
cd /usr/local
wget https://github.com/alibaba/nacos/releases/download/1.4.0/nacos-server-1.4.0.tar.gz
tar -xzvf nacos-server-1.4.0.tar.gz
之后就能在/usr/local/nacos/文件夹中看到nacos的目录结构
二、nacos的配置与启动
2.1 创建配置中心的持久化数据库
新建数据库
sql建表语句: github.com/alibaba/nac…
2.2 修改配置文件
修改配置文件 conf/application.properties
修改contextPath可以自定义nacos管理平台的路径
修改port可以自定义nacos的启动端口
行尾新增
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://ip:port/库名?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=用户名
db.password=密码
这样就完成了nacos的基本配置
2.3 nacos单机模式启动
在bin目录下通过start_up.sh脚本启动
sh startup.sh -m standalone
启动成功后, 执行
ps -ef | grep nacos
grep到nacos的进程
访问ip:port/contextPath看到登录页面,则启动成功。默认的账号和密码都是nacos
2.4 nacos集群模式启动
2.4.1 修改配置文件
- 配置conf/cluster.conf,将集群的所有节点都写入该文件
# 如果是单主机部署集群,ip要写能联网的网卡的IP地址
# 如果是不同的主机部署,要填写公网ip
192.168.43.123:8847
192.168.43.123:8848
192.168.43.123:8849
- 将nacos复制三份
- 分别修改application.properties端口为集群cluster.conf的端口
vim nacos-8847/conf/application.properties
# 修改端口为8847
vim nacos-8849/conf/application.properties
# 修改端口为8849
2.4.2 启动nacos集群
分别启动各节点下的bin/start_up.sh
启动成功后,三个节点的nacos都能访问成功
进入nacos,打开节点列表,可以看到有三个节点
2.4.3 配置nginx代理
为了能让注册中心和配置中心的访问压力都平分到三个节点,我们配置一个nginx做请求转发
下载并启动nginx, 参考: www.cnblogs.com/zhangliuher…
修改配置文件conf/nginx.conf
# 新增
upstream serverList {
server 127.0.0.1:8847;
server 127.0.0.1:8848;
server 127.0.0.1:8849;
}
server {
listen 4399;
server_name localhost;
location / {
proxy_pass http://serverList/;
}
}
启动/重载nginx,访问4399端口/nacos,如果能看到管理平台则nginx配置成功
三、spring集成nacos
3.1 引入依赖(依赖版本参考: github.com/alibaba/spr…)
<!-- nacos config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud alibaba nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</dependency>
<!-- spring boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.2 新建配置文件bootstrap.yml
spring:
application:
name: order-service # 服务名(对应注册中心的服务名称)
cloud:
nacos:
config: # 配置中心
file-extension: yaml # 配置中心的配置文件对应的解析格式
server-addr: 172.16.0.210:4399 # nacos配置中心对应地址(nginx)
namespace: # 命名空间(不填则默认default)
group: ORDER-SERVICE-GROUP # 分组名
discovery: # 服务注册中心
namespace: # 命名空间(不填则默认default)
server-addr: 172.16.0.210:4399 # nacos服务注册中心对应地址(nginx)
server:
port: 10003 # 服务启动端口
3.3 启动注解
// 在spring启动类增加
@SpringBootApplication
@EnableDiscoveryClient
注意,这里加了@SpringBootApplication和@EnableDiscoveryClient,不要偷懒换成@SpringCloudApplication!!!虽然@SpringCloudApplication注解里包含@SpringBootApplication和@EnableDiscoveryClient,不过它也包含@EnableCircuitBreaker注解。@EnableCircuitBreaker是断路器的,如果你引用@SpringCloudApplication注解,那么maven需要引入hystrix的JAR包和配置包,很麻烦!!!
3.4 启动spring
3.4.1 在nacos中定义配置文件
可以把所有的配置信息——数据库、消息队列等配置信息定义到nacos配置中心。
-
- 点击新增按钮
-
- data-id: #{spring.application.name}-#{spring.profiles.active}.yaml
-
- group: 分组名(默认DEFAULT_GROUP)
-
- 将配置信息写入配置内容输入框中,配置格式记得选择YAML
3.4.2 启动
spring能正常启动,在注册中心中能看到服务实例,则启动成功
参考: nacos.io/zh-cn/docs/…