首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏架构之家

    打车通用可编排订单状态机引擎设计

    打车业务的订单状态为例,订单状态就有乘客下单、司机接单、司机已到达乘车点、开始行程、行程结束、确认费用、支付成功、订单取消、订单关闭等;订单车型有专车、快车、出租车等几种车型,而专车又分舒适型、豪华型 二 实现方案 要解决"多状态+多类型+多场景+多维度"的复杂订单状态流转业务,我们从纵向和横向两个维度进行设计。 1 纵向解决业务隔离和流程编排 状态模式的应用 通常我们处理一个多状态或者多维度的业务逻辑,都会采用状态模式或者策略模式来解决,我们这里不讨论两种设计模式的异同,其核心其实可以概括为一个词"分而治之", 这不仅仅是从可扩展性和可维护性的角度出发,其实我们做架构做稳定性、隔离是一种减少影响面的基本手段,类似的隔离环境做灰度、分批发布等,这里不做扩展。 还是有的,对于数据库状态变更和消息的一致性的问题,细节比较多,每种方案又都有相应的优缺点,本文主要是介绍状态机引擎的设计,对于消息一致性的问题就不过多介绍,后面也许会有单独的文章对数据库变更和消息的一致性的问题进行介绍和讨论

    1.9K31编辑于 2022-09-01
  • 来自专栏Java项目实战

    滴滴打车系统架构设计

    一、需求分析 系统高清架构图参考链接 滴滴打车系统架构图_系统架构图_打车软件系统架构图_功能架构图_系统架构图模板 - 在线模板社区 (edrawmax.cn) 1.1 业务需求 打车系统是一种基于互联网的出行服务 1.3 非功能需求 1.3.1 性能需求 系统需要保证并发、低延迟,能够在瞬时大量请求下快速响应,保证系统的稳定性和可靠性。 二、系统架构设计 2.1 架构模式 系统采用微服务架构模式,将系统拆分成多个小型服务,每个服务都是独立的,可以独立部署和扩展。这种架构模式能够更好地满足系统的可扩展性和可维护性需求。 四、总结 本文介绍了打车系统的架构设计,包括需求分析、架构模式、系统模块、技术选型、系统架构图、系统交互流程和部署方案。 打车系统是一种基于互联网的出行服务,需要保证并发、低延迟、数据安全等需求,采用微服务架构模式能够更好地满足这些需求。系统的部署方案需要根据实际情况进行调整,保证系统的稳定性和可靠性。

    4.3K71编辑于 2023-03-18
  • 来自专栏AI实验室应用

    揭秘地图智能助手:基于Assistant的优化实践与架构设计

    摘要:本文深入探讨基于Assistant框架实现的地图智能助手的优化版本,从配置解耦、错误处理、性能优化到安全设计等维度,揭示其技术架构与工程实践。 一、引言:智能助手的需求与挑战 在位置服务日益重要的今天,地图智能助手需要具备快速响应、精准查询、灵活扩展等能力。传统实现常面临配置管理混乱、错误处理薄弱、API调用效率低等问题。 """基于 Assistant 实现的地图智能助手 优化版本改进: 1. 配置与代码分离 2. 更好的错误处理 3. 性能优化 4. 更安全的API密钥管理 5. '你应该充分利用地图的各种功能来提供专业的建议。' '回答要简洁明了,重点突出。' API封装与工具调用 地点查询工具通过_amap_query_tool解析用户意图,分发至_query_location方法,封装API请求逻辑。

    26310编辑于 2025-10-28
  • 来自专栏全栈程序员必看

    定位SDK_地图api使用教程

    1.LocationManagerProxy 获取当前Context 创建一个LocationManagerProxy 变量 mAMapLocManager = LocationManagerProxy.getInstance(this);

    2.1K20编辑于 2022-09-19
  • 来自专栏java后端

    地图调用

    今日主题:地图调用 环境 IDEA springboot maven3 实现过程 1、首先我们需要登录开发平台:https://lbs.amap.com/ ? 7、浏览器定位 我们可以通过高JS API提供了AMap.Geolocation插件来实现定位 <!

    2.6K30发布于 2021-05-13
  • vue + 地图

    ://lbs.amap.com/api/javascript-api-v2/documentation个别接口有每日调用限制,如不满足使用需要购买服务包 流量限制说明-地图 JS API 2.0 | 地图 API*准备工作:(注册成为开发者进入应用管理,创建新应用,新应用中添加 key,服务平台选择 Web端(JS API))具体示例:准备-地图 JS API 2.0 | 地图APIWeb端使用: 安装地图加载器插件 :npm i @amap/amap-jsapi-loader -S具体思路:VUE文件created中初始化调用1、初始化加载地图方法2、如需实时跟踪点位信息需要加上初始化动态刷新坐标的方法 ", function () { // console.log("鼠标移入,添加窗体"); // var content = [ // "

    软件有限公司

    1.4K10编辑于 2024-09-23
  • 来自专栏服务端技术杂谈

    快的打车架构实践

    快的打车从2013年年底到2014年下半年,系统访问量迅速膨胀,很多复杂的问题要在短时间内解决,且不能影响线上业务,这是比较大的挑战,本文将会阐述快的打车架构演变过程遇到的一些有代表性的问题和解决方案。 针对这些问题,我们设计了快的无线开放平台KOP,以下是一些大的设计原则。 接入权限控制 为接入的客户端分配标示和密钥,密钥由客户端保管,用来对请求做数字签名。 实时计算与监控 我们基于Storm和HBase设计了自己的实时监控平台,分钟级别实时展现系统运行状况和业务数据(架构如图2所示),包含以下几个主要部分。 ? 因此我们基于HBase和数据同步设计了实时数据中心,如图5所示。 ? 图5 实时数据中心架构图 将前台MySQL多库多表通过同步平台,都同步到了HBase; 为减少后台应用层的改动,设计了一个SQL解析模块,将SQL查询转换为HBase查询; 支持二级索引。

    1.3K40发布于 2018-04-17
  • 来自专栏全栈程序员必看

    地图js api教程_地图sdk使用教程

    百度API浏览器定位 API浏览器定位 然后换用去测试,开放的API精确度和百度地图是一样的,小伙伴可以亲自去体验下,难怪百度如今沦落到这样。。。 所以就决定使用API来进行定位了; 主要思路:利用API获取当前位置经纬度、设置考勤点经纬度、计算两点距离判断是否在考勤范围内。 JS API提供的浏览器定位接口,融合了HTML5 Geolocation定位接口、精确IP定位服务,以及安卓定位sdk定位。所以在定位上大大提高了精准度以及成功率。 首先,注册开发者账号,成为开放平台开发者 2. 登陆之后,在进入「应用管理」 页面「创建新应用」 3. 如果您在使用过程中定位失败,可以参考FAQ:Geolocation的定位流程以及定位失败的原因 ,将失败信息通过工单发送给我们,的工程师将协助您解决问题。

    6.6K20编辑于 2022-11-07
  • 来自专栏A周立SpringCloud

    从MySQL可用架构可用架构设计

    可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%。 1.2 可用复制架构 ? 1.3.mysql 可用架构 1.3.1 MySQL Cluster架构 限制存储引擎为NDB存储引擎: ? 此架构特点: 1、安装布署简单,不影响现有架构 2、自动监控和故障转移 3、保障数据一致性 4、故障切换方式可使用手动或自动多向选择 5、适应范围大(适用任何存储引擎) 2.MySQL可用带给我们对可用架构设计的思考 3.总结 我们都知道,单点是系统可用的大敌,单点往往是系统可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。 所以,又往往是通过“自动故障转移”来实现系统的可用。灾备的恢复一般通过日志来做,日志的设计也是难点,MySQL提供了一个思路。

    1.2K20发布于 2019-08-23
  • 来自专栏nice_每一天

    设计模式(二) 打车装饰模式

    如果加班太晚回不去就需要打车。我们以打车这件事情去理解装饰模式。 我们知道出租车是小汽车的一种。打车可以分为几件事情去执行:叫车、等待、坐车、付费结束。 打车的类图 ?  

    52820发布于 2019-07-16
  • 来自专栏Java开发

    Kibana使用地图

    说明 目前Kibana默认自带的地图全部是英文,更换地图对地图汉化 修改配置 编辑kibana配置文件kibana.yml,最后面添加 tilemap.url: 'http://webrd02.is.autonavi.com

    3.2K20发布于 2018-09-06
  • 来自专栏葬爱家族

    Android之旅(6)

    废话 我们看惯了地图,似乎已经习惯了它的ui,认为河流就是蓝色的,土地就是灰色的,交通路网就是黄色的。其实这个ui也是可以改的。今天就来使用下自定义地图ui。 我们可以看到默认为我们提供了几种ui模板,第一个就是我们看腻的标准ui。

    92320发布于 2018-09-05
  • 来自专栏用户7873631的专栏

    地图获取范围

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title></title> <script type="text/javascript" src="https://web

    2.6K10发布于 2021-06-08
  • 来自专栏xin猿意码的公众号文章

    听说你会架构设计?来,弄一个打车系统

    设计一个“网约车系统” 面试官:“滴滴打车用过是吧!看你简历里写道会架构设计是吧,如果让你设计一个网约车系统,你会从哪些方面考虑呢?” 故我们需要开发两个 APP 应用,分别给乘客和司机打车和接单,架构图如下: 1)乘客视角 如上所示:乘客在手机 App 注册成为用户后,可以选择出发地和目的地,进行打车。 2.3 详细设计 打车平台的详细设计,我们会关注网约车系统的一些核心功能,如:长连接管理、地址算法、体验优化等。 相比短连接,长连接优势有三: 连接成功率 网络延时低 收发消息稳定,不易丢失 2)长连接管理 前面说到了长连接的优势是实时性,收发消息稳定,而打车系统里司机需要定期发送自身的位置信息,并实时接收订单数据 这些平台一部分是依靠打车、百度地图、美团打车为代表的网约车聚合平台;另一部分则是以滴滴出行、花小猪、T3 为代表的出行平台。 4.2 网约车平台现状 随着出行的解封,网约车平台重现生机。

    1.6K21编辑于 2023-10-18
  • 来自专栏林间风雨

    vue 天气接口,自定义天气图片

    }) }) } }) }) } } } </script> ``` ```bash Web端使用

    1.7K30发布于 2021-11-03
  • 来自专栏性能与架构

    架构设计原则 - 并发

    并发设计可以从以下几方面考虑: 无状态 拆分 服务化 消息队列 数据异构 缓存 并发化 1. 无状态 无状态的应用容易进行水平扩展。 应用示例:电商促销时,流量会比平时高出几倍甚至几十倍,这就需要特殊的设计来保证系统平稳,一般是牺牲强一致性,保证最终一致性,如扣减库存,直接在 redis 中扣减,记录下日志,通过 worker 同步到数据库 再比如订单系统,可以这样设计: ? 结算服务调用订单接单服务,将订单存储到 redis 和订单队列中。订单redis用于用户查看订单详情,通过队列提升接单能力。 内容整理自张开涛的《亿级流量网站架构核心技术》,推荐详读。

    98350发布于 2019-03-07
  • 来自专栏用户7873631的专栏

    设计第一个地图应用(地图)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title>. <script

    44510发布于 2020-10-28
  • 来自专栏用户7873631的专栏

    地图应用(1)

    代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title></title> <script type="text/javascript" src="https:/

    2.2K10发布于 2021-06-08
  • 来自专栏用户7873631的专栏

    地图JS实现

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> window.onload=function() { new AMap.Map('container'); var jMap=document.createElement("script"); <script type="text/javascript

    5.8K20发布于 2020-10-28
  • 来自专栏数据库架构设计

    mysql可用架构设计

    主要介绍:复制功能介绍,mysql二进制日志,mysql复制拓扑,可用框架,单点故障,读写分离和负载均衡 一 mysql复制功能介绍         mysql复制功能提供分担读负载 二 复制解决的问题 需要其他组件配合完成         2.2 利用DNS轮询的方式把程序的连接到不同的备份数据库         2.3 利用LVS,haproxy这样的代理方式         2.4 非共享架构             所使用的可用管理组件             对应用的支持程度 九 mysql复制拓扑 mysql5.7之前,一个从库只能又一个主库,5.7之后,支持一从多主 在从库上进行数据修改造成的主从复制错误 十二 mysql复制无法解决的问题        分担数据库的写负载         自动进行故障转移及主从切换         提供读写分离功能 十三 可用架构     什么是可用:通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机事件,以提高系统和应用的可用性      可用的因子:正常可用时间,全年时间的百分比      引起系统不可用的原因

    1.2K00发布于 2018-11-18
领券