Naco安装、配置、使用request接口交互

1. Docker安装Naco

官方文档https://nacos.io/zh-cn/docs/quick-start-docker.html,然而自己部署的时候遇到了“Database not set”的问题。有可能是因为环境中已经部署了3306的mysql服务导致的。(虽然我尝试修改了naco的docker-compose,但是未果,遂放弃)

安装过程参考文章:https://blog.csdn.net/ilvjiale/article/details/129417768

docker pull nacos/nacos-servermkdir -p /mydata/nacos/logs/                      #新建logs目录
mkdir -p /mydata/nacos/conf/						#新建conf目录docker run -p 8848:8848 --name nacos -d nacos/nacos-serverdocker cp nacos:/home/nacos/logs/ /mydata/nacos/
docker cp nacos:/home/nacos/conf/ /mydata/nacos/docker rm -f nacos## 随后去数据库中创建表nacos_config,并执行下列sql
## https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql## 然后重启
docker run -d --name nacos -p 8848:8848  -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -v /mydata/nacos/logs/:/home/nacos/logs -v /mydata/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server

修改配置文件

# 在宿主机中修改application.properties文件
vim /mydata/nacos/conf/application.properties# 修改下列内容
spring.datasource.platform=mysql
db.num=1
## 这里我是用docker的内置网络进行DNS解析,因此使用的image的名字mysql_server来进行关联的
db.url.0=jdbc:mysql://mysql_server:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root

进入页面
http://ip:8848/nacos/index.html

2. 鉴权

直接访问http://ip:8848/nacos/index.html是裸奔,因此要配置账号密码

参考https://nacos.io/zh-cn/docs/v2/guide/user/auth.html,https://juejin.cn/post/7281201055627493413

### If turn on auth system:
nacos.core.auth.enabled=false### If turn on auth system:
nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true

然后再去http://ip:8848/nacos/index.html就有密码了。默认是nacos/nacos

3. 自己写服务的操作

SpringBoot
Flask

以下代码均通过v1的接口实现。接口文档参考“https://nacos.io/zh-cn/docs/v2/guide/user/open-api#1.2”

通过request的方法实现注册

import requests
from flask import Flask, make_response
import time
# 用于异步处理心跳检测
import threading
import jsonapp = Flask(__name__)IP = "XXXXXXX"
PORT = 5030data = {"serviceName": "pythonservice","ip": IP,'port': PORT,'namespaceId': 'XXXX','USERNAME': 'XXXX','PASSWORD': 'XXXX',"metadata": json.dumps({"version":"v1.0", "message": "测试数据"})
}print(data)# 服务注册
def service_register():url = "http://127.0.0.1:8848/nacos/v1/ns/instance"res = requests.post(url, data=data)print(res.text, type(res))print("完成注册")# 心跳检测
def service_beat():while True:url = "http://127.0.0.1:8848/nacos/v1/ns/instance/beat"res = requests.put(url, data=data)print(f"心跳检测中... 响应状态码: {res.status_code}", res.text)time.sleep(5)@app.route('/test', methods=['GET'])
def test():response = make_response("部署成功")return responseif __name__ == '__main__':service_register()# 创建定时器,每5秒调用一次my_function函数timer = threading.Timer(5.0, service_beat)# 启动定时器timer.start()app.run('0.0.0.0', PORT)

request方法实现服务发现
由于这里是get请求,不接受data

要把用户名密码放到header中,并且url要带上serviceName和namespaceId

import requests# 服务发现
def service_find():headers = {'USERNAME': 'xxxx','PASSWORD': 'xxxx'}url = "http://xxxxx:8848/nacos/v1/ns/instance/list?serviceName=pythonservice&namespaceId=xxxxx"res = requests.get(url,  headers=headers)print(res.text, type(res), res)if __name__ == '__main__':service_find()

通过sdk的方式完成注册(由于python的库版本太老,并且不支持新版naco,因此放弃)

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

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

相关文章

如何制作教育培训小程序

教育培训行业近年来发展迅速,越来越多的机构开始意识到通过小程序来提供在线教育服务的重要性。小程序不仅可以为用户提供便捷的学习体验,还可以增加机构的知名度和品牌影响力。那么,如何制作一款教育培训小程序呢? 首先&#xff…

WT2605C语音芯片:实现蓝牙音频播放与BLE透传,引领智能设备应用新潮流

随着蓝牙技术的快速发展,蓝牙音频播放和BLE(蓝牙低功耗)透传已成为智能设备中不可或缺的功能。在这样的背景下,WT2605C语音芯片以其出色的性能和集成度,完美实现了蓝牙音频播放BLE透传的功能,为智能设备的应…

【例1.6】回文数(Noip1999)

1309:【例1.6】回文数(Noip1999) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加…

using meta-SQL 使用元SQL 六

%Table Syntax %Table(recname) Description Use the %Table construct to return the SQL table name for the record specified with recname. 使用%Table构造返回使用recname指定的记录的SQL表名。 This construct can be used to specify temporary tables for runn…

sqlmap400报错问题解决

python sqlmap.py -r sql.txt --batch --techniqueB --tamperspace2comment --risk 3 --force-ssl–batch 选项全部默认 不用再手动输入 –techniqueB 使用布尔盲注,该参数是指出要求使用的注入方式 –tamperspace2comment使用特殊脚本,space2comment是把…

