nacos升级到2.0.3(单机模式)

news2024/11/27 3:53:47

前提:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

Spring Cloud AlibabaSpring CloudSpring BootNacos
2.2.7.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE2.0.3

一、pom.xml文件

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.3.12.RELEASE</version>
	<relativePath/> 
</parent>
	
<properties>
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
<spring-cloud-alibaba.verion>2.2.7.RELEASE</spring-cloud-alibaba.verion>
<nacos-client.verion>2.0.3</nacos-client.verion>
</properties>	

<!-- Spring Cloud -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-dependencies</artifactId>
	<version>${spring-cloud.version}</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>
<!-- Spring Cloud Alibaba -->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-alibaba-dependencies</artifactId>
	<version>${spring-cloud-alibaba.verion}</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>

<!-- 服务注册 -->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 配置中心 -->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

<!--springboot版本变更2.3.12.RELEASE后@NotBlank注解失效引入-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

自己记录 method(@Validated TestReq req) 替换 method(@RequestBody TestReq req)

二、下载nacos2.0.3

官方下载地址:https://github.com/alibaba/nacos/releases

windows加速下载地址:https://ghproxy.com/https://github.com//alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.zip

linux加速下载地址:https://ghproxy.com/https://github.com//alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.tar.gz

 三、下载后解压

1、修改application.properties中数据库配置

cd /lanren312/nacos/conf/
vim application.properties
    
#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql
 
### Count of DB:
db.num=1
 
### Connect URL of DB:
db.url.0=jdbc:mysql://服务器ip:3306/db_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=你的数据库密码


nacos.core.auth.caching.enabled=true  # 开启权限认证,很重要,很重要,很重要

2、修改nacos/bin/startup.cmd  set MODE="standalone" (linux是startup.sh)

3、linux多两个步骤

3.1、在/bin/startup.sh中配置JAVA_HOME

3.2、在安全组、防火墙中开放8848、9848、9849三个端口

 4、项目resource下的bootstrap.properties 文件

 我项目的resource只配置了一个 bootstrap.properties 文件,bootstrap 加载优先于 applicaton(优先级可以自行百度)

spring.profiles.active=prod
spring.application.name=lanren312-order
spring.cloud.nacos.config.group=monkey
spring.cloud.nacos.config.server-addr=http://192.168.0.103:8848   # 服务器ip
spring.cloud.nacos.config.file-extension=yaml

## 这些是2.x版本以上必须加的,不加服务启动就会报错
spring.cloud.nacos.config.username=nacos
spring.cloud.nacos.config.password=nacos  # 默认是nacos,建议把密码改掉
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos # 默认是nacos,建议把密码改掉

1、我是用的默认的namespace,这里可以不写,如果你创建了新的,那么这么就要指定
2、nacos密码是默认的,建议导入sql时将密码改掉,百度搜索--Bcrypt密码生成计算器, https://www.jisuan.mobi/nX7.html
3、dataID格式: ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}(格式可以自行百度)
我的这个服务的dataId: lanren312-order-prod.yaml
dataID不能有下划线“_” ,得是中划线"-"
配置中“:”后要有空格。accessKey: 5

5、 在nacos客户端新建配置

Data ID:lanren312-order-prod.yaml
Group: monkey
配置格式: YAML
配置内容:写之前的不用改,贴一部分关于nacos的配置
spring:
	cloud:
		nacos:
		  discovery:
			server-addr: 192.168.0.103:8848

做完这些,启动服务,就能注册到nacos上。

记录一些api

## 查看到nacos目前已经注册过的账号和加密后的密码
http://localhost:8848/nacos/v1/auth/users?pageNo=1&pageSize=10&username=nacos&password=nacos  
## 查看到dataId配置
http://localhost:8848/nacos/v1/cs/configs?group=monkey&tenant=public&dataId=lanren312-order-prod.yaml&username=nacos&password=nacos
## 查看nacos启动的服务
http://localhost:8848/nacos/v1/ns/upgrade/ops/metrics

四、说说碰到的问题

1、可能需要的pom.xml引用

<!--spring-cloud-dependencies 2020.0.0 默认不在加载bootstrap 配置文件,
如果项目中要用bootstrap 配置文件 需要手动添加spring-cloud-starter-bootstrap 依赖,不然启动项目会报错的。-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
    <version>3.0.2</version>
</dependency>	
	
<!--有博客说要排除自带的nacos-client,要重新引入,后面不排除发现也能用-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>2.0.3</version>
</dependency>

2、开启权限验证,注册失败

