• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

标签:系统设计

从拼多多事件看电商的促销模型

前段时间,电商圈出了一件大事情,拼多多再次吸引了大家的眼球。2019年1月20日,拼多多出现了数额巨大的羊毛Bug,起因在于一张无门槛的优惠券,券面价值100元,可以全场通用(特殊商品除外),有效期一年。如果仅仅从业务角度分析,定义这样的优惠券自身并没有任何问题。当然,也有人说像这样的无门槛券本身就不该用于花费充值、Q币充值等几乎等于现……

单点登录原理与简单实现

一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必……

“搜索”的原理,架构,实现,实践,面试不用再怕了(值得收藏)!!!

可能99%的同学不做搜索引擎,但99%的同学一定实现过检索功能。搜索,检索,这里面到底包含哪些技术的东西,希望本文能够给大家一些启示。 全网搜索引擎架构与流程如何?全网搜索引擎的宏观架构如上图,核心子系统主要分为三部分(粉色部分):(1)spider爬虫系统;(2)search&index建立索引与查询索引系统,这个系统又主要……

电商平台备战促销季的运维秘诀——高可用服务层

高可用设计是互联网系统架构的基础之一,以天猫双十二交易数据为例,支付宝峰值支付次数超过 8 万笔。大家设想一下,如果这个时候系统出现不可用的情况,那后果将不可想象。而解决这个问题的根本就是服务层的高可用。什么是服务层众所周知,服务层主要用来处理网站业务逻辑的,是大型业务网站的核心。比如下面三个业务系统就是典型的服务层,提供基础服……

一些设计上的基本常识

1. API与SPI分离 框架或组件通常有两类客户,一个是使用者,一个是扩展者, API(Application Programming Interface)是给使用者用的, 而SPI(Service Provide Interface)是给扩展者用的, 在设计时,尽量把它们隔离开,而不要混在一起, 也就是说,使用者是看不到扩展者……

知乎社区核心业务 Golang 化实践

导读:Go 语言是近年来迅速发展的新编程语言,国内已经有大量公司从其他语言转换到Go 语言。知乎作为国内 Python 语言大厂之一,也开启了切转换 Go 语言的大门。他们为何要做这样的转换?又是怎样转换的?碰到了什么问题?又是怎样解决这些问题的?本文作者一一为你解答。背景众所周知,知乎社区后端的主力编程语言是 Python。随着知乎用……

作为架构师,你必需要搞清楚的概念:POJO、PO、DTO、DAO、BO、VO

POJO、PO、DTO、DAO、BO、VO这些概念作为Java开发来说应该全部或者部分遇到过,作为架构师的你想必更是清楚这些概念在不同场景的应用。下面我逐一介绍一下,想必你会更深刻。POJO全称为:Plain Ordinary Java Object,即简单普通的java对象。一般用在数据层映射到数据库表的类,类的属性与表字段……

支付渠道参数如何设计成路由化配置?

今天我们来探讨在搭建支付系统时一个比较关键的问题:渠道参数路由化配置如何设计?在开发支付系统的时候,我们经常会涉及到对接多个支付渠道,除常见的支付宝、微信外可能还会根据不同的业务场景对接很多其他的支付渠道,如apple pay、银联甚至一些海外支付渠道如Adyen、Stripe等。此外,根据公司业务类型的扩展,以及业……

看京东系统架构师如何让笨重的架构变得灵巧

随着业务的复杂性增大、系统吞吐量增长,所有功能统一部署难度加大,各个功能模块相互影响使系统变的笨重且脆弱,因此需要对业务进行拆分、对系统进行解耦、对系统内部架构升级,以此来提升系统容量及健壮性。 接下来主要分两部分介绍:系统拆分结构演变一、系统拆分系统拆分从资源角度分为应用拆分和数据库拆分,而从采……

新浪微博王传鹏:微博推荐架构的演进

引言微博(Weibo)是一种通过关注机制分享简短实时信息的广播式社交网络平台。微博用户通过关注来订阅内容,在这种场景下,推荐系统可以很好地和订阅分发体系进行融合,相互促进。微博两个核心基础点:一是用户关系构建,二是内容传播,微博推荐一直致力于优化这两点,促进微博发展。如图1所示:图1 微博推荐的使命在微博推荐发展的过程中遇到体系方向的……

许令波:淘宝大秒系统设计详解

摘要:文章主要介绍大秒系统以及这种典型读数据的热点问题的解决思路和实践经验。热点隔离秒杀系统设计的第一个原则就是将这种热点数据隔离出来,不要让1%的请求影响到另外的99%,隔离出来后也更方便对这1%的请求做针对性优化。针对秒杀我们做了多个层次的……

高性能、高可用平台架构的演变过程

