01 2023 档案

摘要:随着移动互联网的高速发展,各家大厂的小程序百花齐放,在用户规模及商业化方面都取得了极大的成功。微信小程序的日活超过5亿,其他追赶者如:支付宝、百度、字节跳动小程序的月活也纷纷超过3亿。鉴于小程序相比App,无需下载等待,有更高的激活率,相比H5有更好的下单转化率,汽车报价业务线借助各平台的优势,大力发展小程序业务。 目前国内头部应用中,有一半以上部署了小程序。整个小程序生态现在有腾讯、阿里巴巴、百度、字节跳动、手机厂商、京东、360、美团、网易等9大类。然而各家平台的开发规范完全不一样,同时研发几家主流平台的小程序和快应用,对于研发团队提出了挑战,在前端团队人数有限的情况下,如何能搞定诸多平台的小程序是摆在我们面前的难题。 阅读全文
posted @ 2023-01-31 08:34 古道轻风 阅读(418) 评论(0) 推荐(0) 编辑
摘要:MySQL具有开源免费,运维简单,性能好等优点,是在汽车之家使用最多的一种数据库。数据库作为应用的后端存储,承担着数据持久化存储的功能,是应用可以正常对外提供服务的关键组件,数据库的高可用非常重要。 相对于成熟的商业数据库软件,开源的 MySQL高可用需要使用者自己进行设计和研发,本文介绍汽车之家MySQL高可用架构发展历程,建设实践情况。 阅读全文
posted @ 2023-01-30 08:59 古道轻风 阅读(180) 评论(0) 推荐(0) 编辑
摘要:张建飞是阿里巴巴高级技术专家,一直在致力于应用架构和代码复杂度的治理。最近,他在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。结合实际的业务场景,他沉淀了一套“如何写复杂业务代码”的方法论,在此分享给大家,相信同样的方法论可以复制到大部分复杂业务场景。 阅读全文
posted @ 2023-01-28 09:21 古道轻风 阅读(456) 评论(1) 推荐(0) 编辑
摘要:MySQL 作为最流行的关系型数据库管理系统之一,非常多系统的后端存储都有着MySQL 的身影,可谓是广泛应用于各行各业。与此同时,数据库作为应用服务的核心组件,直接影响着应用服务运行。数据库的瓶颈往往也是整个系统的瓶颈,其重要性不言而喻,所以对于 MySQL 的监控必不可少,及时发现 MySQL 运行中的异常,可以有效提高系统的可用性和用户体验。因此,观测 MySQL 关键指标,实时关注数据库的可用性与性能,成为运维团队的重要任务。 阅读全文
posted @ 2023-01-27 08:58 古道轻风 阅读(853) 评论(0) 推荐(0) 编辑
摘要:商品系统是电商系统最基础、最核心的系统之一。商品数据遍布所有业务,首页、门店页、购物车、订单、结算、售后、库存、价格等,都离不开商品。商品信息要稳定提供至到家供应链的每个节点,所以必须要有一套稳定的、高性能的商品服务体系支撑。 随着京东到家商品业务的快速发展,业务从单一转变为多元化,系统功能设计上也从最初的大而全的功能支持,向微功能、领域化演变。 商品系统也在高可用、高并发的持续冲击下,经历了多个架构版本的演进。最初1.0版本,采用合适简单的设计思路,满足了业务快速迭代上线;随着业务量级的快速增长,针对高可用、高性能的提升,演进出了2.0版本。随后业务复杂度的提升,导致了系统复杂度的提升,为了解决系统复杂度带来的问题,孕育出了3.0商品体系领域建设。 阅读全文
posted @ 2023-01-26 09:48 古道轻风 阅读(329) 评论(0) 推荐(0) 编辑
摘要:稳定性保障工作从时间上来说,包括日常业务需求开发时的监控告警配置和开关预留,大促前夕的容量预估、压测、限流、扩容和预热,其实还有一部分,上文未及提及,那便是大促值班。 建议在值班前写一个值班手册,将可能出现的问题,解决方案,需要使用到的工具链接全部罗列清楚,避免值班时手忙脚乱找资料找工具。还有必要的权限申请在值班前申请好。 在大促期间,严阵以待,这个时候需要做到两动,主动关注监控大盘,注意流量变化,监控基础设施指标;被动关注告警,一旦被告警提醒就是有异常情况了,要立刻投入定位解决。 最后,稳定性保障工作是没有尽头的,其重要性不言而喻,但是也要在业务功能与稳定性之间做好权衡,如果稳定性核对的调用流量都超过了业务流量,那么稳定性工作就有点过了,从机器成本、人力成本上都没有这个必要。 本文整理了自己对稳定性保障的认识和理解,可能存在理解有误或者认识不足的情况欢迎指正,也期待更多的学习逐渐修正和完善自己的稳定性相关知识。 阅读全文
posted @ 2023-01-25 12:54 古道轻风 阅读(230) 评论(0) 推荐(2) 编辑
摘要:本文作者通过分析微服务的常见优点能解决的问题,提出如何使用单体应用来缓解这些问题,最终指出采用微服务还是单体架构要根据团队实际情况,而不是为了微服务而微服务。作者最后给出建议,中小团队和新型团队,建议采用单体架构,大中型团队,可以采用微服务架构,但要充分权衡。 在 Web 软件架构方面,微服务架构非常流行,它有大量高知名度的实践者和支持者,如Facebook、Uber、Groupon、Klarna、Amazon、Netflix、eBay、Comcast等。 但是,你很可能不属于这些公司。也就是说,你的团队很可能与这些公司的团队不一样,你没有面临与他们相同的问题。 当然,如果你恰好就属于这些公司(但极大可能你不是),请停止阅读。你们可能就是需要微服务的。 阅读全文
posted @ 2023-01-23 08:20 古道轻风 阅读(185) 评论(0) 推荐(0) 编辑
摘要:一群高智商青年在餐厅吃饭,餐桌上一个瓶盖标识为盐的瓶子里装得是胡椒粉,而标识为胡椒粉的瓶子里装得却是盐,他们想出了一个充满才气的方案来完成对调--仅需要一张餐巾纸、一根吸管和两个空碟子。当他们叫来服务员,准备炫耀他们的天才想法时,只见服务员什么也没说,只是拿起盐瓶和胡椒粉瓶,互换了瓶盖…… 在我们软件工程中,同样一件事情可以有很多种解决方案,我们翻开那继承下来的祖传代码,系统堆叠了太多它不需要或者它不适合的动态扩展、规则引擎、条件分支等等。原本并不复杂的业务最终得到的还是一片混乱,是我们的做法还是太过简单吗,或许本质上是我们并不擅长处理『简单』。 阅读全文
posted @ 2023-01-21 09:45 古道轻风 阅读(119) 评论(0) 推荐(0) 编辑
摘要:本文我们来探讨下如何引入分布式锁解决本地锁的问题。本篇所有代码和业务基于我的开源项目 PassJava。 阅读全文
posted @ 2023-01-20 21:29 古道轻风 阅读(159) 评论(0) 推荐(0) 编辑
摘要:导读:设计模式能够帮助我们优化代码结构,让代码更优雅灵活。有哪些常见的设计模式?如何合理运用?本文分享作者对工厂模式、单例模式、装饰模式、策略模式、代理模式和观察者模式的理解,介绍每种模式的模式结构、优缺点、适用场景、注意实现及代码实现。 阅读全文
posted @ 2023-01-20 08:35 古道轻风 阅读(311) 评论(0) 推荐(0) 编辑
摘要:导读:什么是时延?在电信系统中,不同应用对时延的要求是怎样的?如何通过部署架构降低网络传输时延?本文通过介绍云网络时延的构成,并对其进行量化分析,分享在不同云网络时延要求下,不同应用对应的部署架构,并简单分析了5G时代对应用部署架构的影响和度量云网络时延的工具。 阅读全文
posted @ 2023-01-19 20:50 古道轻风 阅读(412) 评论(0) 推荐(0) 编辑
摘要:最近看了一本书《解构-领域驱动设计》,书中提出了领域驱动设计统一过程(DDDRUP),它指明了实践 DDD 的具体步骤,并很好地串联了各种概念、模式和思想。因此,我对书本内容做了梳理、简化,融入自己的理解,并结合之前阅读的书籍以及实践经验,最终形成这篇文章。希望可以帮助大伙理顺 DDD 的各种概念、模式和思想,降低上手 DDD 的门槛。 阅读全文
posted @ 2023-01-19 08:35 古道轻风 阅读(354) 评论(0) 推荐(0) 编辑
摘要:随着计算机系统的规模越来越大,业务量的迅速提升和互联网的爆炸式增长,集中式系统采用大型主机单机部署带来了一系列问题:系统大而复杂、难于维护、发生单点故障引起雪崩、扩展性差等。这些都使业务面临巨大的压力和严重的风险,为了解决集中式系统架构面临的痛点,分布式系统架构逐步走上舞台。分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统,可以很好的解决系统扩容、可用性以及降低成本。 阅读全文
posted @ 2023-01-18 08:57 古道轻风 阅读(211) 评论(0) 推荐(0) 编辑
摘要:Elasticsearch(简称:ES)功能强大,其背后有很多默认值,或者默认操作。这些操作优劣并存,优势在于我们可以迅速上手使用 ES,劣势在于,其实这些默认值的背后涉及到很多底层原理,怎么做更合适,只有数据使用者知道。用 ES 的话来说,你比 ES 更懂你的数据,但一些配置信息、限制信息,还是需要在了解了 ES 的功能之后进行人工限制。 你是否遇到:在使用了一段时间 ES 之后,期望使用 ES 的其他功能,例如聚合、排序,但因为字段类型受限,无奈只能进行reindex等一系列问题? 题主在遇到一些问题后,发现用 ES 很简单,但是会用 ES 很难。这让我下定决心一定好好了解 ES,也就出现了本文。 阅读全文
posted @ 2023-01-17 05:16 古道轻风 阅读(287) 评论(0) 推荐(1) 编辑
摘要:纵观软件研发的发展历程,如果说“业务需求开发”是核心主线的话,那么研发效能建设就是这一核心主线之外最大的一条支线。每个历史阶段的研发效能所面对的主要矛盾次要矛盾都不一样,因此大家可以看到,在不同的历史阶段产生了不同的“研发效能提升产品”:从文本编辑器到带有各种功能的 IDE(Integrated Develop Environment),从单一的命令行脚本到覆盖代码发布全生命周期的 CI/CD 系统,从各种“上古时代”的协作表格或文档到目前已经发展出的横跨软件研发生命周期、覆盖软件开发关键维度的在线协作系统,似乎你能想到的降本提效的方法和途径,都有人帮你做了专业的产品用来满足你的各种要求和与众不同的偏好。 阅读全文
posted @ 2023-01-16 08:43 古道轻风 阅读(860) 评论(0) 推荐(0) 编辑
摘要:软件交付的终态是提供一个稳定可预期的系统,可预期的系统要确保环境和软件制品的一致性。而在软件研发协作的过程中,无论是制品、环境,还是发布过程,往往都是定义在代码里的。 软件交付体现为发布,而提升交付能力的目标,是要发的容易,发的频繁,增量要多,每次发的时间要少。 阅读全文
posted @ 2023-01-15 09:28 古道轻风 阅读(132) 评论(0) 推荐(0) 编辑
摘要:程序员拥有一个较好的编程原则能使他的编程能力有大幅的提升,可以使其开发出维护性高、缺陷更少的代码。以下内容梳理自StactOverflow的一个问题:编程时你最先考虑的准则是什么? 阅读全文
posted @ 2023-01-14 09:17 古道轻风 阅读(326) 评论(0) 推荐(0) 编辑
摘要:现今有越来越多的企业开始采纳云原生理念进行应用架构转型。而 K8s 和微服务是云原生的两大支柱,随着云原生浪潮而被广泛应用。 对多数应用而言,提供对外服务的使命并不会改变,相比于原来的单体应用,微服务架构下的应用的服务出口更多,管理更繁琐,微服务网关也应运而生;而 K8s 也提供了多种方式来暴露应用的服务,各种 Ingress 实现百花齐放。面对众多技术方案,我们如何做出合理的选择,规避潜在风险,本文将给出一些选型建议,供大家参考。 阅读全文
posted @ 2023-01-13 08:29 古道轻风 阅读(307) 评论(0) 推荐(0) 编辑
摘要:一、系统性能问题五大特性 二、系统性能排查方略 三、MySQL开发规范和常见调优策略 四、MySQL性能管控体系 五、未来展望 阅读全文
posted @ 2023-01-12 08:38 古道轻风 阅读(147) 评论(0) 推荐(0) 编辑
摘要:分享概要 一、业务场景 二、架构演进 三、架构设计 四、稳定性 五、效率 阅读全文
posted @ 2023-01-11 08:11 古道轻风 阅读(382) 评论(0) 推荐(0) 编辑
摘要:select/poll/epoll 是 Linux 服务器提供的三种处理高并发网络请求的 IO 多路复用技术,是个老生常谈又不容易弄清楚其底层原理的知识点,本文打算深入学习下其实现机制。 Linux 服务器处理网络请求有三种机制,select、poll、epoll,本文打算深入学习下其实现原理。 吃水不忘挖井人,最近两周花了些时间学习了张彦飞大佬的文章 图解 | 深入揭秘 epoll 是如何实现 IO 多路复用的 和其他文章 ,及出版的书籍《深入理解 Linux 网络》,对阻塞 IO、多路复用、epoll 等的实现原理有了一定的了解;飞哥的文章描述底层源码逻辑比较清晰,就是有时候归纳总结事情本质的抽象程度不够,涉及内核源码细节的讲述较多,会让读者产生一定的学习成本,本文希望在这方面改进一下。 阅读全文
posted @ 2023-01-10 08:35 古道轻风 阅读(4471) 评论(1) 推荐(6) 编辑
摘要:序: 之前看过杨振宁的一个采访,说他最大的成就,不是获得了诺贝尔奖的研究,而是之前的一个普通理论的研究:他坚信事物是遵循一定规律的,不是大家认为的不可捉摸,花了7年时间,陆陆续续,终于找到了一个很好的解释,并且幸运的是,这个研究结果可以覆盖非常多的场景。 当我看到这个采访的时候,内心触动到的一个点是:尝试寻求表象背后的规律或者通用解释,是能够帮助更多的人、产生更大的影响的,这也应该是我们应该努力并坚持的方向。 阅读全文
posted @ 2023-01-09 10:17 古道轻风 阅读(152) 评论(0) 推荐(0) 编辑
摘要:作为卓越工程文化的一部分,Code Review其实一直在进行中,只是各团队根据自身情况张驰有度,松紧可能也不一,这里简单梳理一下CR的方法和团队实践。 阅读全文
posted @ 2023-01-08 09:37 古道轻风 阅读(167) 评论(0) 推荐(0) 编辑
摘要:写在前面: 写这篇文章的目的是为了能够更好的帮助刚入职的新人了解这个岗位和自己的工作,也想谈谈自己工作一年来对这个领域的了解程度,做一个小小总结吧~ 阅读全文
posted @ 2023-01-07 10:17 古道轻风 阅读(378) 评论(1) 推荐(3) 编辑
摘要:在这30年的历史长河中,中国服务器一直走“边模仿边创新”的道路。但始终无法独立走上“自主可控”的道路,核心是芯片。 这不单是服务器的问题,是所有IT产业面临的终极问题。 本文聚焦在2010年前后至今的10多年。明显看出,我国服务器本土厂商在国际动荡的形势以及在国家政策引导下终于成为产业的主力军。这一切是如何发生的? 阅读全文
posted @ 2023-01-06 08:36 古道轻风 阅读(400) 评论(0) 推荐(0) 编辑
摘要:Let's Encrypt 是一个由非营利性组织 互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA)。 简单的说,借助 Let's Encrypt 颁发的证书可以为我们的网站免费启用 HTTPS(SSL/TLS) 。 Let's Encrypt免费证书的签发/续签都是脚本自动化的,官方提供了几种证书的申请方式方法,点击此处 快速浏览。 官方推荐使用 Certbot 客户端来签发证书,这种方式可参考文档自行尝试,不做评价。 我这里直接使用第三方客户端 acme.sh 申请,据了解这种方式可能是目前 Let's Encrypt 免费证书客户端最简单、最智能的 shell 脚本,可以自动发布和续订 Let's Encrypt 中的免费证书。 阅读全文
posted @ 2023-01-05 08:33 古道轻风 阅读(11133) 评论(0) 推荐(2) 编辑
摘要:一、背景 作为在后端圈开车的多年老司机,是不是经常听到过,“mysql 单表最好不要超过 2000w”,“单表超过 2000w 就要考虑数据迁移了”,“你这个表数据都马上要到 2000w 了,难怪查询速度慢”。 这些名言民语就和“群里只讨论技术,不开车,开车速度不要超过 120 码,否则自动踢群”, 阅读全文
posted @ 2023-01-04 13:14 古道轻风 阅读(328) 评论(0) 推荐(1) 编辑
摘要:本文从 5W1H 角度介绍了分库分表手段,其在解决如 IO 瓶颈、读写性能、物理存储瓶颈、内存瓶颈、单机故障影响面等问题的同时也带来如事务性、主键冲突、跨库 join、跨库聚合查询等问题。anyway,在综合业务场景考虑,正如缓存的使用一样,本着非必须勿使用原则。如数据库确实成为性能瓶颈时,在设计分库分表方案时也应充分考虑方案的扩展性,或者考虑采用成熟热门的分布式数据库解决方案,如 TiDB。 阅读全文
posted @ 2023-01-03 13:40 古道轻风 阅读(307) 评论(0) 推荐(0) 编辑
摘要:“架构制图”这词乍一听似乎有些晦涩,但如果提起“工程制图”,相信绝大部分工科背景的程序员们都不会陌生,甚至还能共同感慨下那些年一起伏在宿舍左手圆规,右手直尺,徒手作图到深夜的日子。 软件工程也是工程,因此传统工程制图的一些基本理论,在软件行业同样适用。但另一方面,软件与实体制造业之间还是有着本质区别,所以在制图方面的需求和方式也大相径庭,无法直接套用。作为软件行业的从业者,你可以完全不懂工程制图,但你不得不懂架构制图 —— 这是任何程序员职业生涯的的必修课。 阅读全文
posted @ 2023-01-02 11:53 古道轻风 阅读(347) 评论(0) 推荐(0) 编辑
摘要:为了应对大流量,现代应用/中间件通常采用分布式部署,此时不得不考虑 CAP 问题。ZooKeeper(后文简称 ZK)是面向 CP 设计的一个开源的分布式协调框架,将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用,分布式应用程序可以基于它实现诸如 数据发布/订阅、负载均衡、命名服务、集群管理、Master 选举、分布式锁、分布式队列 等功能。ZK 之所以能够提供上述一套分布式数据一致性解决方案,核心在于其设计精妙的数据结构、watcher 机制、Zab 一致性协议等,下面将依次剖析。 阅读全文
posted @ 2023-01-01 10:23 古道轻风 阅读(151) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示