在Windows环境下搭建Nacos服务与Python开发示例
Nacos是一个开源的动态服务发现、配置和服务管理平台。本文将介绍在Windows环境下搭建Nacos服务,并提供一个简单的Python示例,演示如何通过Nacos实现服务注册与发现。
- 官方提示:Nacos定义为一个IDC内部应用组件,并非面向公网环境的产品,建议在内部隔离网络环境中部署,强烈不建议部署在公共网络环境。
官网:https://nacos.io/zh-cn/docs/deployment.html
1. Java环境
(安装与环境配置略)
- 参考图片
2. 下载与配置Maven
下载Maven,并配置环境变量。具体步骤如下:
- 下载Maven:apache-maven-3.9.6-bin.zip
- 解压至指定目录。
- 配置环境变量:
- 新建系统变量
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演示了服务注册与发现的过程。这为构建基于微服务架构的应用提供了一种可行的方案。还有集群、权限认证等。