【Nacos】在Windows环境下搭建Nacos服务与Python开发示例

news2024/12/21 19:58:14

在Windows环境下搭建Nacos服务与Python开发示例

Nacos是一个开源的动态服务发现、配置和服务管理平台。本文将介绍在Windows环境下搭建Nacos服务,并提供一个简单的Python示例,演示如何通过Nacos实现服务注册与发现。

  • 官方提示:Nacos定义为一个IDC内部应用组件,并非面向公网环境的产品,建议在内部隔离网络环境中部署,强烈不建议部署在公共网络环境。

官网:https://nacos.io/zh-cn/docs/deployment.html

1. Java环境

(安装与环境配置略)

  • 参考图片

在这里插入图片描述

2. 下载与配置Maven

下载Maven,并配置环境变量。具体步骤如下:

  1. 下载Maven:apache-maven-3.9.6-bin.zip
  2. 解压至指定目录。
  3. 配置环境变量:
    • 新建系统变量 MAVEN_HOME,值为Maven解压目录路径。
    • 编辑系统变量 Path,添加 %MAVEN_HOME%\bin

验证Maven是否安装成功,执行命令:

mvn --version
  • 参考图片

在这里插入图片描述

3. 下载与安装Nacos

首先,从Nacos官方网站下载最新版本的Nacos服务:

下载链接

选择合适的版本,这里以nacos-server-2.3.0.zip为例。下载完成后,解压缩到指定目录。

4. 修改Nacos配置

进入解压后的Nacos目录,找到nacos\conf\application.properties文件,修改其中的配置项:

nacos.core.auth.plugin.nacos.token.secret.key=自定义Key

5. 启动Nacos服务

在Windows环境下,使用以下命令启动Nacos服务(以单机模式为例):

nacos-server-2.3.0\nacos\bin\startup.cmd -m standalone

如果没加 -m standalone参数遇到启动报错,可能是由于默认以集群模式启动。修改startup.cmd文件,将以下内容:

set MODE="cluster"

改为:

set MODE="standalone"
  • 参考图片
    在这里插入图片描述

6. 启动Python示例

在Python环境下,使用Flask搭建一个简单的HTTP服务,并通过Nacos实现服务注册与发现。

# addition_service.py
import threading
import time
import nacos
from flask import Flask, request, jsonify

app = Flask(__name__)

server_addresses = "192.168.22.1:8848"
service_name = "add-service"
client = nacos.NacosClient(server_addresses)
ip = "127.0.0.1"
port = 8085

@app.route('/add', methods=['POST'])
def add():
    data = request.get_json()
    result = data['a'] + data['b']
    return jsonify({'result': result})

# nacos服务
def service_register():
    client.add_naming_instance(service_name, ip, port)

# 服务检测
def service_beat():
    while True:
        client.send_heartbeat(service_name, ip, port)
        time.sleep(5)

# 发布服务,并且注册到nocos
if __name__ == "__main__":
    service_register()
    # 5秒以后,异步执行service_beat()方法
    threading.Timer(5, service_beat).start()
    app.run(port=8085)
  • 参考图片
    在这里插入图片描述
    在这里插入图片描述

7. 使用Python示例调用服务

在另一个Python脚本中,通过Nacos获取服务实例信息,并调用注册的服务:

# main.py
import requests
import nacos

server_addresses = "192.168.22.1:8848"
service_name = "add-service"
client = nacos.NacosClient(server_addresses)
result = client.list_naming_instance(service_name)
result= result.get('hosts')
# 假设你选择第一个实例进行调用
if result:
    target_instance = result[0]
    target_ip = target_instance['ip']
    target_port = target_instance['port']

    target_url = f"http://{target_ip}:{target_port}/add"
    data = {'a': 5, 'b': 3}
    response = requests.post(target_url, json=data)
    print(f"Service Response: {response.json()}")
else:
    print(f"No instances found for service {service_name}")
  • 参考图片
    在这里插入图片描述

通过以上步骤,你就成功地在Windows环境下搭建了Nacos服务,并使用Python演示了服务注册与发现的过程。这为构建基于微服务架构的应用提供了一种可行的方案。还有集群、权限认证等。

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

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

相关文章

软件开发流程分析

软件开发流程分析 相关概念1 原型设计2 产品设计3 交互设计4 代码实现详细步骤 相关概念 前端:自研API,调用第三放API 后端:自研API,第三方API 数据库:Mysql,数据采集,数据迁移 服务器&#xf…

优势怪代码

#include <stdio.h> int main() { int t; scanf("%d", &t); // 读取测试用例的数量 while (t--) { // 对每个测试用例进行处理 int n, max1 0, max2 0, k 0; scanf("%d", &n); // 读取数组的大小 in…

瑞萨RZ/G2L核心板Linux Log目录文件详解

为了排除系统问题&#xff0c;监控系统健康状况以及了解系统与应用程序的交互方式&#xff0c;我们需要了解各log文件的作用&#xff0c;以G2L中yocto文件系统为例&#xff0c;在系统/var/log/目录下会存放记录系统中各个部分的log文件作用如下&#xff1a; 1. 文件详情 下图…

decomposition-based multi-objective algorithm4SPDPTW

关键词 文章概述 研究背景 多目标选择性接送和配送问题&#xff08;PDPs&#xff09;&#xff1a;研究涉及多目标选择性接送和配送问题&#xff0c;这些问题传统上从单一目标角度进行探讨&#xff0c;以寻找最具盈利性的请求集合&#xff0c;同时遵守一系列限制条件。 经济和…

新工科:数据科学与大数据技术实验中心解决方案,赋能高校新工科数智人才培养

