用户您好!请先登录!

分类目录解决方案

继续扯一扯秒杀系统设计

秒杀系统的关键点:

秒杀系统其实主要解决2个问题,一个是并发读,一个是并发写。整体概况为“稳、准、快”

  • 高性能。 秒杀涉及大量的并发读和并发写,因此支持高并发访问这点非常关键。本文将从设计数据的动静分离方案、热点的发现与隔离、请求的削峰与分层过滤、服务端的极致优化这 4 个方面重点介绍。
  • 一致性。 秒杀中商品减库存的实现方式同样关键。可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。
  • 高可用。 虽然介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,我们还要设计一个 PlanB 来兜底,以便在最坏情况发生时仍然能够从容应对。

 

1. 设计秒杀系统时应该注意的5个架构原则

总结来说就是“4 要 1 不要”

  • 数据要尽量少。 所谓“数据要尽量少”,请求的数据包括请求包体和返回包体,字段精简。不管是请求数据还是返回数据都需要服务器做处理,而服务器在写网络时通常都要做压缩和字符编码,这些都非常消耗 CPU,所以减少传输的数据量可以显著减少 CPU 的使用。数据库也容易成为一个瓶颈,所以和数据库打交道越少越好,数据越简单、越小则越好。
  • 请求数要尽量少。 这里的请求数包括了页面依赖的 CSS/JavaScript、图片、加载这些文件都需要建立连接要做三次握手,另外,如果不同请求的域名不一样的话,还涉及这些域名的 DNS 解析,可能会耗时更久。所以,减少请求数可以显著减少以上这些因素导致的资源消耗。

阅读更多

Flink在小红书实时推荐系统中的运用

本文整理自2019阿里云峰会·上海开发者大会开源大数据专场中小红书实时推荐团队负责人郭一先生现场分享。小红书作为生活分享类社区,目前有8500万用户,年同比增长为300%,大约每天有30亿条笔记在发现首页进行展示。推荐是小红书非常核心且重要的场景之一,本文主要分享在推荐业务场景中小红书的实时计算应用。

实时计算在推荐业务中的场景

1. 线上推荐流程

小红书线上推荐的流程主要可以分为三步。第一步,从小红书用户每天上传的的笔记池中选出候选集,即通过各种策略从近千万条的笔记中选出上千个侯选集进行初排。第二步,在模型排序阶段给每个笔记打分,根据小红书用户的点赞和收藏行为给平台带来的价值设计了一套权重的评估体系,通过预估用户的点击率,评估点击之后的点赞、收藏和评论等的概率进行打分。第三步,在将笔记展示给用户之前,选择分数高的笔记,通过各种策略进行多样性调整。

阅读更多

知识图谱在美团智能场景下的应用与实践

导读:目前为止 IT 产业经历了六次浪潮,分别为:大型机时代,小型机时代,个人电脑时代,桌面互联网时代,移动互联网时代和 AIOT 时代。在这些时代背后可以发现是人机交互方式的变化:从鼠键交互,到触控交互,再到语音智能交互,可以看到人机交互的方式在向更自然更直接化的方式演进。今天会和大家分享基于知识图谱的问答在美团智能交互场景中的应用和演进。

今天的介绍会围绕下面三点展开:

  • 智能交互背景介绍
  • 受限场景问答应用和演进
  • 复杂场景问答应用和演进

智能交互背景介绍

1. 智能交互的划分

知识图谱在美团智能场景下的应用于实践

智能交互的划分基本上是根据人类需求拆分:

  • 检索式交互—信息获取,比较经典的方法 FAQ:QA 匹配,QQ 匹配;
  • 任务式交互—执行任务,比如订机票 ( 酒店 ) 的特定任务;
  • 闲聊式交互—娱乐与休闲,基于深度学习的端到端的学习系统。

阅读更多

饿了么推荐系统的0到1

随着移动互联网的发展,用户使用习惯日趋碎片化,如何让用户在有限的访问时间里找到想要的产品,成为了搜索/推荐系统演进的重要职责。作为外卖领域的独角兽, 饿了么拥有百万级的日活跃用户,如何利用数据挖掘/机器学习的方法挖掘潜在用户、增加用户粘性,已成为迫切需要解决的问题。

个性化推荐系统通过研究用户的兴趣偏好,进行个性化计算,发现用户的兴趣点,从而引导用户发现自己的信息需求。一个好的推荐系统不仅能为用户提供个性化的服务,还能和用户之间建立密切关系,让用户对推荐产生依赖。

本次分享介绍饿 了么如何从0到1构建一个可快速迭代的推荐系统,从产品形态出发,包括推荐模型与特征工程、日志处理与效果评估,以及更深层次的场景选择和意图识别