经过检查发现
windows启动 会把配置文件写到 C:\Users\Administrator\nacos 目录下
linux中启动第一行日志就会打印 c.a.n.c.c.impl.LocalConfigInfoProcessor  : LOCAL_SNAPSHOT_PATH:/root/nacos/config
在nacos客户端修改配置后,这里面的文件也会实时更新,说明客户端这边没问题。

启动服务报错 3次get data from Nacos error,有报错 403,unknown user

NacosPropertySourceBuilder     : get data from Nacos error,dataId:lanren312-order
com.alibaba.nacos.api.exception.NacosException: http error, code=403,dataId= lanren312-order,group=monkey,tenant=
......
NacosPropertySourceBuilder     : get data from Nacos error,dataId:lanren312-order.yaml 
com.alibaba.nacos.api.exception.NacosException: http error, code=403,dataId= lanren312-order.yaml ,group=monkey,tenant=
......
NacosPropertySourceBuilder     : get data from Nacos error,dataId:lanren312-order-prod.yaml 
com.alibaba.nacos.api.exception.NacosException: http error, code=403,dataId= lanren312-order-prod.yaml ,group=monkey,tenant=
......
***************************
APPLICATION FAILED TO START
***************************

Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class

Action:
Consider the following:
	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
	If you have database settings to be loaded from a particular profile you may need to activate it (the profiles prod are currently active)

最终还指向了DataSource,可DataSource肯定不可能有错的,上面的3次报错也很可疑,于是去nacos的issues去碰碰运气
和我的问题一样,但没看到解决办法:https://github.com/alibaba/spring-cloud-alibaba/issues/2332

https://github.com/alibaba/spring-cloud-alibaba/issues/3210  里面说要在bootstrap.properties文件中添加 nacos账号密码。添加后启动服务控制台正常,nacos客户端可以看到服务已经注册上去。完美

期间有试过在nacos客户端中 lanren312-order-prod.yaml 里面配置nacos账户密码,启动还是报错,最终是将nacos账户密码配置在bootstrap.properties文件中解决了问题。

完!
   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网工内推 | 高级网工专场,上市公司,3年经验以上,HCIE证书优先

01 名创优品&#xff08;广州&#xff09;有限责任公司 &#x1f537;招聘岗位&#xff1a;高级网络工程师 &#x1f537;职责描述&#xff1a; 1、负责集团总部有线&#xff06;无线、公有云、仓库的网络规划建设与运维&#xff1b; 2、负责公有云的网络台日常上线部署、规划…

3.3 分析特征内部数据分布与分散状况

3.3 分析特征内部数据分布与分散状况 3.3.1 绘制直方图 bar()3.3.2 绘制饼图 pie()3.3.3 绘制箱线图 boxplot()3.3.4 任务实现1、绘制国民生产总值构成分布直方图2、绘制国民生产总值构成分布饼图3、绘制国民生产总值分散情况箱线图 小结 3.3.1 绘制直方图 bar() 直方图&#x…

Vue源码解析

【尚硅谷】Vue源码解析之虚拟DOM和diff算法 【Vue源码】图解 diff算法 与 虚拟DOM-snabbdom-最小量更新原理解析-手写源码-updateChildren] 文章目录 2. snabbdom 简介 及 准备工作2.1 简介2.2 搭建初始环境1. 安装snabbdom2. 安装webpack5并配置3. 复制官方demo Example 3. …

IJCAI 2023 | 如何从离散时间事件序列中学习因果结构?

本文分享一篇我们在IJCAI 2023的最新工作&#xff0c;文章分析了在离散时间事件序列上存在的瞬时效应问题&#xff0c;提出了一种利用瞬时效应的结构霍克斯模型&#xff0c;且在理论上证明了事件序列上的瞬时因果关系同样是可识别的。 相关论文&#xff1a; Jie Qiao et al. “…

基于SpringBoot的家庭记账管理系统的设计与实现

摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…

数据结构之线性表

1.线性表的定义 线性表是由n(n≥0)个类型相同的数据元素组成的有限 序列&#xff0c;记作:L &#x1d44e;0, &#x1d44e;1, ⋯ , &#x1d44e;&#x1d456; , ⋯ , &#x1d44e;&#x1d45b;−1 2 线性表的顺序存储结构实现 线性表的顺序存储结构称为顺序表&#xff08;…

2023年前端面试汇总-HTML

1. src和href的区别 src和href都是用来引用外部的资源&#xff0c;它们的区别如下&#xff1a; src表示对资源的引用&#xff0c;它指向的内容会嵌入到当前标签所在的位置。src会将其指向的资源下载并应用到文档内&#xff0c;如请求js脚本。当浏览器解析到该元素时&#xff…

HyperLogLog数据结构

