场景应用

如何让C/S应用支持多端(PC、Android、iOS)同时登录?

人走茶凉 提交于 2019-11-29 20:48:37
在C/S架构中,通常是使用 UserID 作为唯一标志来标记每一个用户的,也就是说,对于一个指定的UserID,只能有一个客户端在线。 如果我们开发的系统要支持同帐号多设备同时登录的场景,即需要像微信一样,在PC端登录的同时,也可以使用同一个帐号登录移动端(iOS或Android),那么,如何才能做到了? 解决方案的原理是比较简单的:既然C/S系统要求UserID作为用户标记必须是唯一的,那么我们就引入一个称为“LoginID”的概念,对于同一个用户,在不同类型的设备上就使用不同的LoginID,但是这些LoginID都指向同一个真正的UserID。 一. LoginID 与 UserID 1. 不需要支持同帐号多设备同时登录的简单场景 在之前 不支持同帐号多设备同时登录的场景中(简称“单设备登录”场景),登录用的帐号就是真正的UserID,也就是说底层框架中各个API(各个方法以及事件)的参数涉及到的用户帐号都是真正的UserID。比如,一个帐号abc001,该帐号是存在于数据库的用户表中的;使用abc001登录到服务器,在整个的运作过程中,服务端正是使用abc001来标记对应的客户端实例。在该场景中,不会存在多个运行的客户端实例都对应帐号abc001的情况。如果有个客户端已经使用abc001登录,然后再用该帐号在其它地方登录,默认的机制是会把之前登录的那个客户端挤掉线。 2.

腾讯云AI应用产品总监王磊:AI 在传统产业的最佳实践

依然范特西╮ 提交于 2019-11-29 18:58:17
欢迎大家前往 腾讯云+社区 ,获取更多腾讯海量技术实践干货哦~ 背景:5月23-24日,以“焕启”为主题的腾讯“云+未来”峰会在广州召开,广东省各级政府机构领导、海内外业内学术专家、行业大咖及技术大牛等在现场共议云计算与数字化产业创新发展。 腾讯云AI应用产品总监王磊 在云+未来峰会上做了主题为 《AI在传统行业的最佳实践》 的分享,以下内容整理自演讲。 王磊:各位领导、各位来宾、合作伙伴、朋友们,大家上午好! 刚才各位演讲嘉宾给大家分享了非常精彩的算法、产品各种精彩内容,我在这里主要和大家分享一下精彩的产品和算法是怎么落地的。我今天分享的题目是《AI在传统行业的最佳实践》。我是来自腾讯云AI应用产品中心的王磊。 我的分享分为三部分。首先超级大脑,智能矩阵。昨天小马哥提出了超级大脑的概念,我们今天看从AI应用的角度,我们看超级大脑投射下来的智能矩阵,分为三部分:智能IssA、TI MAtrix,一部分是超级大脑,一部分是APPs,包括城市超级大脑、包括零售、医疗,我们想通过这样的智能矩阵,给客户联合我们的合作伙伴一起,提供行业超级大脑提供智能应用,提供智能服务。 我们给客户数据、算力、算法和场景,我们在实践活动中认为,场景非常重要和关键,第一数据来源于场景,第二场景决定了算力,第三算法必须要适配场景。我们可以看到,我们现在的AI已经在非常多的场景,非常多的行业

HBase的应用场景及特点

眉间皱痕 提交于 2019-11-29 11:43:18
一、Hbase能做什么? 1. 海量数据存储: 上百亿行 x 上百万列 并没有列的限制 当表非常大的时候才能发挥这个作用, 最多百万行的话,没有必要放入hbase中 2. 准实时查询: 百亿行 x 百万列,在百毫秒以内 二、Hbase在实际场景中的应用: 1. 交通方面: 船舶GPS信息,全长江的船舶GPS信息,每天有1千万左右的数据存储。 2. 金融方面: 消费信息,贷款信息,信用卡还款信息等 3. 电商: 淘宝的交易信息等,物流信息,浏览信息等 4. 移动: 通话信息等,都是基于HBase的存储。 Hbase的特点: 1. 容量大: 传统关系型数据库,单表不会超过五百万,超过要做分表分库,不会超过30列 Hbase单表可以有百亿行、百万列,数据矩阵横向和纵向两个维度所支持的数据量级都非常具有弹性 2. 面向列: 面向列的存储和权限控制,并支持独立检索,可以动态增加列,即,可单独对列进行各方面的操作 列式存储,其数据在表中是按照某列存储的,这样在查询只需要少数几个字段的时候,能大大减少读取的数量 3. 多版本: Hbase的每一个列的数据存储有多个Version,比如住址列,可能有多个变更,所以该列可以有多个version 4. 稀疏性: 为空的列并不占用存储空间,表可以设计的非常稀疏。 不必像关系型数据库那样需要预先知道所有列名然后再进行null填充 5. 拓展性:

285.软件体系结构评估概述

