听句劝! Nacos集群搭建可以看看这篇教程

2025-05-27 0 79

听句劝! Nacos集群搭建可以看看这篇教程

一、Nacos 简介

Nacos(Naming and Configuration Service)致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

详情查看Nacos 官方文档[1]

二、Nacos 安装

1、Nacos 依赖

Nacos 基于 java 开发的,运行依赖于 java 环境。

依赖 64 bit JDK 1.8+,前往官网下载 JDK[2]

2、Nacos 安装

下载编译后压缩包,最新稳定版本[3]

  1. unzipnacos-server-$version.zip或者tar-xvfnacos-server-$version.tar.gzcdnacos/bin

三、Nacos 部署

1、单实例部署

单实例部署不适合生产环境,单点故障是致命的。

Linux 单实例非集群模式启动命令

  1. startup.sh-mstandalone

Linux 单实例非集群模式关闭命令

  1. shutdown.sh

访问 nacos 管理页面,初始化用户名密码均为 nacos

听句劝! Nacos集群搭建可以看看这篇教程

2、集群部署

1、集群架构

听句劝! Nacos集群搭建可以看看这篇教程

2、本地虚拟机模拟集群部署

本地环境准备

听句劝! Nacos集群搭建可以看看这篇教程

在本地 PC 机上利用 VMware workstation 虚拟出如上表所示的几台机器,其中 Nginx 和 MySQL 都是采用的单实例,仅做练习使用。

搭建步骤

初始化 nacos 必须的数据库表并配置

找到 Nacos 安装目录下提供的数据库脚本文件

听句劝! Nacos集群搭建可以看看这篇教程

在 MySQL 实例创建 nacos_config 库并导入脚本

听句劝! Nacos集群搭建可以看看这篇教程

修改修改 Nacos 配置文件,指向 MySQL 实例,替换其内嵌数据库

听句劝! Nacos集群搭建可以看看这篇教程

  1. #***************切换Nacos内嵌数据库平台为MySQL***************#
  2. spring.datasource.platform=mysql
  3. db.num=1
  4. db.url.0=jdbc:mysql://192.168.15.141:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
  5. db.user=root
  6. db.password=123456

说明:三台 nacos 实例都需要切换 MySQL 平台,均需执行以上操作

nacos 集群配置

复制 cluster.conf 文件

听句劝! Nacos集群搭建可以看看这篇教程

Nacos 集群配置,修改 cluster.conf 文件

  1. [root@localhostconf]#vim./cluster.conf
  2. #itisip
  3. #example
  4. 192.168.15.145
  5. 192.168.15.147
  6. 192.168.15.148

说明:三台 nacos 实例都需要做以上集群配置,至此关于 nacos 的配置结束了,可以尝试以集群模式启动三个 nacos 实例了

集群模式分别启动三个 nacos 实例

听句劝! Nacos集群搭建可以看看这篇教程

听句劝! Nacos集群搭建可以看看这篇教程

尝试访问 nacos 管理页,测试三个实例是否正常

听句劝! Nacos集群搭建可以看看这篇教程

说明:如果三个实例以集群模式正常启动,那么分别访问三个实例的管理页就是展示以上登录页了。如果不能访问,则可能防火墙未开放 nacos 服务的端口,可执行如下命令。

  1. [root@localhostbin]#firewall-cmd–add-port=8848/tcp–permanent
  2. success
  3. [root@localhostbin]#firewall-cmd–reload
  4. success
  5. [root@localhostbin]#firewall-cmd–list-all
  6. public(active)
  7. target:default
  8. icmp-block-inversion:no
  9. interfaces:ens33
  10. sources:
  11. services:sshdhcpv6-client
  12. ports:27017/tcp8848/tcp
  13. protocols:
  14. masquerade:no
  15. forward-ports:
  16. source-ports:
  17. icmp-blocks:
  18. richrules:
  19. [root@localhostbin]#

Nginx 配置

  • Nginx 安装参考,Nginx 源码安装[4]
  • 修改 Nginx 配置文件 nginx.conf
  1. worker_processes1;
  2. events{
  3. worker_connections1024;
  4. }
  5. http{
  6. includemime.types;
  7. default_typeapplication/octet-stream;
  8. sendfileon;
  9. keepalive_timeout65;
  10. #nacos集群负载均衡
  11. upstreamnacos-cluster{
  12. server192.168.15.145:8848;
  13. server192.168.15.147:8848;
  14. server192.168.15.148:8848;
  15. }
  16. server{
  17. listen80;
  18. server_name192.168.15.146;
  19. location/{
  20. #roothtml;
  21. #indexindex.htmlindex.htm;
  22. proxy_passhttp://nacos-cluster;
  23. }
  24. error_page500502503504/50x.html;
  25. location=/50x.html{
  26. roothtml;
  27. }
  28. }
  29. }

启动 Nginx

  1. /usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf

微服务配置