在携程个性化推荐与人工智能meetup上,已经就以上几部分做了整体上的说明,本文将就其中模型排序与特征计算的线上实现做具体说明,同时补充有关业务规则相关的洗牌逻辑说明,力图从细节上还原和展示饿了么美食推荐系统。

一、模型排序

1.设计流程

对于任何一个外部请求, 系统都会构建一个QueryInfo(查询请求), 同时从各种数据源提取UserInfo(用户信息)、ShopInfo(商户信息)、FoodInfo(食物信息)以及ABTest配置信息等, 然后调用Ranker排序。以下是排序的基本流程(如下图所示):

  • 调取RankerManager, 初始化排序器Ranker:
  • 根据ABTest配置信息, 构建排序器Ranker;
  • 调取ScorerManger, 指定所需打分器Scorer(可以多个); 同时, Scorer会从ModelManager获取对应Model, 并校验;
  • 调取FeatureManager, 指定及校验Scorer所需特征Features。
  • 调取InstanceBuilder, 汇总所有打分器Scorer的特征, 计算对应排序项EntityInfo(餐厅/食物)排序所需特征Features;
  • 对EntityInfo进行打分, 并按需对Records进行排序。
饿了么推荐系统:从0到1(天天外卖,你可不知道的程序里面原理)

阅读更多

浅析阿里云API网关的产品架构和常见应用场景

什么是API网关

API 网关提供完整的 API 托管服务,辅助用户将能力、服务、数据以 API 的形式开放给合作伙伴,也可以发布到 API 市场供更多的开发者采购使用。

  1. 提供防攻击、防重放、请求加密、身份认证、权限管理、流量控制等多重手段保证 API 安全,降低 API 开放风险。
  2. 提供 API 定义、测试、发布、下线等全生命周期管理,并生成 SDK、API 说明文档,提升 API 管理、迭代的效率。
  3. 提供便捷的监控、报警、分析、API 市场等运维、运营工具,降低 API 运营、维护成本。
    API网关技术解读稿(改)713.png

API托管服务: 为企业与开发者提供低成本、高可用、安全、便捷、易于管理的 API 开发能力。

在 API 的市场里,日均调用次数已经超过1.2亿次,基于此背景,阿里云全新探索了云市场能力中心,建立 API 生态,为企业客户和伙伴提供 API 购买和 API 变现一站式解决方案。API 网关将能力的复用率最大化,让企业之间能够互相借力,企业发展能够专注自身业务,实现共赢。

阅读更多

推荐系统基础知识

本文主要包括推荐系统的相关概念、推荐系统的架构和流程、常见的推荐算法、挖掘、召回、排序、评估和总结这几部分。

概念部分会简述推荐系统相关的理论知识,架构和流程主要是介绍推荐系统的通用架构和常规的推荐流程。

算法部分主要是一些常见的推荐算法介绍,挖掘》召回》排序主要是基于推荐流程的详细展开。

评估部分指的是如何评估一个推荐系统的好坏,总结部分主要是整体内容的回顾,以及一个真实推荐系统的案例。

1. 相关概念

1.1. 什么是推荐系统

先来看下Wiki的定义:

一种信息过滤系统,用来预测用户对物品的行为和偏好。

按照字面意思理解下来,就是帮助过滤信息,预测用户对物品的行为和偏好。

在今日头条曹欢欢博士的一次分享中提到了这样一个定义:

资讯推荐系统本质上要解决用户,资讯和环境的匹配,y=F(Xi,Xu,Xc)

感觉把这个定义延伸到其他推荐系统上也是成立的,那就是推荐系统本质上要解决用户,物品和环境的匹配问题,帮助建立用户和物品之间的连接。

回到定义本身,理论上说能实现这个功能的系统都可以称之为推荐系统。

阅读更多

不能免俗:学习下阿里数据中台

数据中台的概念是最早由阿里巴巴首次提出,是为了应对内部众多业务部门千变万化的数据需求和高速时效性的要求而成长起来的,它既要满足业务部门日常性的多个业务前台的数据需求,又要满足像双十一,六一八这样的业务高峰、应对大规模数据的线性可扩展问题、应对复杂活动场景业务系统的解耦问题,而在技术、组织架构等方面采取的一些变革。

数据中台定义