送分小仙女□ 提交于 2019-11-29 10:29:56
7.1.1 评估关注的质量属性   软件体系结构的设计是整个软件开发过程中关键的一步。对于当今世界上庞大而复杂的系统来说,如果没有一个合适的体系结构而要有一个成功的软件设计几乎是不可想象的。   不同类型的系统需要不同的体系结构,甚至一个系统的不同子系统也需要不同的体系结构。体系结构的选择是一个软件系统设计成败的关键。但是,怎样才能知道为软件系统所选用的体系结构是否恰当?如何确保按照所选用的体系结构能顺利地开发出成功的软件产品呢?要回答这些问题,需要使用专门的方法对软件体系结构进行分析和评估。   体系结构评估可以只针对一个体系结构,也可以针对一组体系结构。在体系结构评估过程中,评估人员所关注的是系统的质量属性,所有评估方法所普遍关注的质量属性有以下几个。   1.性能   性能是指系统的响应能力,即要经过多长时间才能对某个事件作出响应,或者在某段时间内系统所能处理的事件的个数。经常用单位时间内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量的表示。性能测试经常要使用基准测试程序(用以测量性能指标的特定事务集或工作量环境)。   2.可靠性   可靠性是软件系统在应用或系统错误面前、在意外或错误使用的情况下维持软件系统的功能特性的基本能力。可靠性是最重要的软件特性,通常用它衡量在规定的条件和时间内,软件完成规定功能的能力。可靠性通常用平均失效等待时间(Mean

分布式缓存Redis应用场景解析

℡╲_俬逩灬. 提交于 2019-11-29 09:38:00
Redis 的应用场景非常广泛。虽然Redis是一个key-value的内存数据库,但在实际场景中,Redis经常被作为缓存来使用,如面对数据高并发的读写、海量数据的读写等。 举个例子,A网站首页一天有100万人访问,其中有一个“积分商城”的板块,要直接从数据库查询,那么一天就要多消耗100万次数据库请求。如果将这些数据储存到Redis(内存)中,要用的时候,直接从内存调取,不仅可以大大节省系统直接读取磁盘来获得数据的IO开销,提高服务器的资源利用率,还能极大地提升速度。 随着日益增长的用户量以及业务高峰期剧增的访问量,通过扩容一次资源就能够解决问题的方式已不再有显著成效,并且运维Redis也比之前更易出现差错。而华为云分布式缓存Redis就很好地解决了自建Redis的一些问题,应用场景也十分丰富。比如很多大型电商网站、视频网站和游戏应用等,存在大规模数据访问,对数据查询效率要求高。使用华为云 分布式缓存Redis服务 可实现页面缓存、应用缓存、状态缓存、事件并行处理,能够有效减少数据库磁盘IO,提高数据查询效率,减轻管理维护工作量,降低数据库存储成本。对传统磁盘数据库是一个重要的补充,成为了互联网应用,尤其是支持高并发访问的互联网应用必不可少的基础服务之一。 具体而言,分布式缓存Redis可用于以下场景: 1、页面缓存 Redis可将Web页面的内容片段,包括HTML

几个常用算法的适应场景及其优缺点!

℡╲_俬逩灬. 提交于 2019-11-29 07:56:30
机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法,诸如SVM,GBDT,Adaboost,现在 深度学习 很火热, 神经网络 也是一个不错的选择。 假如你在乎精度(accuracy)的话,最好的方法就是通过交叉验证(cross-valida ti on)对各个算法一个个地进行 测试 ,进行比较,然后调整参数确保每个算法达到最优解,最后选择最好的一个。但是如果你只是在寻找一个“足够好”的算法来解决你的问题,或者这里有些技巧可以参考,下面来分析下各个算法的优缺点,基于算法的优缺点,更易于我们去选择它。 1.天下没有免费的午餐 在机器学习领域,一个基本的定理就是“没有免费的午餐”。换言之,就是没有算法能完美地解决所有问题,尤其是对监督学习而言(例如预测建模)。 举例来说,你不能去说神经网络任何情况下都能比决策树更有优势,反之亦然。它们要受很多因素的影响,比如你的数据集的规模或结构。 其结果是,在用给定的测试集来评估性能并挑选算法时,你应当根据具体的问题来采用不同的算法。 当然,所选的算法必须要适用于你自己的问题,这就要求选择正确的机器学习任务。作为类比,如果你需要打扫房子,你可能会用到吸尘器、扫帚或是拖把,但你绝对不该掏出铲子来挖地。 2. 偏差

Zookeeper系列(三):应用场景

淺唱寂寞╮ 提交于 2019-11-29 07:43:00
Zookeeper被广泛应用于各种分布式集群场景中,比如Hadoop、Storm、Spark、Kafka等,要想学好大数据分析,不可避免的要用到大规模机器集群,了解和掌握Zookeeper的工作原理将会对学好大数据分析起到事半功倍的作用。 1、实时配置文件 Zookeeper可以作为互联网应用的实时配置开关,将配置信息设置在Zookeeper的node上,并在应用中设置Zookeeper的观察者,实时获取该node关联数据的变化,达到动态实时控制应用的配置信息的目的,实时调控生产环境各项参数。 在大型电商网站中,这种方式可用于节假日等流量爆发的场景,关闭某些不太重要的电商网站功能,降低并发量大爆发对服务器性能的冲击。 2、Kafka中使用 Kafka通过Zookeeper的使用提供给客户端负载均衡能力,每个Kafka客户端直接通过连接Zookeeper就能获得整个Kafka的配置信息。 Kafka将队列服务的机器注册在Zookeeper上,同时维护客户端列表,依靠负载均衡算法将客户端动态分配到合适的队列分区上,维持整个集群的负载均衡。客户端不需要预先知道当前的队列到底分配在哪个机器上,通过Zookeeper获取队列分配的动态变化。 3、Hadoop使用 在Hadoop1.x版本中Master是单节点模式,存在单点故障不支持热备份。Hadoop2

面试315--》转自佩奇银角大王

依然范特西╮ 提交于 2019-11-29 06:27:46
写在前面 近日恰逢学生毕业季,课程后期大家“期待+苦逼”的时刻莫过于每天早上内容回顾和面试题问答部分【 临近毕业每天课前用40-60分钟对之前内容回顾、提问和补充,专挑班里不爱说话就的同学回答 】。 期待的是可以检验自己学习的成功;苦逼的是怎么又有东西没记住,但我们依然每天坚持一遍、一遍又一遍指导记住为止。 原本以为大家会把讲过的都记录下来,以便日后毕业复习,事实证明 18岁的我 还是太年轻。 一切想象的太美好,三番五次督促整理到自己笔记上,可是这群小子们就有不照干的呢。 最后同学们获胜,我还是 怂了 ,花了一天把这些题乖乖的给大爷们整理一遍呗。。。。。。 各位大佬暂时先来315道题尝尝吧,后面有时间再继续补充。 有缘人如果看到这些题,不妨把答案写到下面,来证明下你到底有多水,哈哈哈哈哈哈哈哈哈哈哈 注意:你问答案在哪里?答案在视频里了,就是不给你写。 第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Python? Python和Java、PHP、C、C#、C++等其他语言的对比? 简述解释型和编译型编程语言? Python解释器种类以及特点? 位和字节的关系? b、B、KB、MB、GB 的关系? 请至少列举5个 PEP8 规范(越多越好)。 通过代码实现如下转换: 二进制转换成十进制:v = “0b1111011”
 十进制转换成二进制:v =

边缘计算介绍以及几款边缘计算开源平台

雨燕双飞 提交于 2019-11-29 05:00:01
边缘计算中的边缘(edge)指的是网络边缘上的计算和存储资源,这里的网络边缘与数据中心相对,无论是从地理距离还是网络距离上来看都更贴近用户。作为一种新的计算范式,边缘计算将计算任务部署于接近数据产生源的网络边缘,利用边缘资源为用户提供大量服务或功能接口,大大减少上传至云数据中心的数据量,缓解网络带宽压力,同时可以更好地解决数据安全和隐私问题。 在边缘计算环境下,数据具有异构性且数据量较大,数据处理的应用程序具有多样性,不同应用程序所关联的计算任务又不尽相同,对于计算任务的管理具有较大的复杂性,而简单的中间件软件结构无法有效保证计算任务可行性、应用程序的可靠性以及资源利用的最大化。同时,面向不同应用或场景的边缘计算系统所要实现的功能有所差异性。因此,边缘计算平台对边缘计算领域的推广和发展有着重要的意义和影响。 01 边缘计算开源平台概述 边缘计算系统是一个分布式系统范例,在具体实现过程中需要将其落地到一个计算平台上,各个边缘平台之间如何相互协作提高效率,如何实现资源的最大利用率,对设计边缘计算平台、系统和接口带来挑战。例如,网络边缘的计算、存储和网络资源数量众多但在空间上分散,如何组织和统一管理这些资源,是一个需要解决的问题。在边缘计算的场景下,尤其是物联网,诸如传感器之类的数据源,其软件和硬件以及传输协议等具有多样性,如何方便有效地从数据源中采集数据也是一个需要考虑的问题。此外

Python装饰器的应用场景

元气小坏坏 提交于 2019-11-29 04:50:33
装饰器的应用场景 附加功能 数据的清理或添加: 函数参数类型验证 @require_ints 类似请求前拦截 数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改 为函数提供额外的数据 mock.patch 函数注册 在任务中心注册一个任务 注册一个带信号处理器的函数 不同应用场景下装饰器实现 函数注册表 简单注册表 funcs = [] def register(func): funcs.append(func) return func @register def a(): return 3 @register def b(): return 5 # 访问结果 result = [func() for func in funcs] 注册表隔离(使用类的不同实例) class Registry(object): def __init__(self): self._funcs = [] def register(self, func): self._funcs.append(func) def run_all(self): return [func() for func in self._funcs] r1 = Registry() r2 = Registry() @r1.register def a(): return 3 @r2.register def b():