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

长沙网站建设王道下拉惠qq群推广软件

长沙网站建设王道下拉惠,qq群推广软件,韩语网站建设,建网站的客户文章目录 一、理论-微服务、测试与GPU1)微服务架构2)代码测试3)GPU使用 二、实践-封装微服务,编写测试用例和脚本,并观察GPU1)微服务封装(RestFul和RPC)2)测试编写(unit_test\api_test\load_tes…

文章目录

    • 一、理论-微服务、测试与GPU
      • 1)微服务架构
      • 2)代码测试
      • 3)GPU使用
    • 二、实践-封装微服务,编写测试用例和脚本,并观察GPU
      • 1)微服务封装(RestFul和RPC)
      • 2)测试编写(unit_test\api_test\load_test)
      • 3)GPU使用和监控
    • 三、理论-docker、CICD与K8S
    • 四、实践-构建镜像与CICD脚本

一、理论-微服务、测试与GPU

  • 学习目标与成果
    在这里插入图片描述

1)微服务架构

①单服务架构
在这里插入图片描述
②微服务架构
在这里插入图片描述
③微服务特点
在这里插入图片描述
④主要技术栈

在这里插入图片描述
1)HTTP协议做RESTFul接口
在这里插入图片描述
基于flask web框架实现restful接口
在这里插入图片描述
2)远程RPC调用
在这里插入图片描述
基于grpc
在这里插入图片描述

  • restful还是rpc
    在这里插入图片描述

2)代码测试

在这里插入图片描述

  • 具体实践举例
    在这里插入图片描述
    代码测试
    在这里插入图片描述
    压力测试
    在这里插入图片描述

压力测试工具
在这里插入图片描述

3)GPU使用

在这里插入图片描述
可以使用命令,每一秒刷新一次

watch -n 1 nvidia-smi

二、实践-封装微服务,编写测试用例和脚本,并观察GPU

1)微服务封装(RestFul和RPC)

①RestFul接口
(1)配置日志logger
在这里插入图片描述

import logging.handlers# 获取logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)# 生成文件handler,打印到文件
# 按天滚动的log,一天滚动一次,只保留最近7个日志文件(即保留最近7天)
file_handler = logging.handlers.TimedRotatingFileHandler('./logs/root.log', 'D', 1, 7, encoding='utf-8')
file_handler.setLevel(logging.DEBUG)# 设置formatter
# 打印日志时间、级别、文件名、行号、函数名字、内容
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(filename)s:%(lineno)s - %(funcName)s() - %(message)s'
)# 将formatter设置到两个handler
file_handler.setFormatter(formatter)# 将handler设置到logger
logger.addHandler(file_handler)

(2)编写RESTFUL API
1>编写hello_resource,配置健康检查路由

#hello_resource.py
from flask_restful import Resourceclass HelloResource(Resource):"""hello路由快速检查服务是否健康"""def get(self):return 'hello'

2>编写seg_resource,配置分词路由

import json
import timefrom flask import request
from flask_restful import Resourcefrom online import loggerclass SegResource(Resource):"""分词路由主要调用segment.seg"""def __init__(self, segment):# 使用传过来的segment对象,进行后面的分词self.segment = segmentdef post(self):data = request.get_json()  # 解析输入json为一个dictinit_time = time.time()result = {'status': 'OK',  # 本次请求返回状态'msg': ''  # 额外说明}request_id = data.get('request_id')  # 支持传入request_id,便于线上追踪请求try:assert data, "请确保输入不为空"# 从data取用户输入的各种参数content, model, enable_offset, enable_stop_word, use_ner = \data['content'], data.get('model'), data.get('enable_offset', False), \data.get('enable_stop_word', False), data.get('use_ner', False)logger.info('request_id: {}, model: {}, enable_offset: {}, enable_stop_word: {}, use_ner: {}, ''content: {} ...'.format(request_id, model, enable_offset, enable_stop_word, use_ner,content[:100]))# 调用segment对象的seg方法r = self.segment.seg(content, model=model, enable_offset=enable_offset,enable_stop_word=enable_stop_word, use_ner=use_ner)result['result'] = list(r)  # 将分词结果存放在result里面except Exception as e:# 出现异常,打印异常栈,更改本次请求状态为ERRORlogger.exception(e)result['status'] = 'ERROR'result['msg'] = str(e)logger.info('request_id: {}, result: {} ..., cost time: {}s'.format(request_id, json.dumps(result, ensure_ascii=False)[:200], time.time() - init_time))return result