阿里巴巴数据中台是阿里云上实现数据智能的最佳实践,它是由数据中台方法论+组织+工具所组成。

  • 数据中台方法论采用实现企业数据的全局规划设计,通过前期的设计形成统一的数据标准、计算口径,统一保障数据质量,面向数据分析场景构建数据模型,让通用计算和数据能沉淀并能复用,提升计算效能;
  • 数据中台的建设实施必须有能与之配合的组织,不仅仅相应岗位的人员要配备齐全,而且组织架构建设也需要对应,有一个数据技术部门统筹企业的数字化转型,数据赋能业务中形成业务模式,在推进数字化转型中实现价值;
  • 数据中台由一系列的工具和产品组成,阿里云数据中台以智能数据构建与管理Dataphin产品、商业智能QuickBI工具和企业参谋产品为主体等一系列工具组成。

详解阿里云数据中台

数据中台的概念来自于阿里巴巴“大中台,小前台”业务战略下的数据化实践,它是关于“数据价值化和数据资产化”的一整套解决方案,内容包括数据中台方法论,组织,数据产品三个方面。

阅读更多

边缘计算那点事

边缘计算(Edge Computing)是云计算向边缘的延伸,本文对边缘计算、雾计算、MEC、Cloudlet、分布式云等边缘计算领域相关概念和技术的定义、架构、场景等进行了比较分析,并对该领域的技术发展趋势给出了预测与展望。

一、概述

在整个行业数字化转型的大背景下,在 IoT、5G、 VR、AI 等业务云化需求驱动和技术发展推动下,边缘计算(Edge Computing)概念应运而生并迅速得到了行业的广泛关注。相对于经典云计算带来的“云端”的海量计算能力,边缘计算实现了资源和服务向边缘位置的下沉, 从而能够降低交互时延、减轻网络负担、丰富业务类型、优化服务处理,提升服务质量和用户体验。

边缘计算概念并无明确定义,雾计 算、MEC、Cloudlet、 边 缘 计 算、 分 布 式 云 等 概 念 迭 出,ETSI、ITU、OpenFog、ECC、OEC、3GPP、ISO、IEC、 IEEE、Linux 基金会、OpenStack 基金会等业界主流标准 化、开源和行业组织都在积极推进但都有所侧重。本文针对边缘计算、雾计算、MEC、Cloudlet、分布式云等领域内核心技术的定义、架构、场景等进行简介,并进行比较分析。

阅读更多

IPD(集成产品开发)那点事

集成产品开发(Integrated Product Development, 简称IPD)是一套产品开发的模式、理念与方法。IPD的思想来源于美国PRTM公司出版的《产品及生命周期优化法》(简称PACE——Product And Cycle-time Excellence)一书,该书中详细描述了这种新的产品开发模式所包含的各个方面。

IPD的研发背景

最先将IPD付诸实践的是IBM公司,1992年IBM在激烈的市场竞争下,遭遇到了严重的财政困难,公司销售收入停止增长,利润急剧下降。经过分析,IBM发现他们在研发费用、研发损失费用和产品上市时间等几个方面远远落后于业界最佳。为了重新获得市场竞争优势,IBM提出了将产品上市时间压缩一半,在不影响产品开发结果的情况下,将研发费用减少一半的目标。

为了达到这个目标,IBM公司率先应用了集成产品开发(IPD)的方法,在综合了许多业界最佳实践要素的框架指导下,从流程重整和产品重整两个方面来达到缩短产品上市时间、提高产品利润、有效地进行产品开发、为顾客和股东提供更大价值的目标。

阅读更多

Small Team’s Microservice Evolution

微服务是否银弹,如何实施,甚至是否使用微服务都是个问题,这里既要防止过度设计,又要充分考虑到人的因素。本文参考Linkflow运维开发负责人对其产品与项目交付上线过程的描述来看一看小团队是如何微服务化的。

要不要微服务

微服务的好处是什么?

  • 相比于单体应用,每个服务的复杂度会下降,特别是数据层面(数据表关系)更清晰,不会一个应用上百张表,新员工上手快;
  • 对于稳定的核心业务可以单独成为一个服务,降低该服务的发布频率,也减少测试人员压力;
  • 可以将不同密集型的服务搭配着放到物理机或者虚拟机上,或者单独对某个服务进行扩容,实现硬件资源的充分利用;
  • 部署灵活,在私有化项目中,如果客户有不需要的业务,那么对应的微服务就不需要部署,节省硬件成本,就像上文提到的乐高积木理念。

阅读更多

The Evolution of Architecture from SOA , to Microservice and to Cloud Native Application