【MySQL语言汇总[DQL,DDL,DCL,DML]以及使用python连接数据库进行其他操作】

MySQL语言汇总[DQL,DDL,DCL,DML] SQL分类1.DDL:操作数据库,表创建 删除 查询 修改对数据库的操作对表的操作复制表(重点)!!!!! 2.DML:增删改表中数据3.DQL:查询表中的记录…

jsp在线辅助教育系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 在线辅助教育系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

工厂生产数据展示基本布局Demo(提供素材)

效果图&#xff1a; <template><div class"app-container"><a-row :span"24"><a-col :span"12"><div class"divBox"><div class"flexBoxs"><div style"margin: 2px 5px;"…

在windows server系统下,快速部署自己的网站

目录 xampp简介xampp的作用xampp的安装方法Apache简介Apache的作用 本文主要介绍使用xampp软件包在windows server系统下&#xff0c;快速部署自己的网站。 xampp简介 XAMPP是一款基于Apache、MySQL、PHP和Perl的开源Web服务器软件包。XAMPP支持多个操作系统&#xff0c;包括W…

go写文件后出现大量NUL字符问题记录

目录 背景 看看修改前 修改后 原因 背景 写文件完成后发现&#xff1a; size明显也和正常的不相等。 看看修改前 buf : make([]byte, 64) buffer : bytes.NewBuffer(buf)// ...其它逻辑使得buffer有值// 打开即将要写入的文件&#xff0c;不存在则创建 f, err : os.Open…

MySQL数据备份

一、逻辑备份 备份的是建表、建库、插入等操作所执行SQL语句&#xff0c;适用于中小型数据库&#xff0c;效率相对较低。 本质&#xff1a;导出的是SQL语句文件 优点&#xff1a;不论是什么存储引擎&#xff0c;都可以用mysqldump备成SQL语句 缺点&#xff1a;速度较慢&…

Mysql分布式集群部署---MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上

1.1 目的 部署MysqlCluster集群环境 1.2 MySQL集群Cluster原理 1 数据分片 MySQL集群Cluster将数据分成多个片段&#xff0c;每个片段存储在不同的服务器上。这样可以将数据负载分散到多个服务器上&#xff0c;提高系统的性能和可扩展性。 2. 数据同步 MySQL集群Cluster使…

前端面试理论题

1.什么是js&#xff1f;js的特点是什么&#xff1f; js&#xff1a; 是一种直译式脚本语言&#xff0c;是一种动态类型、弱类型、基于原型的高级语言。 特点&#xff1a;简单性&#xff1b;安全性&#xff1b;动态性&#xff1b;跨平台性&#xff1b; 简单性&#xff1a;它的…

ElasticSearch之Close index API

关闭指定的索引。 索引关闭之后&#xff1a; 停止对读、写操作的响应。停止检索操作的响应。在索引关闭前&#xff0c;允许执行的操作&#xff0c;关闭之后均不允许执行。ElasticSearch取消对索引的相关维护操作&#xff0c;包含内存中的数据结构&#xff0c;以及保存在存储中…

c++--运算符重载

1.重载的运算符 (1).重载运算符函数的参数数量与该运算符作用的运算对象数量一样多。 (2).除了重载的函数调用运算符operator()之外&#xff0c;其他重载运算符不能含有默认实参。 (3).对一个重载的运算符&#xff0c;其优先级和结合律与对应的内置运算符保持一致。 (4).当一个…

2022年全国大学生数据分析大赛医药电商销售数据分析求解全过程论文及程序

2022年全国大学生数据分析大赛 医药电商销售数据分析 原题再现&#xff1a; 问题背景   20 世纪 90 年代是电子数据交换时代&#xff0c;中国电子商务开始起步并初见雏形&#xff0c;随后 Web 技术爆炸式成长使电子商务处于蓬勃发展阶段&#xff0c;目前互联网信息碎片化以…

破解研发人员的绩效考核难题

当下的中国正处于产业结构调整的重要转型时期。创新成为当下企业寻求稳健和长远发展必不可少的关键。要建立属于自己的企业特色&#xff0c;开发出属于自己的产品和服务并在激励竞争的市场下求得生存和发展&#xff0c;企业的自主研发活动已经越来越重视。纵观那些世界500强企业…

【Centos】在CentOS上搭建Squid代理服务器详解

在CentOS上搭建Squid代理服务器详解 一、安装 首先&#xff0c;通过yum包管理工具安装Squid代理服务器和httpd-tools&#xff08;用于生成密码文件&#xff09;&#xff1a; yum install squid -y yum install httpd-tools -y二、生成密码文件 创建用于存储用户认证信息的目…

杨辉三角

打印n行杨辉三角&#xff0c;n<10。 输入格式: 直接输入一个小于10的正整数n。 输出格式: 输出n行杨辉三角&#xff0c;每个数据输出占4列。 输入样例: 5输出样例: 11 11 2 11 3 3 11 4 6 4 1代码长度限制 16 KB 时间限制 400 ms 内存限制 6…

css实现正六边形嵌套圆心

要实现一个正六边形嵌套圆心&#xff0c;可以使用CSS的::before和::after伪元素以及border-radius属性。以下是具体的解析和代码&#xff1a; 使用::before和::after伪元素创建正六边形。设置正六边形的背景色。使用border-radius属性使正六边形的内角为60度。在正六边形内部创…