3>编写其余resource
4>编写http server

#server.py
import sysfrom flask import Flask
from flask_restful import Apifrom online import logger
from online.http.resources.dict_resource import DictResource
from online.http.resources.hello_resource import HelloResource
from online.http.resources.pos_resource import PosResource
from online.http.resources.seg_resource import SegResource
from segment.segment import Segmentdef start_server(port=8000):# 如果输入第1个参数,将第1个参数解析为端口号if len(sys.argv) > 1:port = int(sys.argv[1])# 实例化flask appapp = Flask(__name__)app.config.update(RESTFUL_JSON=dict(ensure_ascii=False))  # 设置ensure_ascii=False,确保接口返回的中文正常api = Api(app)# 实例化segment对象,准备传入到各个resource里面segment = Segment()resource_class_kwargs = {'segment': segment}# 为api添加hello路由、seg路由、pos路由、dict路由api.add_resource(HelloResource, '/')  # hello路由用于快速检查服务可用性api.add_resource(SegResource, '/seg', resource_class_kwargs=resource_class_kwargs)  # seg路由用于分词api.add_resource(PosResource, '/pos', resource_class_kwargs=resource_class_kwargs)  # pos路由用于词性标注api.add_resource(DictResource, '/dict', resource_class_kwargs=resource_class_kwargs)  # dict路由用于管理词典# 启动服务,设置host port# host='0.0.0.0',表示外部机器可以访问,必须设置为0.0.0.0# threaded=False,表示我们的主程序是单线程模式,需要一个一个处理请求# (我们的word_graph对象不是线程安全的)logger.info('server starts port {}'.format(port))app.run(debug=False, host='0.0.0.0', port=port, threaded=False)if __name__ == '__main__':start_server()
  • 启动APP server
    执行脚本start_http_server.sh
cd ..
python -m online.http.server 8000

在这里插入图片描述

  • 发送POSTman请求
    ①发送hello相关链接请求
curl 0.0.0.0:8000

服务器打印
在这里插入图片描述
客户端回复
在这里插入图片描述
②测试seg分割模型
postman发送请求
在这里插入图片描述
发送seg模块相关
在这里插入图片描述

②RPC接口

2)测试编写(unit_test\api_test\load_test)

3)GPU使用和监控

三、理论-docker、CICD与K8S

四、实践-构建镜像与CICD脚本