进入 21 世纪以来,我们见证了企业分布式应用架构从 SOA (Service-oriented Architecture),到微服务架构,再到云原生应用架构的演化。我们先从我们熟悉的物理守恒定律说起:

  • 第一,企业 IT 系统的复杂性(熵)符合热力学第二定律。随着时间的推演,业务的变化,企业 IT 系统的复杂度会越来越高;
  • 第二,在计算机交互设计中有一个著名的复杂性守恒定律[1]。应用交互的复杂性不会消失,只会换一种方式存在。这个原理也同样适用于软件架构。引入新的软件架构,不会降低IT系统的整体复杂性。

现代软件架构的核心任务之一就是定义基础设施与应用的边界,合理切分复杂性,减少应用开发者需要面对的复杂性。换句话说,就是让开发者专注在核心价值创新上,而把一些问题交给更合适的人和系统来解决。

阅读更多

System Architectures for Personalization and Recommendation

本文我们将探索如何创建一个能够交付并支持快速创新的软件架构。提出一种能够处理大量现有数据、响应用户交互并易于试验新的推荐方法的软件体系结构并非易事。在这篇文章中,我们将描述我们如何解决Netflix面临的一些挑战。

首先,我们在下图中展示了推荐系统的总体系统图。该体系结构的主要组件包含一个或多个机器学习算法。

Netflix应用架构之用于个性化和推荐的系统架构

对于数据,我们能做的最简单的事情就是将其存储起来,以便稍后进行脱机处理,这就引出了管理脱机作业的部分体系结构。然而,计算可以离线、近线或在线进行。

阅读更多

Introduction of API Gateway

为了提高系统的性能和可靠性,将应用服务进行拆分微服务化。作为系统入口的 API 网关也逐渐成为了标配。今天我们一起来看看 API 网关的设计思路,需要承载了哪些功能?以及如何选择流行的 API 网关?

什么是 API 网关

既然需要 API 网关为我所用,首先就让我们来了解一下什么是 API 网关。网关一词最早出现在网络设备,比如两个相互独立的局域网之间通过路由器进行通信,中间的路由被称之为网关。

任何一个应用系统如果需要被其他系统调用,就需要暴露 API,这些 API 代表着一个一个的功能点。如果两个系统中间通信,在系统之间加上一个中介者协助 API 的调用,这个中介者就是 API 网关。

阅读更多

常用的Python Web程序的部署方式

通常来说, Web应用一般是三层结构:Web Server====》 Application=====》 DB Server

主流的 Web server 一个巴掌就能数出来,Apache,Lighttpd,Nginx,IIS等。 Application,中文名叫做应用服务,就是你基于某个web framework写的应用代码;DB server 泛指存储服务,web开发中用mysql比较多,最近几年因为网站规模扩大,memcache,redis这种key-value等存储也流行开来。

放在最前面的web server有3个功能:

  • 高效率处理静态文件,web server都是用c开发,调用是native的函数,对IO,文件传输都做针对性的优化
  • 充当一个简易的网络防火墙,可以denny一些ip,简单的控制并发连接数量等等,聊胜于无
  • 处理高并发短连接请求,把成千上万用户的request 通过内网的几十个长连接进行转发,原因一个是web server处理高并发很专业,另外一个原因是大部分的application所用的框架都不具备处理高并发的能力

实际上,市面上有部分web framework由于内置了支持epoll/kqueue 等高效网络库,而具备了处理高并发的能力,比如说 python的tornado,java系的tomcat,jetty等等,有人就去掉前端的web server,直接裸奔,但是在部署公网应用时候,最好别这样做,因为前面提到的1,2两个原因,用户brower到web server的网络状况是千奇百怪,你无法想象的。

阅读更多

Design of Structured Large Data Analysis Platform

时下大数据平台主要解决以下几个问题:

1. 丰富的数据源支持和数据格式延迟绑定

丰富的数据源是因为这样一个数据分析平台是汇总我们各类业务数据的地方,数据源可能来自各类数据库例如MySQL,MongoDB,日志源等等。这个平台需要能够方便各类数据源便捷的入库,例如通常大家会发现大数据架构中有一个Kafka,各类数据源会先进入Kafka,再由Kafka推送到大数据的存储系统中。这里Kafka就承担了解耦大数据平台的存储接口和上游数据源的作用。

数据格式延时绑定是一个很重要的概念,TP类数据库往往需要根据业务需求预先定义Schema,也就是通常说的写入型Schema,数据在写入时即会做严格的数据字段类型检验。但是分析系统并不希望因为Schema约束或者限制的数据入库,通常会采用读取型Schema,也就是这里的延时绑定,数据在分析时才会根据数据类型做对应的处理。

阅读更多

SD-WAN与VPN的选择