随着数字经济蓬勃发展&#xff0c;数字化产业和产业数字化成为就业增长新动能。据人瑞人才与德勤调研显示&#xff0c;未来3年&#xff0c;数字产业化企业最需要运营人员和开发人员&#xff08;包括大数据开发工程师、数据建模开发工程师等&#xff09;&#xff0c;其次是数据分…

一、微前端目标、前端架构的前生今世、微前端架构优势和劣势、软件设计原则与分层

1、目标 2、前端架构的前世今生 ① 初始&#xff1a;无架构&#xff0c;前端代码内嵌到后端应用中 ② 后端 MVC 架构&#xff1a;将视图层、数据层、控制层做分离 缺点&#xff1a;重度依赖开发环境&#xff0c;代码混淆严重&#xff08;在调试时&#xff0c;需要启动后端所有…

【VRTK】【VR开发】【Unity】14-移动倍增

课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【背景】 本篇介绍最后一个VRTK提供的Locomotion特性,移动倍增器。提供这个特性的原因,是为了让实际有限的物理空间(比如说我的小房间)能够在游戏中提供大范…

[c++]—vector类___基础版(带你了解vector熟练掌握运用)

&#x1f469;&#x1f3fb;‍&#x1f4bb;作者:chlorine 目录 &#x1f393;标准库类型vector &#x1f393;定义和初始化vector的对象 &#x1f4bb;列表初始化vector对象 &#x1f4bb;创建指定数量的元素 &#x1f576;️值初始化 ❗列表初始化还是值初始化&#xf…

软件设计师——软件工程(一)

&#x1f4d1;前言 本文主要是【软件工程】——软件设计师——软件工程的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304…

JavaFX的对话框

JavaFX的对话框主要分为提示对话框&#xff08;Alert&#xff09;和文件对话框两类&#xff0c;其中提示对话框又分作消息对话框、警告对话框、错误对话框、确认对话框四种。这四种对话框都使用Alert控件表达&#xff0c;并通过对话框类型加以区分。 AlertType.NONE&#xff1…

件夹和文件比较软件VisualDiffer mac功能介绍

VisualDiffer mac是一款运行在MacOS上的文件夹和文件快速比较工具。VisualDiffer可以对不同文件夹中文件或文档做出比较或者比较两个文件的路径。还可以通过UNIS diff命令快速、标准和可靠的比较出各类不同的文件夹和文件结果&#xff0c;使用不同的颜色直观地显示。 VisualDif…

基于单片机智能浇花控制系统设计

**单片机设计介绍&#xff0c;基于单片机智能浇花控制系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的智能浇花控制系统可以通过水泵、传感器和单片机等硬件组件实现自动浇水&#xff0c;减轻人工浇花的工作…

酷滴科技出席浦发银行第七届国际金融科技创新大赛

12月7日&#xff0c;浦发银行全球金融科技创新大赛在上海展开决赛。本届大会以“科技金融&#xff0c;激发创新力量”为主题&#xff0c;聚焦金融行业数字化转型过程中的痛点与难点&#xff0c;旨在探讨新时代下金融科技的新角色、新机遇以及新挑战。酷滴科技CEO张沈分享了酷滴…

网络基础(七):传输层协议介绍

目录 一、TCP协议&#xff08;传输控制协议&#xff09; 1、TCP协议介绍 2、TCP协议特性 3、TCP报文格式 4、TCP的三次握手 4.1TCP三次握手的概念 4.2TCP三次握手流程图 4.3 TCP三次握手阐释说明 5、TCP的四次挥手 5.1TCP四次挥手的概念 5.2TCP四次挥手的流程图 5.…

MySQL数据库——锁-表级锁(表锁、元数据锁、意向锁)

目录 介绍 表锁 语法 特点 元数据锁 介绍 演示 意向锁 介绍 分类 演示 介绍 表级锁&#xff0c;每次操作锁住整张表。锁定粒度大&#xff0c;发生锁冲突的概率最高&#xff0c;并发度最低。应用在MyISAM、InnoDB、BDB等存储引擎中。 对于表级锁&#xff0c;主要…

108.STL adjacent_find算法

adjacent_find 是C STL中的算法之一&#xff0c;用于在指定范围内查找相邻重复的元素&#xff0c;返回第一对相邻重复元素的第一个元素的迭代器。 以下是 adjacent_find 的基本用法&#xff1a; #include <iostream> #include <algorithm> #include <vector>…

Edge浏览器版本更新后Copilot按钮消失的解决应对方式

需求背景 今天突然发现Edge浏览器右上角的Copilot按钮不见了&#xff0c;排查了一下&#xff0c;发现可能是浏览器自动升级到120版本后&#xff0c;关闭了右上角的Copilot按钮。案发现场如下&#xff1a; 原因如下&#xff1a; 说实话&#xff0c;人家这个插件还是很好用的&…

智能优化算法应用:基于人工蜂群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于人工蜂群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于人工蜂群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工蜂群算法4.实验参数设定5.算法结果6.…

基于SpringBoot 校园招聘系统设计与实现(源码+文档+可视化HTML+数据库)

摘 要 基于SpringBoot 校园招聘系统是一种基于Java技术的校园招聘和可视化展示的系统。该系统通过采集和整合各类招聘网站、社交媒体等渠道的数据&#xff0c;对招聘岗位进行深入分析&#xff0c;并将分析结果以直观、易懂的可视化形式呈现。系统能够自动从多个数据源获取招聘…

【Docker】进阶之路:(十二)Docker Composer

【Docker】进阶之路&#xff1a;&#xff08;十二&#xff09;Docker Composer Docker Compose 简介安装 Docker Compose模板文件语法docker-compose.yml 语法说明imagecommandlinksexternal_linksportsexposevolumesvolunes_fromenvironmentenv_fileextendsnetpiddnscap_add,c…