微服务父 pom 配置

  1. <!–?xmlversion="1.0"encoding="UTF-8"?>
  1. <projectxmlns="http://maven.apache.org/POM/4.0.0"</projectxmlns=<projectxmlns=</projectxmlns=xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. 4.0.0
  4. com.atguigu.springcloud
  5. cloud2020
  6. 1.0-SNAPSHOT
  7. pom
  8. <!––模块–>
  9. cloud-alibaba-nacos-config-client-3377
  10. <!––统一管理jar版本–>
  11. UTF-8
  12. 1.8
  13. 1.8
  14. 4.12
  15. 1.2.17
  16. 1.16.18
  17. 5.1.47
  18. 1.1.16
  19. 1.3.0
  20. <!––统一依赖管理–>
  21. <!––springboot2.2.2–>
  22. org.springframework.boot
  23. spring-boot
  24. 2.2.2.RELEASE
  25. pom
  26. import
  27. <!––springcloudHoxton.SR1–>
  28. org.springframework.cloud
  29. spring-cloud-dependencies
  30. Hoxton.SR1
  31. pom
  32. import
  33. <!––springcloudalibaba2.1.0.RELEASE–>
  34. com.alibaba.cloud
  35. spring-cloud-alibaba-dependencies
  36. 2.1.0.RELEASE
  37. pom
  38. import
  39. <!––mysql连接器–>
  40. mysql
  41. mysql-connector-java
  42. ${mysql.version}
  43. <!––druid数据源–>
  44. com.alibaba
  45. druid
  46. ${druid.version}
  47. <!––mybatis整合spring–>
  48. org.mybatis.spring.boot
  49. mybatis-spring-boot-starter
  50. ${mybatis.spring.boot.version}
  51. <!––junit–>
  52. junit
  53. junit
  54. ${junit.version}
  55. <!––log4j–>
  56. log4j
  57. log4j
  58. ${log4j.version}
  59. <!––lombok–>
  60. org.projectlombok
  61. lombok
  62. ${lombok.version}
  63. org.springframework.boot
  64. spring-boot-maven-plugin
  65. true
  66. true

微服务 pom 依赖

  1. <!–?xmlversion="1.0"encoding="UTF-8"?>
  1. <projectxmlns="http://maven.apache.org/POM/4.0.0"</projectxmlns=<projectxmlns=</projectxmlns=
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. cloud2020
  5. com.atguigu.springcloud
  6. 1.0-SNAPSHOT
  7. 4.0.0
  8. cloud-alibaba-nacos-config-client-3377
  9. <!––nacosconfig–>
  10. com.alibaba.cloud
  11. spring-cloud-starter-alibaba-nacos-config
  12. <!––nacosdiscovery–>
  13. com.alibaba.cloud
  14. spring-cloud-starter-alibaba-nacos-discovery
  15. <!––web–>
  16. org.springframework.boot
  17. spring-boot-starter-web
  18. <!––actuator–>
  19. org.springframework.boot
  20. spring-boot-starter-actuator
  21. <!––test–>
  22. org.springframework.boot
  23. spring-boot-starter-test
  24. test
  25. <!––devtools–>
  26. org.springframework.boot
  27. spring-boot-devtools
  28. runtime
  29. true
  30. <!––lombok–>
  31. org.projectlombok
  32. lombok
  33. true

微服务 bootstrap.yml 配置

  1. server:
  2. port:3377
  3. spring:
  4. application:
  5. name:nacos-config-client
  6. cloud:
  7. nacos:
  8. discovery:
  9. #server-addr:my.nacos.com:8848
  10. #nacos集群配置(Nginx)
  11. server-addr:192.168.15.146:80
  12. config:
  13. #server-addr:my.nacos.com:8848
  14. #nacos集群配置(Nginx)
  15. server-addr:192.168.15.146:80
  16. #指定yaml格式的配置
  17. file-extension:yaml
  18. #指定分组
  19. group:DEV_GROUP
  20. #指定命名空间ID
  21. namespace:my_nacos_namespace

微服务启动类配置

  1. packagecom.atguigu.springcloud;
  2. importorg.springframework.boot.SpringApplication;
  3. importorg.springframework.boot.autoconfigure.SpringBootApplication;
  4. importorg.springframework.cloud.client.discovery.EnableDiscoveryClient;
  5. @SpringBootApplication
  6. @EnableDiscoveryClient
  7. publicclassNacosConfigClientMain3377{
  8. publicstaticvoidmain(String[]args){
  9. SpringApplication.run(NacosConfigClientMain3377.class,args);
  10. }
  11. }

微服务 Controller 读取 nacos 配置

  1. packagecom.atguigu.springcloud.controller;
  2. importlombok.extern.slf4j.Slf4j;
  3. importorg.springframework.beans.factory.annotation.Value;
  4. importorg.springframework.cloud.context.config.annotation.RefreshScope;
  5. importorg.springframework.web.bind.annotation.GetMapping;
  6. importorg.springframework.web.bind.annotation.RestController;
  7. @RestController
  8. @Slf4j
  9. @RefreshScope//支持Nacos的动态刷新功能
  10. publicclassConfigClientController{
  11. @Value("${config.info}")
  12. privateStringconfigInfo;
  13. @GetMapping("/config/info")
  14. publicStringgetConfigInfo(){
  15. returnconfigInfo;
  16. }
  17. }

在 nacos 管理页上维护一个配置

听句劝! Nacos集群搭建可以看看这篇教程

听句劝! Nacos集群搭建可以看看这篇教程

本地启动微服务并访问

听句劝! Nacos集群搭建可以看看这篇教程

参考

[1]Nacos 官方文档: https://nacos.io/zh-cn/docs/what-is-nacos.html

[2]前往官网下载 JDK: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

[3]最新稳定版本: https://github.com/alibaba/nacos/releases[4]Nginx 源码安装: https://segmentfault.com/a/1190000022860417

听句劝! Nacos集群搭建可以看看这篇教程

原文链接:https://mp.weixin.qq.com/s/nbAEamMNTrMc8HtL9-Ru_Q

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 行业资讯 听句劝! Nacos集群搭建可以看看这篇教程 https://www.kuaiidc.com/63961.html

相关文章

发表评论
暂无评论