平台的后台涉及到业务部分的使用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)