当前位置: 首页 > article >正文

开发指南090-使用python做微服务

平台的后台涉及到业务部分的使用java开发,基于springcloud。

涉及到大数据、AI、网页爬虫等领域的使用python开发。

使用python开发微服务过程如下:

1、读取bootstrap.yaml配置

     def read_yaml(file):
    '''读取配置文件'''
    with open(file, 'r', encoding='utf-8') as f:
        return yaml.load(f.read(), Loader=yaml.FullLoader)

2、从nacos中获取配置

def get_conf(config_dict):
    '''
    从naocs上获取配置信息,将配置变量声明为全局变量,供调用
    :return: dict配置信息
    '''
    global nacos_conf
    config_server = config_dict['server']
    client = nacos.NacosClient(config_server['address'], namespace=config_server['namespace'])
    nacos_conf = client.get_config(data_id=config_server['dataid'], group=config_server['group'])
    nacos_conf = yaml.load(nacos_conf, Loader=yaml.FullLoader)
    return nacos_conf

3、启动后注册服务


def regis_server_to_nacos(config_dict):
    '''注册服务到nacos'''
    config_server = config_dict['server']
    client = nacos.NacosClient(config_server['address'], namespace=config_server['namespace'])
    client.add_naming_instance(config_server['name'], ip=IOUtil.getHost(), port=config_server['port'], cluster_name=None, weight=1, metadata=None, enable=True, healthy=True, ephemeral=False, group_name=config_server['group'])

4、接口服务(引入swagger)

from flask import Flask, request, jsonify

app = Flask(__name__)
swagger = Swagger(app)

@app.route('/QLM-Scrapping/scrapSingleTask/<task_id>', methods=['POST', 'GET'])
@swag_from('scrapSingleTask.yaml')

def get_scrape_single_task(task_id):  

5、访问数据库

import pymysql

    config = nacos_conf['mysql']
    conn = pymysql.connect(
        host=config['host'],
        port=config['port'],
        user=config['user'],
        password=config['password'],
        db=config['db'],
        charset='utf8',
        # autocommit=True,    # 如果插入数据,, 是否自动提交? 和conn.commit()功能一致。
    )
    cur = conn.cursor()
    cur.execute(sql)


http://www.kler.cn/a/503062.html

相关文章:

  • 【Unity高级】一文了解Unity 中的条件编译(附所有指令)
  • 软件工程和项目管理领域 - CMMI 极简理解
  • VUE3 自定义指令的介绍
  • GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目
  • 计算机网络 (36)TCP可靠传输的实现
  • 信息安全、网络安全和数据安全的区别和联系
  • centos systemd方式配置jar开机自启
  • 数据结构:栈(Stack)和队列(Queue)—面试题(二)
  • ssh2-sftp-client和ssh2配合使用js脚本快速部署项目到服务器
  • 力扣264. 丑数 II
  • 后端接口获取的对象包含图片,渲染后端图片,拼接地址渲染,循环列表,vue+uniapp
  • Visual Studio Code (VSCode)为当前项目设置保存时自动格式化
  • 禅道 ip 地址变换后的修改
  • 有限元分析学习——Anasys Workbanch第一阶段笔记(11)横梁中点挠度仿真结果与计算结果对比
  • 罗德与施瓦茨ZN-Z135,26.5G经济型网络分析仪校准套件
  • CSS语言的语法
  • iOS - runtime总结
  • Github 2025-01-13 开源项目周报 Top15
  • 【图像去噪】论文精读:High-Quality Self-Supervised Deep Image Denoising(HQ-SSL)
  • MyBatis 性能优化
  • c++自定义String
  • 【Pytorch实用教程】PyTorch 中如何输出模型参数:全面指南
  • 战略与规划方法——深入解析波士顿矩阵(BCG Matrix):分析产品组合的关键工具
  • Python----Python高级(函数基础,形参和实参,参数传递,全局变量和局部变量,匿名函数,递归函数,eval()函数,LEGB规则)
  • python中bug修复案例-----数据类型不匹配错误导致的bug修复
  • 如何在应用或系统中正确解析和渲染淘宝商品详情API接口返回的HTML内容?