随笔分类 - 软件工程
摘要:2020 年我有幸加入腾讯 tdmq 初创团队,当时 tdmq 还正在上云公测阶段,我第一次从一个使用工具的人转变成了开发工具的人, 这个过程使我沉淀了很多消息队列知识与设计艺术。 后来在业务中台的实践中,也频繁地使用到了 MQ,比如最常见的消息推送,异常信息的重试等等, 过程中也对消息队列有了更加
阅读全文
摘要:一、背景 魔笛活动平台要记录每个活动的用户行为数据,帮助客服、运营、产品、研发等快速处理客诉、解决线上问题并进行相关数据分析和报警。可以预见到需要存储和分析海量数据,预估至少几十亿甚至上百亿的数据量,所以需要选择一款能存储海量数据的数据库。由于是通过接收MQ存储或者API方式存储,所以对实时写入性能
阅读全文
摘要:一、前言 物流合约中心是京东物流合同管理的唯一入口。为商家提供合同的创建,盖章等能力,为不同业务条线提供合同的定制,归档,查询等功能。由于各个业务条线众多,为各个业务条线提供高可用查询能力是物流合约中心重中之重。同时计费系统在每个物流单结算时,都需要查询合约中心,确保商家签署的合同内容来保证计费的准
阅读全文
摘要:1. 介绍 阿里巴巴 Arthas 是一个诊断工具,可以用于监视、分析和解决 Java 应用程序的问题。使用 Arthas 的一个主要优点是,我们不需要修改代码,甚至不需要重新启动我们想要监视的 Java 服务。 在本教程中,我们将首先安装 Arthas,在此之后,通过一个简单的案例来演示 Arth
阅读全文
摘要:没有足够的特征数据,安全策略将是"无根之木,无源之水"。微信安全数据仓库应运而生,成为整个安全业务的特征数据存储中心,每天服务了万亿级的特征数据读写请求,为整个微信安全策略提供了可靠的数据支撑,是微信安全基石之所在。然而,微信安全数据仓库不仅仅是一个存储中心,更是一个特征管理和数据质量管理的中心。在演进过程中,数据仓库一直致力于提升特征管理能力和数据质量保障,实现了特征的管理、共享、分析和数据质量检测等功能。本文将介绍安全数据仓库的起源、演进、当前的架构设计和数据质量保证系统的实现。
阅读全文
摘要:本文主要讲述了应对复杂性的一些原则和经验,通过实际案例解构设计思想,个人认为好的设计是体现在「职责分离」、「抽象分层」和「变化扩展」上,在类的结构设计上尤其要花心思去想,如「变与不变分离」、「配置域与执行域分离」、「查询与命令分离」。
阅读全文
摘要:一、前言 常见的DDD实现架构有很多种,如经典四层架构、六边形(适配器端口)架构、整洁架构(Clean Architecture)、CQRS架构等。架构无优劣高下之分,只要熟练掌握就都是合适的架构。本文不会逐个去讲解这些架构,感兴趣的读者可以自行去了解。 本文将带领大家从日常的三层架构出发,精炼推导
阅读全文
摘要:一、前言 领域驱动设计,测试驱动开发。 我们在《手把手教你落地DDD》一文中介绍了领域驱动设计(DDD)的落地实战,本文将对测试驱动开发(TDD)进行探讨,主要内容有:TDD基本理解、TDD常见误区、TDD技术选型,以及案例实战。希望通过本文,读者能够理解掌握TDD并将其应用于实际开发中。 二、TD
阅读全文
摘要:内因:随着之家业务快速发展,公司内部的数字化需求越来越多,信息系统团队每年都面对大量的需求,但研发侧资源是一定的,那么如何更快速的交付需求,越来越成为团队重点思考解决的问题。
外因:互联网技术的不断推陈出新,尤其以React,Vue为代表的前端技术框架突飞猛进,大幅降低了可视化拖拽操作的技术门槛。
行业内低代码平台主要涉及表单,流程, 数据开发,BI工具,智能机器人等方向。
阅读全文
摘要:业界有很多大促活动,像618、双11、双12等等。每一次大促不只是给业务带来了新高,对于技术同样也有很重要的意义,纵观一些优秀的技术团队,都是跟着业务一起成长的。在高并发大流量的背景下,如何支撑好业务运营,是一件很有挑战性的事情,它可以从多方面检验我们的技术能力,对我们的系统架构和应急保障都提出了很高的要求。
哈啰在去年9月30日开启了首届的假日狂欢节,我们也做了很多的稳定性保障工作,最终大促顺利渡过,业务体感非常顺滑,所以借此机会总结下我们在稳定性保障这方面的一些工作,分享给大家。
阅读全文
摘要:作者总结这些年在支付宝做架构的经验,把自己摸索成长的内容写下来,从对架构师的认知到业务能力和架构能力多方面总结了案例经验,希望可以帮助到大家。
阅读全文
摘要:水满则溢,月盈则亏,任何事物都不可能无限制的发展,我们的系统服务能力也一样。
当随着流量的不断增长,达到或超过服务本身的可承载范围,系统服务的自我保护机制的建立就显得很重要了。
本文希望可以用最通俗的解释和贴切的实例来带大家了解什么是限流、降级和熔断。
阅读全文
摘要:一个小小的故障就可能造成巨大的负面影响,因此稳定性工作复杂却又至关重要。本文将通过故障预防、修复、复盘来讲解该如何建设一个稳定性体系。
来到阿里后,我的工作内容一直都是商品中心的稳定性,这份工作对于我个人在技术和经验上的成长提升是无比巨大的。在我看来,稳定性是一个极为复杂的工作,对人的能力考验极大,本文希望和大家一起了解:
稳定性是做什么的?
稳定性到底怎么做?
做好稳定性,需要什么样的能力?
怎么从稳定性零散的事情中创造价值?
阅读全文
摘要:1. 背景 日志领域是Elasticsearch(ES)最重要也是规模最大的应用场景之一。这得益于 ES 有高性能倒排索引、灵活的 schema、易用的分布式架构,支持高吞吐写入、高性能查询,同时有强大的数据治理生态、端到端的完整解决方案。但原生 ES 在高吞吐写入、低成本存储、高性能查询等方面还有
阅读全文
摘要:工业互联网项目开发全流程V3.0 工业互联网项目开发工作流程及核心问题 一、需求分析 1、共享平台需求分析 这个平台要解决什么问题?这个平台的用户群体是谁?这个平台应该具备哪些主要功能?这个平台的使用场景是什么?这个平台如何与现有的系统集成? 2、需求文档设计 需求文档是否详细、明确,且可以量化?是
阅读全文
摘要:在日常开发中会经常遇到一些需要异步定时执行的业务诉求,典型的使用场景如:超时未支付订单关单、每隔 2h 更新好友排行榜、3.22 日 17 点《xx》剧上线等。目前业务侧多基于以下思路来快速搭建一个调度系统,mysql 或者 redis 队列存储待执行任务,通过 crontab 定时触发应用完成“捞取、计算、执行等操作”。不难看出存在几类亟待解决问题:
1)缺少统一的调度平台导致各业务重复开发;
2)简易版调度实现在任务吞吐、调度时效上缺少保障;
3)业务和调度数据强耦合存储给线上稳定性引入大 key、慢 sql 风险。
目前存在多类开源解决方案如 XXL-Job 、 Elastic-Job、quartz 调度等,但这些都属于进程级调度平台,很难满足更细粒度的业务调用。基于上述的业务诉求和司内现状,我们准备搭建一套通用的分布式任务调度平台(以下统称为 tjobs 平台)以满足业务高可靠、低延迟的海量任务调度诉求。
阅读全文
摘要:本文主要基于团队实际开发经验与积累,并结合了业界对大数据SQL的使用与优化,尝试给出相对系统性的解决方案。
阅读全文
摘要:根据数据统计,我们可以得出结论:每年的618大促销售额约占全年销售额的10%左右。以2022年618大促销售额为例,大促期间,每分钟的销售额平均高达1463万元。因此,从技术角度来看,保证服务的稳定性是至关重要的。相信这些数据可以为您在大促期间制定任务优先级和做出决策提供有价值的参考。
阅读全文
摘要:生活中我们经常谈及 “架构”,那么到底什么是 “架构”,Robert C.Martin《架构整洁之道》中的定义:软件架构是指设计软件的人为软件赋予的形状,这个形状是指系统如何被划分为组件 (Components),各个组件如何排列(Arrangement),组件之间如何沟通(Communication,通讯),维基百科的定义:有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计,IEEE 的定义:架构 = 组成单元的结构 + 组成单元的关系 + 原则和指南
阅读全文
摘要:本文作者从评判标准、功能评测、性能评测等多方面剖析三方库哪些家强,并给出了比较务实的建议。
阅读全文