基数计数(cardinality counting) 通常用来统计一个集合中不重复的元素个数&#xff0c;例如统计某个网站的UV&#xff0c;或者用户搜索网站的关键词数量。数据分析、网络监控及数据库优化等领域都会涉及到基数计数的需求。 要实现基数计数&#xff0c;最简单的做法是记录集合中…

34岁出来面试,还被拒绝有多惨?

我强烈建议大家定期去参加一下外面的面试&#xff0c;尤其是BAT大厂的面试&#xff0c;不要一直闷在公司里&#xff0c;不然你很容易被这个世界遗弃。 前言 昨天&#xff0c;我们小组长奉命去面了一个34岁的测试员。 去了大概半个多小时吧&#xff0c;回来后&#xff0c;他的…

图数据库(二):Java操作图数据库

在上篇文章中&#xff0c;我们介绍了什么是Neo4j&#xff0c;什么是Cypher以及Neo4j的使用&#xff0c;今天我们学习一下如何使用Java操作Neo4j图数据库。 Cypher查询 在使用Java操作Neo4j之前&#xff0c;我们先了解一点&#xff0c;Cypher语句简单查询。 本文使用的是Neo4j…

Flutter的状态管理之Provider

Provider简介 Flutter Provider是Flutter中一个非常流行的状态管理库&#xff0c;它可以帮助开发者更加方便地管理应用程序中的状态。Provider提供了一种简单的方式来共享和管理应用程序中的数据&#xff0c;并且可以根据数据的变化来自动更新UI界面。 Provider的核心思想是将…

网络协议——什么是RIP协议?工作原理是什么?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、什么是RIP协议&#xff1f; 二、为什么要使用RIP&#xff1f; 三、RIP用在哪里&#xff1f; 四、RIP协议的工作原理 五、总结 …

Redis安装布隆过滤器

目录 1 什么是布隆过滤器1.1 布隆过滤器的原理1.2 布隆过滤器缺点 2 插件形式安装2.1 下载布隆过滤器插件 3 docker方式单机安装4 Redis集群部署安装4.1 创建目录4.2 redis配置文件4.3 配置docker-compose.yml文件4.4 启动布隆过滤器集群4.5 配置集群4.6 布隆过滤器常用命令4.7…

如何将simulink中的元件(光伏板)导入到plecs中使用

simulink中有一些元件在plecs中是没有的&#xff0c;如果想要直接使用simulink的库&#xff0c;可以这样操作&#xff1a; 1 新建mdl文件&#xff08;simulink的文件类型&#xff09;&#xff0c;并在该文件中搭建好想要的模型、元件&#xff08;只放想要导出的元件就可以了&…

商城检索 DSL

模糊匹配过滤&#xff08;按照属性、分类、品牌、价格区间、库存&#xff09;排序分页高亮聚合分析 一. 搜索关键字 检索字段&#xff1a;商品sku标题 “skuTitle” : “华为 HUAWEI Mate 30 Pro 亮黑色 8GB256GB麒麟990旗舰芯片OLED环幕屏双4000万徕卡电影四摄4G全网通手机”…

基于Java+SpringBoot+Vue前后端分离考试学习一体机设计与实现(视频讲解)

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

docker-compose单机容器集群编排

docker-compose dockerfile模板文件可以定义一个独立的应用容器&#xff0c;如果需要多个容器就需要服务编排。服务编排有很多技术方案 docker-compose开源的项目实现对容器集群的快速编排 docker-compose将所管理的容器分为三层&#xff0c;分别为工程&#xff0c;服务&#…

Jenkins+RF持续集成测试(三) 生成测试报告并发给指定人

在上一篇《定时更新SVN完成构建》中讲了定时从SVN拉取最新的测试脚本&#xff0c;并自动构建的过程。这篇我将介绍怎么配置测试robot报告&#xff0c;并发送给指定人群。 1、要发给指定人&#xff0c;首先需要在job配置&#xff0c;构建后操作中增加“Editable Email Notificat…

day3 ARM寄存器组织

目录 寄存器 ARM寄存器 专用寄存器 CPSR寄存器 寄存器 概念&#xff1a;寄存器是处理器内部的存储器&#xff0c;没有地址&#xff1b; 作用&#xff1a;一般用于暂时存放参与运算的数据和运算结果&#xff1b; 分类&#xff1a;包括通用寄存器、专用寄存器、控制寄存器&…

腾讯云数据库2022下半年本地部署市场收入同比增速达110%,远超市场平均水平

6月7日&#xff0c;记者获悉&#xff0c;据全球领先的IT市场研究和咨询公司IDC发布的《2022年下半年中国关系型数据库软件市场跟踪报告》显示&#xff0c;在Top 5厂商中&#xff0c;腾讯云数据库整体收入同比增速、本地部署模式收入同比增速均位列第一。 具体来看&#xff0c;…