springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

天下之事常成于困约,而败于奢靡。这篇文章主要讲述springcloud alibaba企业落地实战:一文带你掌握nacos基础应用相关的知识,希望能为你提供帮助。
1.为什么使用选择nacosnacos在springcloud体系中作为注册中心与配置中心使用。相当于eureka与apollo的功能。
一个老生常谈的问题nacos和eureka区别,下图是楼主在网上查找到。

springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
但是在楼主实际应用中 还有以下有点特别称道:
  1. nacos有配置功能,相对于楼主之前的eureka+apollo 这无疑大大的简化了系统的复杂性。
  2. nacos使用了数据库进行管理数据,使在处理数据时心里更舒服了。
  3. nacos拥有namespace和gourp的概念,可以隔离同名的服务。这样在多人起后端服务时,可以注册到一个nacos服务 隔离开就可以了。
2.Nacos快速开始这个快速开始手册是帮忙您快速在您的电脑上,下载、安装并使用 Nacos。
1.版本选择您可以在Nacos的release notes及博客中找到每个版本支持的功能的介绍,当前推荐的稳定版本为1.4.2或2.0.1。
2.预备环境准备Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
  1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
  2. 64 bit JDK 1.8+;下载 & 配置。
  3. Maven 3.2.x+;下载 & 配置。
3.下载源码或者安装包你可以通过源码和发行包两种方式来获取 Nacos。
1.从 Github 上下载源码方式
git clone https://github.com/alibaba/nacos.git cd nacos/ mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U ls -al distribution/target/// change the $version to your actual path cd distribution/target/nacos-server-$version/nacos/bin

2.下载编译后压缩包方式
您可以从 最新稳定版本 下载 nacos-server-$version.zip 包。
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz cd nacos/bin

4.启动服务器 1.Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone

2.Windows
启动命令(standalone代表着单机模式运行,非集群模式):
startup.cmd -m standalone

当idea使用源码单机启动时需要以下配置
springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片

springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
-Dnacos.standalone=true

5.单机时使用数据库当不添加配置时,默认是使用内存保存信息,我们可以添加数据库配置,使数据保存在数据库内.
暂时官方只支持mysql,其他数据库需要自己手动修改。
1.源码启动
使用源码idea启动需要修改以下文件的以下位置

springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
2.已经打包的jar包
nacos\\conf\\application.properties修改数据库配置

springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
6.启动成功出现以下图案代表启动成功,看出来模式为单机模式,路径为Console输出,访问即可

springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
3.springboot注册进入nacos 1.修改pom文件
< dependency> < groupId> com.alibaba.cloud< /groupId> < artifactId> spring-cloud-starter-alibaba-nacos-discovery< /artifactId> < /dependency> < !-- SpringCloud Alibaba Nacos Config --> < dependency> < groupId> com.alibaba.cloud< /groupId> < artifactId> spring-cloud-starter-alibaba-nacos-config< /artifactId> < /dependency>

在pom.xml文件中最好选择合理的版本,否则会报各种各样的错 。
版本可以根据官方文档选择:github.com/alibaba/spr…
同时为了保证版本相同建议再父工程中加入以下配置,意思是子工程groupid为org.springframework.cloud,com.alibaba.cloud,org.springframework.boot的都依赖父工程版本
< dependencyManagement> < dependencies> < dependency> < groupId> org.springframework.cloud< /groupId> < artifactId> spring-cloud-dependencies< /artifactId> < version> ${spring-cloud.version}< /version> < type> pom< /type> < !--maven不支持多继承,使用import来依赖管理配置--> < 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> < !-- SpringBoot 依赖配置 --> < dependency> < groupId> org.springframework.boot< /groupId> < artifactId> spring-boot-dependencies< /artifactId> < version> ${spring-boot.version}< /version> < type> pom< /type> < scope> import< /scope> < /dependency> < /dependencies> < /dependencyManagement>

2.修改bootstrap.xml这里一定要使用bootstrap.yml而不是application.yml,因为bootstrap.yml运行先于后者,如果使用application.yml可能会出现即使有注册的地址,还是去连接localhost:8848的情况。
spring: application: name: systemp # 数据源配置 cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.xx.x:8848 #命名空间 namespace: b80f0aa4-3af2-a6e3-c6fda24c2bc0 #分组 group: xxx config: # 配置中心地址 server-addr: 192.168.xx.xx:8848 # 配置文件格式 file-extension: yml #命名空间 namespace: b80f0aa4-3af2-a6e3-c6fda24c2bc0 #分组 group: xxx

1.新建命名空间
配置文件中namespace是需要建立的,方式如图

springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
2.新建分组
分组不用在nacos中新建 ,直接编写即可。
3.修改启动类在spring boot启动类上加入@EnableDiscoveryClient注解即可。
@EnableDiscoveryClient @SpringBootApplication public class GetwayApplication {public static void main(String[] args) { //去除nacos日志 System.setProperty("nacos.logging.default.config.enabled", "false"); SpringApplication.run(GetwayApplication.class, args); }}

4.启动然后启动服务,访问ip:8848/nacos可以验证是否注册成功。

springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
同时也发布到了指定的namespace和groupid。
4.配置中心配置中心:bootstrap.yml中的配置可以通过nacos配置修改,同时大部门不需要重启服务就可以生效。
由于引入了nacos,楼主不再使用apollo配置中心。变更原因如下
  1. 由于架构变更为springcloud alibaba,nacos可以承担起eureka+apollo的功能。
  2. 可以降低系统的复杂性。方便运维。
  3. 对配置中心的需求仅有动态配置,无更细腻话的权限和灰度发布等功能要求。
1.实战整合springboot1.新建nacos配置
springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
配置解释如下:
  1. Data ID的命名格式如下:{spring.application.name}-{spring.profiles.active}.{文件类型},也就是系统名称+dev/pro.yaml(一般情况)见下图。
springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
  1. group:其中需要注意namespace与group需要与nacos中配置对应(这两个概念上文有介绍),否则会获取不到配置。
  2. 配置格式:这里因为使用了bootstrap.yml所以选择上述配置。
  3. 配置内容:需要在nacos中更改的配置项。
2.配置成功


如果成功:
springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
同时可以监控到那台服务使用该配置。

springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)

文章图片
3.客户端接口编写
@RestController @RefreshScope public class DemoController {@Value("${nacostest.demo}") private String demo; @GetMapping("/testConfig") public String testConfig(){ return demo; } }

【springcloud alibaba企业落地实战(一文带你掌握nacos基础应用)】改变配置多次调用接口,可以发现返回值发生变化。

    推荐阅读