开篇概述在如今移动互联网、互联网+、大数据的时代,各类的互联网网站、平台异常突起,如同雨后春笋,有种“忽如一夜春风来,千树万树梨花开”感觉。对于移动互联网时代的平台来说,用户的体验感是否良好?平台的稳定性是否良好?估计是对所有互联网平台来说两大头等要素吧,的确,移动互联网时代,流量就是市场价值,说白了就是收益,就是RMB,失去了流量,那……

互联网架构如何实现“高并发”

一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间……

项目动态修改Properties(运行时)

项目动态修改Properties(运行时)动态配置property,以前老项目没有用过阿波罗,又想不重启虚拟机修改配置文件,此功能帮你实现不重启虚拟机直接改动jvm里的配置文件。把agent通过jps出来的进程id用命令把jar包注入到jvm里(Attaching Java Agent)java -cp /Library……

互联网后端基础设施

1.1 后端基础设施使用Java后端技术的目的就是构建业务应用,为用户提供在线或者离线服务。因此,一个业务应用需要哪些技术、依赖哪些基础设施就决定了需要掌握的后端技术有哪些。纵观整个互联网技术体系再结合公司的目前状况,笔者认为必不可少或者非常关键的后端基础技术/设施如下图所示:这里的后端基础设施主要指的是应用在线上稳定运行需要依赖的关键组件或……

怎样计算系统的可靠性和可用性是几个9?

我们在评估一个系统的可用性和可靠性时,一般都会说三个9,四个9之类的。这些一般都是说系统的SLA(Service Level Agreement) 具体是几个「9」,以此,来表示该系统一年中具体宕机的时间。那这几个9是怎么计算出来的,具体一个系统可用性和可靠性又有哪些方面考虑呢?以下是朋友推荐的一篇很棒的英文文章,我做了翻译。系统可用……

1亿级PV网站架构演变

一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。一、积累是必不可少的架构师不是一天练成的。1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页……

京东架构专家分享京东架构之路

京东咚咚架构演进咚咚是什么?咚咚之于京东相当于旺旺之于淘宝,它们都是服务于买家和卖家的沟通。 自从京东开始为第三方卖家提供入驻平台服务后,咚咚也就随之诞生了。 我们首先看看它诞生之初是什么样的。1.0 诞生(2010 – 2011)为了业务的快速上线,1.0 版本的技术架构实现是非常直接且简单粗暴的。 如何简单粗暴法?请看架构图……

程序猿进阶之路「内网域名」

企业场景一般在企业内部,开发、测试以及预生产都会有一套供开发以及测试人员使用的网络环境。运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问。然而随着项目的增多,对于开发和测试人员记住如此多的内网地址,无疑是一件头疼的事情(当然你也可以使用浏览器书签管理器或者记录在某个地方)。但是你不永远不……

人民广场怎么走? 地铁换乘算法的实现 MikeTech | MikeTech

  现在的公共交通越来越方便,很多城市都有地铁,日常使用的地图App都提供了地铁线路换乘方案的功能,只要输入起点和重点,App就能给出你换乘的方案,可是这个功能背后的算法又是怎么样的呢?这篇文章将会告诉你。说到最短路径算法不外乎就是那么几种,广度优先深度优先Dijkstra之类的,这篇博客将会讲述Dijkstra算法,其他的最短路径算法……

设计和实现一款轻量级的爬虫框架

说起爬虫,大家能够想起 Python 里赫赫有名的 Scrapy 框架, 在本文中我们参考这个设计思想使用 Java 语言来实现一款自己的爬虫框(lun)架(zi)。 我们从起点一步一步分析爬虫框架的诞生过程。我把这个爬虫框架的源码放在 github(https://github.com/biezhi/elves) 上,里面有几个例子可以运……

大型网站技术架构

早期的网站为了节省成本一般会设计成集中式系统,应用程序、数据库等都部署在一台服务器上。 但随着业务的快速度发展,逐渐出现瓶颈,按一定原则**(应用拆分、服务拆分、数据拆分、应用解耦)**,向分布式系统转型,涉及到以下环节改造。主要环节业务拆分:将整个网站业务拆分成不同的应用,每个应用独立部署维护,应用之间通过RPC或消息队列通信。集……

架构思想

关于什么是架构,一种比较通俗的说法是 “最高层次的规划,难以改变的决定”,这些规划和决定奠定了事物未来发展的方向和最终的蓝图。从这个意义上说,人生规划也是一种架构。选什么学校、学什么专业、进什么公司、找什么对象,过什么样的生活,都是自己人生的架构。具体到软件架构,维基百科是这样定义的:“有关软件整体结构与组件的抽象描述,用于指导大型软件系统各……

难得的好文:如何构建一套高可用的 APP 消息推送平台

消息推送作为移动 APP 运营中的一项关键技术,已经被越来越广泛的运用。本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行深入剖析,围绕消息推送时产生的服务不稳定性,消息丢失、延迟,接入复杂性,统计缺失等问题,提供了一整套平台级的高可用消息推送解决方案。实践中,借助于该平台,不仅能提能显著提高消息到达率,还能提高研发效率,……

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00