当前位置: 首页 > news >正文

微服务搭建----springboot接入Nacos2.x

springboot接入Nacos2.x

nacos之前用的版本是1.0的,现在重新搭建一个2.0版本的,学如逆水行舟,不进则退,废话不多说,开搞

1、 nacos2.x搭建

1,首先第一步查询下项目之间的版本对照,不然后期会出现各种无法预测的版本冲突问题,今天就是复现了,可以参考链接:
版本对照

2,下载nacos,可以通过下方下载地址下载对应的版本
nacos下载地址

3,将下载之后的文件解缩后
在这里插入图片描述
4,解压成功后,进入bin文件通过cmd执行命令:startup.cmd -m standalone,然后执行成功了,通过链接进入了nacos后台

http://localhost:8848/nacos

在这里插入图片描述
在这里插入图片描述

5,很简单是不是,但是这里有个小坑,2.4.3的这个版本,初始化是没有账号密码的,一开始我是有下载1.x的其他版本,他是需要输入账号密码的,初始账号密码是,nacos\nacos,然后很操蛋的事情来了,因为是停留在登录页面,所以他是要求你输入密码,但是2.4.3没有初始账号密码,所以点击登录一直提示账号密码失败,当时很纳闷,没改过密码呀,怎么就是不对呀,纳闷了好久,后面不小心关了链接,重新点击http://localhost:8848/nacos,他进去了,他进去了!!!
6,回到正题,密码怎么办呢?那就开启鉴权,把账号密码加起来,再把数据库也建立进去,配置如下

##修改conf/application.properties文件nacos.core.auth.enabled=true
# 必须设置
# 用于在请求 nacos 时,请求头添加key:value信息,可通过验证
nacos.core.auth.server.identity.key=example
nacos.core.auth.server.identity.value=example
# 设置用于生成token的密钥, 需要原文不低于32位的Base64加密的结果, 
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=

7,开启之后,直接通过:http://localhost:8848/nacos,会有如下的提示,然后首次登录也是设置密码
在这里插入图片描述

2,构建springboot项目,使用的maven进行构建

pom文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>Demo</artifactId><version>0.0.1-SNAPSHOT</version><name>Demo</name><description>Demo</description><properties><java.version>1.8</java.version><spring.version>4.2.5.RELEASE</spring.version><nacos-config-spring-boot.version>0.2.1</nacos-config-spring-boot.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- Spring Boot Test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!-- JUnit 5 (Jupiter) --><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId><version>2.2.2.RELEASE</version></dependency><!-- nacos服务注册/发现--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.9.RELEASE</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.2.9.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>
</project>

2、配置文件配置

1,这里有个点需要注意的是,配置文件用bootstrap.yml进行配置,而不是application.yml,为什么呢?因为如果使用的是application进行配置的话,虽然也能注册到nacos去,但是nacos的配置文件是无法读取成功的

#应用服务名称
server:port: 8081
spring:application:name: order-coreprofiles:active: test #可选值dev test uat prodcloud:nacos:discovery:server-addr: 127.0.0.1:8848 #服务注册中心地址namespace: ${spring.profiles.active} #指定命名空间username: nacos #用户名password: nacos #密码config:server-addr: ${spring.cloud.nacos.discovery.server-addr} #服务配置中心地址namespace: ${spring.profiles.active} #指定命名空间username: ${spring.cloud.nacos.discovery.username} #用户名password: ${spring.cloud.nacos.discovery.password} #密码file-extension: yml #配置文件后缀shared-configs:- data-Id: springcloud.ymlrefresh: true- data-Id: datasource.ymlrefresh: true
management:health:defaults:enabled: false

3,项目启动成功后,就可以在nacos的服务列表中看到了
在这里插入图片描述
4,验证配置文件是否能读取到

package com.example.demo.controller;import com.alibaba.nacos.api.annotation.NacosInjected;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import com.alibaba.nacos.api.exception.NacosException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;import static org.springframework.web.bind.annotation.RequestMethod.GET;/*** @author:Deng* @date: 2024-11-27 15:42* @remark:*/
@RestController
public class TestController {@Value("${dd.aa}")private String aa;@RequestMapping(value = "/get", method = GET)@ResponseBodypublic String get() {return aa;}
}

在这里插入图片描述
在这里插入图片描述
4,再记录一点,当nacos和springboot或者springclound版本存在冲突时,会在启动时出现403的错误,出现这个错误时,可根据1.1提到的进行版本对照修改,以及在配置配置文件时,命名空间的data-Id也要一一对应,下一步就是搭建服务间远程调用OpenFeign

http://www.lryc.cn/news/497003.html

相关文章:

  • 3.建立本地仓库及常用命令
  • linux arm下获取屏幕事件(rk3588)
  • 【机器学习】人工智能与气候变化:利用深度学习与机器学习算法预测和缓解环境影响
  • 物联网射频识别和RFID开发(二):RFID原理及硬件组成
  • LeetCode763. 划分字母区间(2024冬季每日一题 23)
  • python调用GPT-4o实时音频 Azure OpenAI GPT-4o Audio and /realtime
  • Hadoop生态圈框架部署 伪集群版(四)- Zookeeper单机部署
  • LuaJava
  • Maven下载安装、环境配置(超详细)(包括Java环境配置(Windows)、在IDEA中配置Maven)
  • Python中的实例方法、静态方法和类方法三者区别?
  • 【学习Go编程】
  • Linux系统:网络
  • shodan2-批量查找CVE-2019-0708漏洞
  • 面向对象(二)——类和对象(上)
  • Redis3——线程模型与数据结构
  • linux 获取公网流量 tcpdump + python + C++
  • C++知识整理day3类与对象(下)——赋值运算符重载、取地址重载、列表初始化、友元、匿名对象、static
  • pytest(二)excel数据驱动
  • python蓝桥杯刷题3
  • 基于PySpark 使用线性回归、随机森林以及模型融合实现天气预测
  • Day 30 贪心算法 part04
  • dns实验3:主从同步-完全区域传输
  • 数据结构 (20)二叉树的遍历与线索化
  • 【docker】Overlay网络
  • 基于智能语音交互的智能呼叫中心工作机制
  • Linux条件变量线程池详解
  • 有趣的Docker
  • 深入探讨锁升级问题
  • MySQL篇—通过官网下载linux系统下多种安装方式的MySQL社区版软件
  • 6.824/6.5840(2024)环境配置wsl2+vscode