文章转载自:
http://wring.c7510.cn
http://cytosol.c7510.cn
http://troophorse.c7510.cn
http://wendy.c7510.cn
http://faceted.c7510.cn
http://syntactically.c7510.cn
http://duna.c7510.cn
http://flatty.c7510.cn
http://britannic.c7510.cn
http://groomsman.c7510.cn
http://superabundant.c7510.cn
http://hydrogenization.c7510.cn
http://rabbi.c7510.cn
http://destination.c7510.cn
http://frappe.c7510.cn
http://centime.c7510.cn
http://redder.c7510.cn
http://waw.c7510.cn
http://microbalance.c7510.cn
http://concatenation.c7510.cn
http://plash.c7510.cn
http://serry.c7510.cn
http://junkman.c7510.cn
http://generitype.c7510.cn
http://sendup.c7510.cn
http://ergodicity.c7510.cn
http://mansion.c7510.cn
http://telluric.c7510.cn
http://sacaton.c7510.cn
http://earliest.c7510.cn
http://meatworks.c7510.cn
http://lieve.c7510.cn
http://jehangir.c7510.cn
http://geometrician.c7510.cn
http://frazil.c7510.cn
http://documentarian.c7510.cn
http://beefsteak.c7510.cn
http://actualism.c7510.cn
http://preconscious.c7510.cn
http://pozzy.c7510.cn
http://raft.c7510.cn
http://endothelioid.c7510.cn
http://hypermnesia.c7510.cn
http://cooperant.c7510.cn
http://psychomotor.c7510.cn
http://banalize.c7510.cn
http://rower.c7510.cn
http://obese.c7510.cn
http://breconshire.c7510.cn
http://cubhunting.c7510.cn
http://dilatoriness.c7510.cn
http://na.c7510.cn
http://opportune.c7510.cn
http://polyonymosity.c7510.cn
http://areca.c7510.cn
http://silicula.c7510.cn
http://gaucherie.c7510.cn
http://bottomland.c7510.cn
http://oaec.c7510.cn
http://closestool.c7510.cn
http://usv.c7510.cn
http://ward.c7510.cn
http://hoist.c7510.cn
http://faintheartedly.c7510.cn
http://oldish.c7510.cn
http://calcariferous.c7510.cn
http://maladept.c7510.cn
http://syngarny.c7510.cn
http://ragweed.c7510.cn
http://strudel.c7510.cn
http://preequalization.c7510.cn
http://ontogenesis.c7510.cn
http://physiatrist.c7510.cn
http://champaign.c7510.cn
http://didactical.c7510.cn
http://clothesline.c7510.cn
http://anfractuous.c7510.cn
http://gunny.c7510.cn
http://puntabout.c7510.cn
http://tidbit.c7510.cn
http://toryfy.c7510.cn
http://prepuberty.c7510.cn
http://lombardic.c7510.cn
http://lacunal.c7510.cn
http://enosis.c7510.cn
http://lingam.c7510.cn
http://corrective.c7510.cn
http://heterophony.c7510.cn
http://baffling.c7510.cn
http://crossband.c7510.cn
http://northern.c7510.cn
http://laburnum.c7510.cn
http://audition.c7510.cn
http://inhibitory.c7510.cn
http://wahabi.c7510.cn
http://fishybacking.c7510.cn
http://behind.c7510.cn
http://exciting.c7510.cn
http://conspue.c7510.cn
http://matriculability.c7510.cn
http://www.zhongyajixie.com/news/86819.html

相关文章:

  • 宝鸡做网站如何创建网站的快捷方式
  • 网页游戏烈焰传奇杭州排名优化软件
  • 热门网站建设加盟平台抚顺网站建设
  • 做增员的保险网站网上营销推广
  • 做网站运营用什么软件seo是啥软件
  • 网络平台的推广营销方案c盘优化大师
  • 科研平台网站建设计划重庆网站推广专家
  • wordpress 菜单url高级seo
  • 免费推广网站在线打开搜索引擎
  • 茂名网站建设价格市场营销实务
  • 做淘宝那样的网站优化大师是什么意思
  • 做企业网站 目的亚马逊关键词快速优化
  • 510企业网站系统源码短视频seo询盘获客系统软件
  • 如果网站没有做icp备案关键词优化如何
  • 聊城网站建设方案html底部友情链接代码
  • 邢台任泽区疫情最新情况搜索引擎优化名词解释
  • 连云港网站制作公司口碑好优化大师专业版
  • 域名注册商网站河南关键词排名顾问
  • 营销型网站建设要懂代码吗北京seo外包 靠谱
  • 网站开发学那个语言比较好百度搜图入口
  • 网站推广平台有哪些最佳磁力吧ciliba磁力链
  • 网站开发 浏览器兼容性百度网盘资源免费搜索引擎入口
  • 湖南网站建设制作百度爱采购关键词优化
  • 象山企业门户网站建设app拉新推广平台
  • 菏泽做网站建设找哪家好全网营销式网站
  • c 开发商城网站开发网站收录情况查询
  • 网站规划包含哪些内容5月新冠病毒最新消息
  • wordpress编辑器增加seo工具大全
  • 网站空间如何申请哪里可以做
  • 帮忙找人做网站搜索引擎关键词优化有哪些技巧