当谈到是选择SD-WAN还是虚拟私人网络时,企业往往都要考虑两者之间的成本、云使用和应用程序等差异和因素。一方面,也是由于近些年来业界对SD-WAN的热度颇高。因此,不少企业想知道,选择SD-WAN与虚拟私人网络的根本区别和相似之处到底在哪。

先来说说虚拟私人网络。虚拟私人网络的定义是通过不太安全的网络传输(例如互联网)创建安全网络。长久以来,虚拟私人网络的基本任务一直是删除来自已验证端点的数据包。端点之间的所有通信都会进行最高级别的加密,这构成了Internet上虚拟私人网络的基础,可以说它是简单且具有成本效益的,但在保证网络性能方面可能存有问题。

阅读更多

负载均衡技术那些事

1、什么是负载均衡

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡(LoadBalance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

2、负载均衡层的核心思想

2-1、一致性哈希与Key的选取

一致性Hash算法是现代系统架构中的最关键算法之一,在分布式计算系统、分布式存储系统、数据分析等众多领域中广泛应用。

阅读更多

SD-WAN学习用例

SD-WAN服务基于高品质的网络资源,充分利用SDN/NFV技术进行重构骨干网络,帮助企业客户快速实现总部与分支机构互联、数据中心互联和公有云互联。下面通过一个实例来快速了解SD-WAN服务。

客户介绍

某集团公司是知名的钟表行业领军人物,业务领域覆盖范围广,在全球有多个分支机构。随着公司业务的不断扩展,网络系统已不能满足,现提出改造:

  • 全球有多个分支机构,需要流畅的协同办公;
  • 国内多个分支机构互访不畅;
  • 流动办公人员的国际国内访问;
  • 在保障网络顺畅的同时,要保障网络安全;

阅读更多

工作流引擎参考

引用自  https://github.com/meirwah/awesome-workflow-engines

完整的产品

  • Airflow
    • 基于python的平台,用于运行任务的有向无环图(DAG)
  • Argo
    • 开源容器本地工作流引擎,用于完成Kubernetes上的工作
  • Azkaban
    • -批量工作流作业调度程序创建在LinkedIn运行Hadoop作业。
  • Brigade
    • – Brigade是一个工具,运行脚本,自动化任务在云中-作为您的Kubernetes集群的一部分。
  • Cadence
    • 一个编排引擎,执行由Uber Engineering开发的异步长时间运行的业务逻辑。
  • CloudSlang
    • -工作流引擎自动化您的DevOps用例。

阅读更多

实时数据中台的组建

在企业业务发展过程中所累积的大量数据,往往分散在各个业务单元和组织内部,形成一个个“数据孤岛”、“数据烟囱”。而数据中台是着眼于企业数据资产汇集、数据算法迭代、数据能力输出的根基平台,以数据指引业务决策并驱动业务增长,是破除数据孤岛的关键策略。

阿里数据架构师告诉你,如何建立实时数据中台

数据中台的计算载体包括hadoop、MPP以及流处理引擎,但你会发现这三类计算载体承载的数据内涵是不一样的。

Hadoop、MPP中的数据模型往往是精心打磨的离线数据仓库模型,无论是维度建模还是关系建模,其强调数据模型的复用,并且通过建模屏蔽了底层数据的差异,从而高效率的支撑上层应用,但流处理不一样。

阅读更多

业务中台是怎么搭建的

最近企业突然流行起所谓业务中心,数据中心的概念,估计是被阿里玩坏了,忽悠忽悠企业,吵个新概念。只不过是新瓶装老醋罢了。根据周知的理解,如下图所示:

只需5步搭建你的业务中台

业务抽象

在业务抽象阶段,通过业务调研和业务分析,设计业务蓝图和抽象业务元素,为下一阶段的中心建模阶段准备顶层思想和业务素材。这一阶段,根据企业不同的实际情况,可轻可重。比如企业已经做过咨询调研和流程梳理工作了,那就可以在以往工作成果基础上进行短期的业务理解和业务设计工作了。如果企业对以往的咨询工作并不满意或者上一次咨询时间久远,竞争环境发生了巨大的变化,这就需要做仔细完整的业务咨询了。

阅读更多

华为移动服务(HMS)那点事

HMS是什么?

华为移动服务是个什么东西呢?

它的英文名为Huawei Mobile Services,缩写为HMS。

HMS?这不禁让人想起GMS。也就是移动服务。

GMS可是Google开发并推动Android的动力,是Android系统的灵魂所在。

GMS目前提供有Search、Search by Voice、Gmail、Contact Sync、Calendar Sync、Talk、Maps、Street View、YouTube、Android Market(ICS上更改为Play store)服务。

阅读更多


1 2 3