Framework

Serverless 技术在格灵深瞳的落地实践

早过忘川 提交于 2020-08-11 12:41:43
格灵深瞳是一家全国领先的人工智能物联网科技企业。专注于把先进的人工智能科技转化为具备低成本、大规模部署能力的产品和服务,并深度结合应用场景,为用户提供高性能、 可靠实用的智慧解决方案。目前,在智慧安防、智能零售、智慧银行和新能源领域,为遍布全国和全世界的客户提供包含智能传感器、 智能识别、智能云计算和服务机器人的综合智能解决方案和服务。 随着业务的快速增长,需求迭代、资源投入、运维压力也随之变的越来越紧迫。怎样提升研发效能、保障业务快速上线,怎样提升资源利用效率、降低成本开销,怎样减少运维的压力、又能保障系统的可靠运转,逐渐成为我们的重点诉求。在此基础上,我们开始考虑引入新的技术,并做了一些调研,最终锁定了 Serverless 技术。 Serverless 想必大家或多或少都有接触,也是最近云计算领域非常火的一个技术方向,核心是帮用户屏蔽了底层的资源、提供按需请求、按需使用、按需付费的一种全新服务,像腾讯云的云函数 SCF 和对象存储等都是 Serverless 化的服务。在这里也和大家分享下,我们业务和 Serverless 是如何结合的。 我们考虑使用 Serverless 技术方案是经过一些调研,结合我们自己的业务需求最终决定的,主要有以下几点: 我们服务的客户与场景流量潮汐现象很明显,Serverless 自动弹性伸缩能力可以为我们解决这个问题,比起普通服务器

基于 API 网关 + 云函数 SCF 部署 Serverless 外卖订单系统

╄→гoц情女王★ 提交于 2020-08-11 09:44:05
API 网关结合云函数 SCF 的使用场景非常丰富,本文将介绍如何基于 API 网关+云函数 SCF 快速部署 Serverless 的外卖订单系统。 消息推送使用的典型场景 外卖订单系统架构图 Demo 实战 1. 安装Serverless Framework npm install -g serverless 2. 初始化项目模板 sls init -t websocket-order 3. 查看项目目录 下载到本地后,查看项目目录结构如下: 包含 DB、网关、函数等多个子模块。 db 目录用于创建 PG Serverless 数据库实例 apigateway 用于创建对应的 API : /bill 下单 API,HTTP 类型 /get_shop_info,获取店铺菜单 API /pgws,用于做消息推送的 websocket API 函数列表如下: 消息推送相关函数: 注册函数 ws_register.py, 配置 DB 的环境变量 传输函数 ws_trans.py ,配置 DB 的环境变量以及 apiid= 消息推送API 注销函数 ws_unregister.py ,配置 DB 的环境变量以及 apiid= 消息推送API 下单函数 bill.py , 配置 DB 的环境变量以及 apiid= 消息推送API 拉取店铺信息函数 get_shop_info.py,配置

从企业微信机器人到小爱同学,用 Serverless 实现生活智能化!

