一、Nacos简介Nacos(NamingandConfigurationService)致力于帮助您发现、配置和管理微服务。Nacos提供了一套简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据和流量管理。详见Nacos官方文档[1]二、Nacos安装1、Nacos依赖于Nacos。它是基于java开发的,它的运行依赖于java环境。依赖64位JDK1.8+,去官网下载JDK[2]2,安装Nacos并下载编译好的压缩包,最新稳定版[3]unzipnacos-server-$version.zip或tar-xvfnacos-服务器-$version.tar。gzcdnacos/bin三、Nacos部署1、单实例部署单实例部署不适合生产环境,单点故障是致命的。Linux单实例非集群模式启动命令startup.sh-mstandaloneLinux单实例非集群模式关机命令shutdown.sh访问nacos管理页面,初始化用户名和密码均为nacos2,集群部署1,集群架构高可用Nginx集群Nacos集群(至少三个实例)高可用数据库集群(替代Nacos嵌入式数据库)2.本地虚拟机模拟集群部署本地环境准备在本地PC上使用VMwareworkstation虚拟出如上表所示的几台机器,其中Nginx而MySQL都是用的单例,仅用于练习。搭建步骤初始化nacos必要的数据库表并配置找到Nacos安装目录下提供的数据库脚本文件在MySQL实例中创建nacos_config库并导入脚本修改修改Nacos配置文件指向MySQL实例并替换它的嵌入式数据库#****************将Nacos嵌入式数据库平台切换到MySQL**************#spring.datasource.platform=mysqldb。num=1db.url.0=jdbc:mysql://192.168.15.141:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=rootdb.password=123456说明:所有三个nacos平台需要切换MySQL需要执行以上操作nacos集群配置复制cluster.conf文件Nacos集群配置,修改cluster.conf文件[root@localhostconf]#vim./cluster.conf#itisip#example192.168.15.145192.168.15.147192.168.15.148说明:3A所有nacos实例都需要做上面的集群配置。至此nacos的配置就结束了。可以尝试以集群模式启动三个nacos实例。以集群模式启动三个nacos实例,尝试访问nacos管理页面,测试三个实例是否正常。注意:如果三个实例在集群模式下正常启动,那么分别访问三个实例的管理页面会出现如上登录页面。如果无法访问,可能是防火墙没有开放nacos服务的端口,可以执行如下命令。[root@localhostbin]#firewall-cmd--add-port=8848/tcp--permanentsuccess[root@localhostbin]#firewall-cmd--reloadsuccess[root@localhostbin]#firewall-cmd--list-allpublic(active)target:defaulticmp-block-inversion:nointerfaces:ens33sources:services:sshdhcpv6-clientports:27017/tcp8848/tcpprotocols:masquerade:noforward-ports:source-ports:icmp-blocks:richrules:[root@localhostbin]#Nginx配置Nginx安装参考,Nginx源码安装[4]修改Nginx配置文件nginx.confworker_processes1;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout65;#nacos集群负载均衡upstreamnacos-cluster{server192.168.15。145:8848;server192.168.15.147:8848;server192.168.15.148:8848;}server{listen80;server_name192.168.15.146;location/{#roothtml;#index.htmlindex.htm;proxy_passhttp://nacos-cluster;}error_page500502503504/50x.html;location=/50x.html{roothtml;}}}启动Nginx/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf微服务配置Microservice父pom配置4.0.0com.atguigu.springcloudcloud20201.0-SNAPSHOTpomcloud-alibaba-nacos-config-client-3377UTF-81.81.84.121.2.171.16.185.1.471.1.161.3.0org.springframework.bootspring-boot2.2.2.RELEASEpomimportorg.springframework.cloudspring-cloud-dependenciesHoxton.SR1pomimportcom.alibaba.cloudspring-cloud-alibaba-dependencies2.1.0.RELEASEpomimportmysqlmysql-connector-java${mysql.version}com.alibabadruid${druid.version}org.mybatis.spring.bootmybatis-spring-boot-starter${mybatis.spring.boot.version}junitjun它${junit.version}log4jlog4j<版本>${log4j.version}org.projectlomboklombok${lombok.version}org.springframework.bootspring-boot-maven-复制代码plugintruetrue微服务pom依赖cloud2020com.atguigu.springcloud1.0-SNAPSHOT4.0.0cloud-alibaba-nacos-config-client-3377com.alibaba.cloudspring-cloud-starter-alibaba-nacos-configcom.alibaba.cloudspring-cloud-starter-alibaba-nacos-discoveryorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-actuatororg.springframework.bootspring-boot-starter-test测试org.springframework.bootspring-boot-devtoolsruntimetrueorg.projectlomboklomboktrue微服务bootstrap.yml配置server:port:3377spring:application:name:nacos-config-clientcloud:nacos:discovery:#server-addr:my.nacos.com:8848#nacos集群配置(Nginx)server-addr:192.168.15.146:80config:#server-addr:my.nacos.com:8848#nacos集群配置(Nginx)server-addr:192.168.15.146:80#以yaml格式指定配置file-extension:yaml#指定分组组:DEV_GROUP#指定命名空间IDnamespace:my_nacos_namespace微服务启动类配置packagecom.atguigu.springcloud;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication@EnableDiscoveryClientpublicclassNacosConfigClientMainvo]args){SpringApplication.run(NacosConfigClientMain3377.class,args);}}微服务控制器读取nacos配置包com.atguigu.springcloud.controller;importlombok.extern.slf4j.Slf4j;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.cloud.context.config.annotation.RefreshScope;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@Slf4j@RefreshScope//支持Nacos动态刷新功能publicclassConfigClientController{@Value("${config.info}")privateStringconfigInfo;@GetMapping("/config/info")publicStringgetConfigInfo(){returnconfigInfo;}}在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