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

server/2025/1/13 15:51:59/

平台的后台涉及到业务部分的使用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.ppmy.cn/server/158026.html

相关文章

RAID储存技术

RAID独立磁盘冗余技术是一种把2个或者多个HDD或SSD合并为一个协调的存储单元或列阵&#xff0c;从而预防数据丢失的技术&#xff0c;其最早由加州大学伯克利分校的计算机科学家David Patterson、Garth Gibson和Randy Katz在1987年提出。他们的研究论文“关于RAID的论证”提出了…

使用Logstash 将Mysql的数据导入ElasticSearch中

目录 1 .Logstash官网 2. 准备工作 3.创建配置文件 4. 启动 5. 版本不一致导致的无法启动 6.目录写错说明 1 .Logstash官网 Logstash&#xff1a;收集、解析和转换日志 | Elastichttps://www.elastic.co/cn/logstash 首先在官网上选择下载 2. 准备工作 Mysql的jar包下…

一个基于Spring Boot的智慧养老平台

以下是一个基于Spring Boot的智慧养老平台的案例代码。这个平台包括老人信息管理、健康监测、紧急呼叫、服务预约等功能。代码结构清晰&#xff0c;适合初学者学习和参考。 1. 项目结构 src/main/java/com/example/smartelderlycare├── controller│ ├── ElderlyCon…

uniapp中rpx和upx的区别

在 UniApp 中&#xff0c;rpx 和 upx 是两种不同的单位&#xff0c;它们的主要区别在于适用的场景和计算方式。 ### rpx&#xff08;Responsive Pixel&#xff09; - **适用场景**&#xff1a;rpx 是一种响应式单位&#xff0c;主要用于小程序和移动端的布局。 - **计算方式**…

HarMonyOS 鸿蒙系统使用 Grid构建网格

网格布局是由“行”和“列”分割的单元格所组成&#xff0c;通过指定“项目”所在的单元格做出各种各样的布局。网格布局具有较强的页面均分能力&#xff0c;子组件占比控制能力&#xff0c;是一种重要自适应布局&#xff0c;其使用场景有九宫格图片展示、日历、计算器等。 Ar…

论文阅读:Searching for Fast Demosaicking Algorithms

今天介绍一篇有关去马赛克的工作&#xff0c;去马赛克是 ISP 流程里面非常重要的一个模块&#xff0c;可以说是将多姿多彩的大千世界进行色彩还原的重要一步。这篇工作探索的是如何从各种各样的去马赛克算法中&#xff0c;选择最佳的一种。 Abstract 本文提出了一种方法&…

同时支持ERC721和ERC1155数字资产管理的智能合约架构

一、全景洞察 在 NFT 市场中&#xff0c;这款基于 ERC1967&#xff08;代理合约&#xff09;和 ERC11822&#xff08;可升级代理&#xff09;架构的智能合约产品&#xff0c;宛如一位幕后超级英雄&#xff0c;为各类 NFT 业务提供坚实的技术支撑与多样化功能保障。简单来说&…

GNSS经典误差搜索记录:对流层误差

GNSS&#xff08;全球导航卫星系统&#xff09;中的对流层延迟误差是由于电磁波信号在通过未被电离的中性大气层时产生的延迟&#xff0c;这种延迟与地面气候、大气压力、温度及湿度等因素密切相关。对流层延迟是GNSS定位的主要误差源之一&#xff0c;尤其是在高精度定位应用中…