栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python注册nacos服务

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python注册nacos服务

根据nacos open api    Open API 指南

主要是实现以下接口:
创建服务
注册实例
注销实例
删除服务
发送实例心跳 

实现demo如下:

一个web服务1     http_server1.py

# coding:utf-8

import socket

from multiprocessing import Process

def handle_client(client_socket):
    """
    处理客户端请求
    """
    request_data = client_socket.recv(1024)
    # print("request data:", request_data)
    # 构造响应数据
    response_start_line = "HTTP/1.1 200 OKrn"
    response_headers = "Server: My serverrn"
    response_body = "Hello Python 1"
    response = response_start_line + response_headers + "rn" + response_body

    # 向客户端返回响应数据
    client_socket.send(bytes(response, "utf-8"))

    # 关闭客户端连接
    client_socket.close()


if __name__ == "__main__":
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind(("", 8001))
    server_socket.listen(128)

    while True:
        client_socket, client_address = server_socket.accept()
        # print("[%s, %s]用户连接上了" % client_address)
        handle_client_process = Process(target=handle_client, args=(client_socket,))
        handle_client_process.start()
        client_socket.close()

一个web服务2     http_server2.py

# coding:utf-8

import socket

from multiprocessing import Process

def handle_client(client_socket):
    """
    处理客户端请求
    """
    request_data = client_socket.recv(1024)
    # 构造响应数据
    response_start_line = "HTTP/1.1 200 OKrn"
    response_headers = "Server: My serverrn"
    response_body = "Hello Python 2"
    response = response_start_line + response_headers + "rn" + response_body

    # 向客户端返回响应数据
    client_socket.send(bytes(response, "utf-8"))

    # 关闭客户端连接
    client_socket.close()


if __name__ == "__main__":
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind(("", 8002))
    server_socket.listen(128)

    while True:
        client_socket, client_address = server_socket.accept()
        # print("[%s, %s]用户连接上了" % client_address)
        handle_client_process = Process(target=handle_client, args=(client_socket,))
        handle_client_process.start()
        client_socket.close()

创建服务    nacos_server_create.py

import requests

params = {'serviceName': 'Python', 'protectThreshold': '0'}
url = "http://localhost:8848/nacos/v1/ns/service"

res = requests.post(url, params=params)
print(res.text)

注册实例1   nacos_instance_create1.py

import requests

params = {'ip': '192.168.20.110', 'port': '8001','serviceName':'Python'}
url = "http://localhost:8848/nacos/v1/ns/instance"

res = requests.post(url, params=params)
print(res.text)

注册实例2  nacos_instance_create2.py

import requests

params = {'ip': '192.168.20.110', 'port': '8002','serviceName':'Python'}
url = "http://localhost:8848/nacos/v1/ns/instance"
res = requests.post(url, params=params)
print(res.text)

实例1发送心跳    nacos_instance_beat1.py

import requests
import json
import time

params = {}
url = "http://localhost:8848/nacos/v1/ns/instance/beat?serviceName=Python&beat=%7b%22ip%22%3a%22192.168.20.110%22%2c%22metadata%22%3a%7b%7d%2c%22port%22%3a8001%2c%22scheduled%22%3atrue%2c%22serviceName%22%3a%22Python%22%2c%22weight%22%3a1%7d"
#模拟持续发送心跳
for num in range(0,2000):
    res = requests.put(url, data=json.dumps(params))
    print(res.text)
    time.sleep(2)

实例2发送心跳   nacos_instance_beat2.py

import requests
import json
import time

params = {}
url = "http://localhost:8848/nacos/v1/ns/instance/beat?serviceName=Python&beat=%7b%22ip%22%3a%22192.168.20.110%22%2c%22metadata%22%3a%7b%7d%2c%22port%22%3a8002%2c%22scheduled%22%3atrue%2c%22serviceName%22%3a%22Python%22%2c%22weight%22%3a1%7d"

#模拟持续发送心跳
for num in range(0,2000):
    res = requests.put(url, data=json.dumps(params))
    print(res.text)
    time.sleep(2)

注销实例   nacos_instance_delete

import requests

params = {}
url = "http://localhost:8848/nacos/v1/ns/instance?serviceName=Python&ip=192.168.1.110&port=8001"

res = requests.delete(url, params=params)
print(res.text)

删除服务  nacos_service_delete.py

import requests

params = {}
url = "http:/localhost:8848/nacos/v1/ns/service?serviceName=Python"
res = requests.delete(url, params=params)
print(res.text)

模拟测试:

启动待接入web服务1,web服务2同1:

 可以在浏览器看到启动的服务1,服务2同1:

 创建服务:

 注册实例1,实例2同1:

 发送实例1心跳,实例2同1:

 在nacos中可以查看到注册的实例详情:

 添加网关配置,并通过网关随机访问两个实例:

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932545.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号