首页 » 网站建设 » php表现营业逻辑技巧_Uber 架构1

php表现营业逻辑技巧_Uber 架构1

访客 2024-11-16 0

扫一扫用手机浏览

文章目录 [+]

uber是一家美国硅谷的科技公司。
Uber在2009年,由加利福尼亚大学洛杉矶分校辍学生特拉维斯·卡兰尼克和好友加勒特·坎普(Garrett Camp)创立。
因旗下同名打车APP而名声大噪。
Uber目前已经进入中国大陆的60余座城市,并在环球范围内覆盖了70多个国家的400余座城市

Uber 的分享参考硅谷之路知乎wiki

php表现营业逻辑技巧_Uber 架构1

Uber 架构师 Ranny,重构了 Uber 的框架。

php表现营业逻辑技巧_Uber 架构1
(图片来自网络侵删)

Uber 紧张利用两种措辞javascript和python,个中 javascript 助我一臂之力进入编程行业。
而且也是我个人无论在事情和业余韶光打仗最多的一门措辞,以是我对付 javascript 有着分外的感情。
现在 javascript 已经成为了跨平台的首选措辞,浏览器真个汇编措辞。

tchannelRanny 说 Uber 已经从 HTTP+JSON 迁移到基于 TChannel 的 Thrift,TChannel 在 Node.js 中比 HTTP 快 20 倍。
基于 RPC 进行做事间函数调用。
并且屏蔽掉不同的措辞的差异。
ringpop Ringpop是为了做事Uber不断扩大的用户量而产生的一个分布式架构,它能自动检测和规复单点失落败,并且实现负载均衡。
同等性哈希(con.sistenthashing):将节点映射到哈希环上,给节点分配任务,实现负载均衡。
google s2Google 的 S2 基于地理舆图数据库,按四边形对舆图进行切分。
S2 能够将球体分为小区 cell,每个小区有一个 id,地球大致是一个球形。
S2 有两个主要特性:能够定义每个cell的分辨率,它能创造须要覆盖区域的cell。

通过阅读和整理资料本日给大家分享一下 Uber 的架构

统统从大略开始,简化一些 uber 做事便是将司机叮嘱消磨给搭客。
前面是手机,中间是 PHP 卖力业务逻辑后面是MySQL 数据。
每 4 秒上传数据更新自己位置,来探求客服进行匹配来支撑 uber 快速。
不过要对应 Uber 业务极速的增长。

为了应对蜂拥而来增长

uber 将 PHP 变成多进程和多线程,同时访问数据,多个线程同查数据库,返给用户。

一个司机两个顾客:由于每个 php 都是独立访问数据库, 如果锁的机制没有做好,一个司机被两个 PHP 进程同时搜索数据库将司机叮嘱消磨给两个搭客。
两个司机一辆车 他们用两个 app,而这个时候如果只能叮嘱消磨一次就出问题了一个账号两辆车 两个司机同乘一辆车,一个用户两辆车同时登录一个账号,用户位置不断漂移。

uber 如何应对寻衅

详细化一下,叮嘱消磨做事后面 MySql 数据库, 用户可通过移动设备连接到叮嘱消磨做事。
首先可以把一些影响叮嘱消磨做事的逻辑拿出来,例如商业逻辑,用户绑定手机号,收付款这些业务,商业逻辑直接走 Python API 来调用,从而减轻叮嘱消磨做事压力。

进一步加一个行列步队,可以抵挡大量的要求。
行列步队抵挡压力,同时将日志和位置存在mangoDB 中。
这样分出几层,大家还可以在各个层级如果涌现问题就可以重试。

怎么处理 须要管理得到要求就处理。
热升级代码 hot push code 升级 request Manager 。
不关掉做事,以前处理掉一半的怎么办。

谈到改进,改进影响 的商业逻辑绑定手机号,Python API 叮嘱消磨做事在这个根本将叮嘱消磨做事变为 nodejs 地理位置将叮嘱消磨数据库变为 mangodb 。
javascript 越来越全面。
不但可以写前端也能写做事。
我也受益 JavaScript 才进去这一行。

如何处理

require("request-manager")this.requestManager = new RequestManager()request.addListener('end',function(){ var connection = self.requestManager.createContext({ request:request, requestBody:requestBody, response:response }); if(connection){ self.processMessage(connection) }});

将许多数据放入内存提高查询速率避免单点失落败,最好是有几个 slave 进行热备。
按区域进行拆分几个区域。
每个区域卖力自己的做事。
而且进行单线程处理,回避各种问题。

末了潜在的风险,雪崩征象 由于一些银行的返回有时候很难。
要求超时并且后面不断重试,末了行列步队底部,这时候纵然我们重新启动做事由于堆积的依旧会把刚刚启动做事压垮。

以是也须要快速机制来实现快速失落败来避免雪崩征象。

避免单点失落败

做事器如何设备

require("slave-master")var severList = [{ id:1, host:'localhost', path:'/', host:8000, rmPort:8001, smPort:8002}]this.slaveMaster = new SlaveMaster(serverID, serverList);this.slaveMaster.onBecomingMaster = function(){ //load dat from Mango}

MongoDB 如何访问?

可以 mangodb 数据库的访问包裹一层。
记录重试次数,配置这样大家同一调用

require("mango-wrapper")this.mango = new MangoWrapper({ replicaSet:settings.mango.replicaSet, daabaseName:'testDB', retryList:settings.mango.retryList, retryInterval:settings.mango.retryInterval, backupDir:settings.mango.backupDir, downDir:settings.mango.downDir, restoreInterval:settings.mango.restoreInterval});this.mango.insert('gpsLogs',gpsLog)

标签:

相关文章

旅游IT人才,引领智慧旅游新风尚

随着互联网技术的飞速发展,旅游业也迎来了前所未有的变革。旅游IT人才作为连接旅游产业与信息技术的桥梁,扮演着至关重要的角色。本文将...

网站建设 2024-12-27 阅读0 评论0

发电机CMS,智慧能源管理的新篇章

随着我国能源需求的不断增长,发电行业面临着巨大的挑战。为了提高发电效率,降低能源消耗,我国开始大力发展智慧能源管理系统。其中,发电...

网站建设 2024-12-27 阅读0 评论0

可爱符号的魅力,温暖心灵,点亮生活

可爱语言符号作为一种独特的文化现象,逐渐渗透到人们的日常生活中。从表情包到可爱动物,从卡通形象到网络用语,这些充满童趣的符号在传递...

网站建设 2024-12-27 阅读0 评论0

双语言输入法,促进跨文化交流的新工具

随着全球化的不断深入,跨文化交流日益频繁。在这种背景下,双语言输入法作为一种新兴的科技产品,逐渐走进了人们的生活。本文将探讨双语言...

网站建设 2024-12-27 阅读0 评论0

日本IT公司,引领全球科技创新的先锋力量

日本,这个被誉为“科技大国”的国家,在全球IT领域有着举足轻重的地位。众多日本IT公司凭借其卓越的创新能力和前瞻性战略,在全球市场...

网站建设 2024-12-27 阅读0 评论0