北城余情 提交于 2020-08-11 08:56:39
通过定时触发器,可以简单快速地定制一个企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,还能实现定时推送新闻、天气,甚至是监控告警的小功能。 使用企业微信机器人 在企业微信中,选择添加机器人: 之后,我们可以根据文档进行企业微信机器人的基础功能定制: 以下是用 curl 工具往群组推送文本消息的示例(注意要将 url 替换成机器人的 webhook 地址,content 必须是 utf8 编码): curl '企业微信机器人地址' \ -H 'Content-Type: application/json' \ -d ' { "msgtype": "text", "text": { "content": "hello world" } }' 通过 Python 语言实现: url = "" data = { "msgtype": "markdown", "markdown": { "content": "hello world", } } data = json.dumps(data).encode("utf-8") req_attr = urllib.request.Request(url, data) resp_attr = urllib.request.urlopen(req_attr) return_msg = resp_attr.read().decode("utf

超大文件上传和断点续传的源代码

只谈情不闲聊 提交于 2020-08-11 08:47:50
总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件切片(分块),但这不是我们现在说的重点,我们要做的事是保证在网络中断后1G的文件已上传的那部分在下次网络连接时不必再重传。所以我们本地在上传的时候,要将大文件进行分片,比如分成1024*1024B,即将大文件分成1M的片进行上传,服务器在接收后,再将这些片合并成原始文件,这就是分片的基本原理。断点续传要求本地要记录每一片的上传的状态,我通过三个状态进行了标记(wait loading finish),当网络中断,再次连接后,从断点处进行上传。服务器通过文件名、总片数判断该文件是否已全部上传完成。 下面来说细节: 1、首先获取文件(音视频、图片) 分两种情况,一种是在相册库里直接获取,一种是调用相机。如果是通过UIImagePickerView来获取(细节不详述,网上一大堆),我们会发现当你选定一个视频的时候,会出现图1的压缩页面,最后我们的app获取的视频就是这个经过压缩后的视频(不是视频库里的原始视频,这里有个注意点,操作完该压缩视频后记得释放,系统不会帮你释放的,需要你手动来操作,下面会说到),然后通过UIImagePickerView的协议方法中的- ( void

c++ web 框架 ---ricky.chu

情到浓时终转凉″ 提交于 2020-08-11 06:39:11
C++ 也是有web 框架的 . 我试用过 2 个. 先 说下 treefrog 不记得当时有什么问题, 我从 最新的1.23版本一直 降到 1.19 版本才能使用 . 做了个 博客发表 之类的 样板 , 发现它使用的技术确实有些过时, 还是 由服务器发出 html 文本. 程序代码看起来也不爽 , 不好怎么描述这种感觉 , 这是日本人写的程序. 第二个就是 CWF 了 . 这个 确实不错, 首先它的函数和结构全和 java 名类似 . chain.doFilter doGet doPost doPut doDelete doOption 有此功能 , 可以不用 doPost 包打天下了, 可以按照规矩, 分开使用了. 有服务器代码 在手, 什么跨域问题 , 解决方法 不要太多. 第二, 采用 MVC 架构 . 自行添加 controller, 如果你有时间,自行加个 配置文件 web.xml 来处理 过滤器,控制器之类的, 这个看起来 是不是和 什么 springxxx 框架 有点像. 改成一模一样 的名字都可以. 第三 . 支持 json 非常好, 有前端框架的话, 两个支持都挺好. 代码也看得比较舒服, 愿意让人去认真看一看. 下面是一些网友提供的资料: CppCMS http://cppcms.com/wikipp/en/page/main 以高性能著称,MVC,内容较全

你知道Spring是怎么解析配置类的吗?

被刻印的时光 ゝ 提交于 2020-08-11 05:36:59
你知道Spring是怎么解析配置类的吗? 目录 Spring中的第二行代码 ClassPathBeanDefinitionScanner源码分析 1、通过findCandidateComponents方法完成扫描 2、执行postProcessBeanDefinition方法 3、执行processCommonDefinitionAnnotations方法 4、注册BeanDefinition Spring是怎么解析配置类的? 1、解析时机分析 2、解析源码分析 总结 彻底读懂Spring(二)你知道Spring是怎么解析配置类的吗? 推荐阅读: Spring官网阅读系列 彻底读懂Spring(一)读源码,我们可以从第一行读起 Spring执行流程图如下: 如果图片显示不清楚可以访问如下链接查看高清大图: Spring执行流程图 这个流程图会随着我们的学习不断的变得越来越详细,也会越来越复杂,希望在这个过程中我们都能朝着精通Spring的目标不断前进! 在上篇文章我们学习了Spring中的第一行代码,我们已经知道了Spring中的第一行代码其实就是创建了一个AnnotatedBeanDefinitionReader对象,这个对象的主要作用就是注册bd(BeanDefinition)到容器中。并且在创建这个对象的过程中,Spring还为容器注册了开天辟地的几个bd

腾讯“神盾-联邦计算”平台带你翻越数据合作的重重大山

别来无恙 提交于 2020-08-11 05:17:56
大数据及人工智能飞速发展的今天,法律法规和信任问题严重阻碍了企业之间的数据流通,数据孤岛问题像一只无形的手挡在了企业之间,因为缺乏有价值的数据合作,各行业用户获取成本居高不下。为了满足企业间数据安全共享、释放数据价值,助力业务创新,腾讯“神盾-联邦计算”平台应运而生! 面向数据安全与隐私保护的多方计算技术研究最早可追溯到上世纪70年代,而新兴的联邦学习概念在国内从2019年开始蓬勃发展。 “神盾-联邦计算”平台的成型也正是这个时期,经过2-3个月系统评测、安全算法评测及现场答辩,2019年12月“神盾-联邦计算”代表腾讯获得了信通院颁发的基于多方安全计算的数据流通产品证书,全国首批获得该证书的团队只有5家。目前神盾正在主导信通院联邦学习标准制定。 腾讯“神盾-联邦计算”平台应运而生 大数据及人工智能飞速发展的今天,法律法规和信任问题严重阻碍了企业之间的数据流通,数据孤岛问题像一只无形的手挡在了企业之间,因为缺乏有价值的数据合作,各行业用户获取成本居高不下,银行信用卡不良用户占比全面上升,金融信贷审核成本陡增,AI发展也遭遇前所未有的瓶颈,为了让这些企业在合法合规、安全、高效无损的基础上进行数据合作,腾讯“神盾-联邦计算”平台应运而生! 这是一个主要基于联邦学习、多方安全计算(MPC)、区块链、可信计算等安全技术的分布式计算平台,产品针对机器学习算法进行定制化的隐私保护改造

第一课时:PowerDesigner15的基本介绍

瘦欲@ 提交于 2020-08-11 04:01:52
1.1.1.PowerDesigner 的基本内容 SAP Sybase PowerDesigner 官方定义: SAP SybasePowerDesigner 是针对 数据体系结构 、 信息体系结构 和 企业体系结构 的行业领先的建模和元数据管理 解决方案 。 包括内容: 内容 用户 企业流程建模( BPM ) 企业用户( CIO ,企业架构师,业务战略师、规划师)、需求分析人员、系统分析人员、软件架构师 数据建模 需求分析人员、系统分析人员、软件架构师、软件设计师、数据库管理人员 面向对象建模 需求分析人员、系统分析人员、软件架构师、软件设计师 PowerDesigner 强大的模型管理同步功能 管理员 发展历程: 最早由 中国人 王晓昀 完成编制 1989 - 在法国发布第一个商用版本 AMC*Designor( 版本 2.0) 1990-V2 ( CDM ,法语) 1991-V3 ( PDM ,英语) 1992 - 在美国发布第一个商用版本 S-Designor(V4 ,企业版 ) 1994-V5 (流程分析) 1995 -S-Designor 改名为 PowerDesigner 1996-V6 (支持 DB ) 1997 - 发布 PowerDesigner6.0 ( +DW ) 1999-V7 支持 UML 2000-V7.5 (知识库 Repository )

使用 Amazon SageMaker 运行基于 TensorFlow 的中文命名实体识别

你说的曾经没有我的故事 提交于 2020-08-11 03:51:32
  一、背景   利用业内数据构建知识图谱是很多客户正在面临的问题,其中中文命名实体识别(Named Entity Recognition,简称NER)是构建知识图谱的一个重要环节。我们在与客户的交流中发现,现有的NER工具(比如Jiagu)对于特定领域的中文命名实体识别效果难以满足业务需求,而且这些工具很难使用自定义数据集训练。因此客户迫切想使用业内最先进的算法在行业内数据集上进行训练,以改进现有NER工具的不足。本文将介绍如何使用Amazon SageMaker运行基于TensorFlow的中文命名实体识别。   命名实体识别,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。命名实体识别是信息提取、问答系统、句法分析、机器翻译、知识图谱等应用领域的重要基础工具。   英语中的命名实体具有比较明显的形式标志(即实体中的每个词的第一个字母要大写),所以实体边界识别相对容易,任务的重点是确定实体的类别。和英语相比,中文命名实体识别任务更加复杂,而且相对于实体类别标注子任务,实体边界的识别更加困难。   二、中文命名实体识别算法   NER一直是自然语言处理(NLP)领域中的研究热点,从早期基于词典和规则的方法,到传统机器学习的方法,到近年来基于深度学习的方法,NER研究进展的大概趋势大致如下图所示。      早期的命名实体识别方法基本都是基于规则的

OSGi 系列(三)之 bundle 详解

一笑奈何 提交于 2020-08-11 03:12:33
OSGi 系列(三)之 bundle 详解 1. 什么是 bundle bundle 是以 jar 包形式存在的一个模块化物理单元,里面包含了代码,资源文件和元数据(metadata),并且 jar 包的物理边界也同时是运行时逻辑模块的封装边界。 2. MANIFEST.MF 规范 位置:META-NF/MANIFEST.MF 文件格式 属性声明的一般格式是 name: value 一行不超过 72 个字符,下一行则由单个空格字符开始 3. bundle 常用标识符 标识符 说明 Bundle-Category 描述用逗号分隔的分类名称 Bundle-Activator 启动和停止 bundle 的类名称 Bundle-Classpath 定义用逗号分隔的路径,包含的内容有 JAR 文件和包含类和资源的目录(bundle内部) .点号代表 JAR 文件的根目录,同时也是默认的 Bundle-Copyright 描述 bundle 的版权信息 Bundle-Description 对 bundle 的描述信息 Bundle-Localization 描述 bundle 的本地文件地址,默认值是 OSGI-INF/l10n/bundle Bundle-ManifestVers on Bundle-Name 定义了一个具有可读性的名字来标识 bundle。应该是一个简短易读没有空格的名