
架构沉思录
文章平均质量分 92
系统架构的灵魂思考
天秤座的架构师
非著名架构师
展开
-
异地多活架构
在软件开发领域,「异地多活」是分布式系统架构设计的一座高峰,很多人经常听过它,但很少人理解其中的原理。异地多活到底是什么?为什么需要异地多活?它到底解决了什么问题?究竟是怎么解决的?这些疑问,想必是每个程序看到异地多活这个名词时,都想要搞明白的问题。有幸,我曾经深度参与过一个中等互联网公司,建设异地多活系统的设计与实施过程。所以今天,我就来和你聊一聊异地多活背后的的实现原理。认真读完这篇文章,我相信你会对异地多活架构,有更加深刻的理解。这篇文章干货原创 2022-02-11 12:14:20 · 24359 阅读 · 0 评论 -
如何构建和设计高扩展性系统
主要内容 本书从多个方面围绕高扩展性提出了50条建议,一个高扩展性的网站会随着业务的发展、用户的增加,自由的扩展架构,从而轻松的应付网站的快速发展。下面看看本书的具体内容:化简方程 1 不要过度的设计 过度的设计相当于给系统增加了复杂度与维护的成本。而这些过度的设计,在正常的使用中,却没有太大的作用。往往是设计者自己认为很重要或者锦上添花的功能,实际用处不大。 2 设计时考虑到扩展性 在设计时要遵循一下的设计原则:设计时考虑20倍的容量,实现时考虑3倍的容量原创 2022-02-11 12:08:11 · 23898 阅读 · 0 评论 -
Maven依赖冲突避坑指北
假如项目工程是2019年底创建,并且依赖了版本为 2.9.10的jackson-core, 到2021年,由于需求的迭代,增加了很多新的依赖,这些新的依赖如果使用的jackson-core是2.11之后的版本,并且使用了诸如上面这个只在后续版本中存在的方法,则很有可能因为依赖冲突,因为工程真正还是使用的 2.9.10版本的库。有个最直接的现象,即在实际开发过程中,或多或少要引入一些依赖,若在引入依赖后工程无法启动了,或者之前都正常运行的逻辑却在某些场景下突然报错了等等,依赖冲突可能就是罪魁祸首。原创 2022-10-26 15:10:50 · 25146 阅读 · 0 评论 -
微服务架构设计总结实践篇
一、微服务架构介绍二、出现和发展三、传统开发模式和微服务的区别四、微服务的具体特征五、SOA和微服务的区别六、如何具体实践微服务七、常见的微服务设计模式和应用八、微服务的优点和缺点九、思考:意识的转变十、参考资料和推荐阅读- 微服务架构介绍 -微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOL...原创 2021-11-07 08:33:16 · 23523 阅读 · 0 评论 -
亿级流量架构之资源隔离思路与方法
为什么要资源隔离常见的资源,例如磁盘、网络、CPU等等,都会存在竞争的问题,在构建分布式架构时,可以将原本连接在一起的组件、模块、资源拆分开来,以便达到最大的利用效率或性能。资源隔离之后,当某一部分组件出现故障时,可以隔离故障,方便定位的同时,阻止传播,避免出现滚雪球以及雪崩效应。常见的隔离方式有:线程隔离 进程隔离 集群隔离 机房隔离 读写隔离 动静隔离 爬虫隔离 等等线程隔离网络上很多帖子,大多是从框架开始聊的,这儿说人话其实就是对线程进行治理,把核心业务线程与非核心业务原创 2021-11-07 07:16:31 · 23724 阅读 · 0 评论 -
面向对象设计 — 类和对象
java.面向对象设计的核心——类和对象面向对象的三条学习主线#java类及类的成员 属性、方法、构造器;代码块、内部类 面向对象的三大特征 封装性、继承性、多态性(抽象性) 其他关键字 this、super、static、final、abstract、interface、package、import等面向过程(POP)与面向对象(OOP)# 二者都是一种思想,面向对象是相对于面向过程而言。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,原创 2021-09-24 09:03:30 · 24792 阅读 · 0 评论 -
如何设计推荐系统架构?
推荐系统是移动互联网时代非常成功的人工智能技术落地场景之一。本文我们将从架构设计的角度回顾和讨论推荐系统的一些核心算法模块,重点从离线层、近线层和在线层三个架构层面讨论这些算法。本文不会讲解一些具体推荐模块的架构设计,但无论什么推荐模块,其逻辑经过拆解后都可以映射到本文的架构体系中,做到触类旁通,举一反三。1 架构设计概述 架构设计是一个很大的话题,本文这里只讨论和推荐系统相关的部分。更具体地说,我们主要关注的是算法以及其他相关逻辑在时间和空间上的关系——这样一种逻辑上...原创 2020-09-29 18:01:58 · 24444 阅读 · 0 评论 -
如何优雅的实现业务中台商业能力服务API try/catch 异常块?
在项目中,我们会遇到异常处理,对于运行时异常,需要我们自己判断处理。对于受检异常,需要我们主动处理。但是繁琐的try{}caht嵌套在代码里,看着很不舒服,这里我们不讨论性能,就代码来讲,来看看如何将他隐藏起来。原理是不变的。变得是写法。下面我们来看如何优雅的处理异常块。在这之前。你需要知道以下几个概念: 行为参数化: 是java8提出的,函数式编程的一种思想,通过把代码包装为参数传递行为,即把代码逻辑包装为一个参数,传到方法里。 Lambda表达式: ja转载 2020-09-29 12:31:47 · 6305 阅读 · 0 评论 -
阿里资深技术专家:如何对复杂的业务系统进行解耦和重构?
要明白实际上微服务后续出现的诸多问题往往都是一开始微服务模块划分就不合理导致,对于具体的模块划分方法和原则,我在上面文章里面给出了以下几点。 原则1:划分为<10个微服务模块 原则2:强数据关联模块不要拆分 原则3:以数据聚合驱动业务功能聚合 原则4:从纵向功能划分思路到横向分层思路转变 原则5:高内聚,松耦合的基础原则 对于具体的内容在这篇文章不再重复给出。可以看到对于微服务模块拆分更多的是属于业务建模和系统分析方面的内容,而今天谈的微服务解耦重点是原创 2020-09-29 12:29:04 · 29633 阅读 · 0 评论 -
系统在什么时候需要重构?手把手教你重构偿还技术债务......
重构不止是代码整理,它提供了一种高效且受控的代码整理技术,同时重构也是技术债务偿还的主要方式。(一)重构原则1、何谓重构对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。另一种解释是:使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。2、为何重构改进软件设计:如果没有重构,程序的设计会逐渐变质,重构很像是在整理代码,你所做的就是让所有的东西回到应处的位置上。帮助找到bug:对代码进行重构,可以深入理解代码的作...原创 2020-09-29 12:25:41 · 24978 阅读 · 0 评论 -
如何提升软件开发效能?企业级业务架构思考与实践
企业级业务架构(EBA)方法源自Zachman框架和TOGAF理论。企业架构总是给人一种庞大而笨重的印象,实践往往也需要一定的时间周期,相信很多人都会怀疑这种连它自己都快不起来的实施模式会对提升企业级应用系统软件开发效能有什么帮助,本文笔者就试着讨论下这个问题,同时,也跟各位读者分析分析软件工程发展至今仍有很大不足的一处“盲区”。企业级系统软件开发效能存在的一些瓶颈1. 令人头疼的源头管理软件行业一直在致力于工程效率方面的持续改进,从瀑布模型、螺旋模型到敏捷过程。对于效率而言,...原创 2020-09-29 08:54:10 · 26813 阅读 · 0 评论 -
基于DSL的高性能状态机实现原理
导读:什么是DSL ?DSL是一种工具,其核心价值在于提供了一种手段,可以更加清晰地就系统某部分的意图进行沟通。本文将通过实现一个状态机引擎来看清 DSL 的本质,介绍状态机的核心模型和 Fluent 接口,并解决状态机的性能问题。最近在一个项目中,因为涉及很多状态的流转,我们选择使用状态机引擎来表达状态流转。因为状态机 DSL(Domain Specific Languages)带来的表达能力,相比较于 if-else 的代码,要更优雅更容易理解。另一方面,状态机很简单,不像流程引擎那么...原创 2020-09-29 08:32:44 · 24946 阅读 · 0 评论 -
如何演进和优化电商商品结构?我们通过......
引言商品的信息结构化程度在某种意义上来说决定导购效率的天花板。闲鱼商品结构化和淘宝/天猫最大的区别在于闲鱼卖家都是个人用户,无论是专业程度还是行动力远不及淘宝卖家。为了不阻碍商品发布,闲鱼一直倡导轻发布,理想状况用户拍完照片输入一段描述即可完成发布。但是这和商品结构化相悖:卖家输入信息越多,越有利于商品结构化,但是用户发布商品的意愿就会越低。我们要做的就是在不阻碍用户发布商品的前提下提高商品结构化程度。结构化历程闲鱼商品结构化的探索一直没有停过。目前为止,...原创 2020-09-29 08:35:02 · 24927 阅读 · 0 评论 -
阿里研究员谷朴:警惕软件复杂度困局
导读:对于大型的软件系统如互联网分布式应用或企业级软件,为何我们常常会陷入复杂度陷阱?如何识别复杂度增长的因素?在代码开发以及演进的过程中需要遵循哪些原则?本文将分享阿里研究员谷朴关于软件复杂度的思考:什么是复杂度、复杂度是如何产生的以及解决的思路。较长,同学们可收藏后再看。软件设计和实现的本质是工程师相互通过“写作”来交流一些包含丰富细节的抽象概念并且不断迭代过程。> 另外,如果你的代码生存期一般不超过 6 个月,本文用处不大。软件架构的核心挑战是快速增长的复...原创 2020-09-29 08:33:01 · 24376 阅读 · 0 评论 -
阿里CTO鲁肃:技术的想象力不应设限,未来所有应用的核心都离不开数据和智能
从一个用户到上亿用户 余额宝花了1年 健康码用了几天时间2013年6月阿里推出了余额宝,短短1年时间里达到上亿用户规模。那个时候,无论支付宝——承载余额宝的业务系统,还是后端——我们的合作伙伴天弘基金的系统都面临一个很大的挑战:怎么能够让余额宝快速扩展到服务上亿用户?为此,我们的技术团队专门打了一场仗:用最短的时间和阿里云一起把天弘基金的系统搬到云上,通过云的方式扩展到可以服务几亿用户,搬上云大概也用了3个月时间。所以余额宝从一个用户到上亿用户,前后大概花了1年的时间。...原创 2020-09-28 19:37:01 · 24729 阅读 · 0 评论 -
架构师必备:云原生数据湖体系
背景“ 数据湖 ”正在被越来越多人提起,尽管定义并不统一,但企业们都已纷纷下水实践,无论是AWS还是阿里云、华为。我们认为:数据湖是大数据和AI时代融合存储和计算的全新体系。为什么这么说?还要从它的发展说起。数据量爆发式增长的今天,数字化转型成为IT行业的热点,数据需要更深度的价值挖掘,因此需要确保数据中保留的原始信息不丢失,应对未来不断变化的需求。当前以Oracle为代表的数据库中间件已经逐渐无法适应这样的需求,于是业界也不断地产生新的计算引擎,以便应对大数据时代的...原创 2020-09-28 19:33:32 · 24814 阅读 · 0 评论 -
供君一笑:天庭需要怎样的数据存储系统
大家好,我是阿里云存储团队的储留香。今天继续和大家聊存储。在中国神话故事中,高达九重的天庭之中神仙众多,二十八星宿、三十六天罡、七十二地煞等等,每位大仙也多是长生不死,少则几百、多则几万岁,要保障如此庞大的系统组织高效运转就需要一个良好的数据存储系统。今天,我们就来探究一下,如何构建天庭的数据存储系统。在满足需求之前,我们需要明确需求。天庭在数据存储方面的主要需求大体可以概括为:1、 稳定稳定是一切的基石。日常操...原创 2020-09-28 19:31:25 · 23638 阅读 · 0 评论 -
钉钉如何通过时序存储赋能数字化变革的信息洪流?
今年的疫情来势汹汹,新冠病毒作为2020最具代表性的黑天鹅事件,虽然引起了一系列不良的连锁反应,但是却让“停工不停业、停课不停学”成为了疫情时期的刚需。在疫情期间钉钉下载量激增,直冲各大应用商城下载量榜首,同时在线人数最多达到了2亿人。即使现在各行业已经正常复工,但钉钉的下载与使用量仍保持一个高速的提升,截至目前为止已有3亿的用户和1500w的企业组织在上面进行工作和学习。但在这飞速发展的背后,对于技术也自然提出了更高的要求,尤其IM作为钉钉的核心功能,随着用户应用的不断深入,因此...原创 2020-09-28 19:29:07 · 23612 阅读 · 0 评论 -
阿里巴巴电商搜索推荐实时数仓演进之路
1. 业务背景阿里巴巴电商搜索推荐实时数据仓库承载了阿里巴巴集团淘宝、淘宝特价版、饿了么等多个电商业务的实时数仓场景,提供了包括实时大屏、实时报表、实时算法训练、实时A/B实验看板等多种数据应用支持。数据的价值我们认为数据处于阿里巴巴搜索推荐的大脑位置,这体现在算法迭代、产品运营和老板决策等多个方面。那么数据是怎样在搜索推荐业务场景中流转的呢?首先是信息采集,用户在使用手机淘宝的搜索和推荐功能时,会触发到服务端上的埋点信息;接下来会经过离线和实时的ETL加工,再...原创 2020-09-28 19:26:02 · 23383 阅读 · 0 评论 -
数据湖--架构师如何助力“湖加速”?
在开源大数据领域,存储/计算分离已经成为共识和标准做法,数据湖架构成为大数据平台的首要选择。基于这一范式,大数据架构师需要考虑三件事情: 第一,选择什么样的存储系统做数据湖(湖存储)? 第二,计算和存储分离后,出现了性能瓶颈,计算如何加速和优化(湖加速)? 第三,针对需要的计算场景,选择什么样的计算引擎(湖计算)? 湖存储可以基于我们熟悉的HDFS,在公共云上也可以选择对象存储,例如阿里云OSS。在公共云上,基于对象存储构建数据湖是目前业界...原创 2020-09-28 19:20:44 · 24347 阅读 · 0 评论 -
作为架构师该如何面对系统和业务的复杂性?
关于系统和业务的复杂度是在时间这条基线上事物演化的必然产物,我想说世界是熵增的(即万物都在缓慢的分崩离析),控制复杂度是我们这些从业者无法推卸的责任和使命。 心力是指不将就的匠心,不妥协的决心,不满足的好奇心、以及不放弃的恒心。 脑力是指那些必要的思维能力、学习能力、思考能力、思辨能力。 之所以说“业务理解-->领域建模-->流程分解-->多维分析”是体力,是因为实现它们就像是在做填空题,只要你愿意花时间,再复杂的业务都可以按部...原创 2020-09-28 19:16:31 · 24054 阅读 · 0 评论 -
复杂性应业务抽象本质——系统化多维度思考(如何让抽象更上一层楼)
前言这篇文章,是对之前我在《资深技术专家推荐:如何写复杂业务代码-阿里实践》说的“自上而下的结构化分解 + 自下而上的抽象建模”方法论的升级。因为在之前的方法论中,我们缺少一个自顶向下多层次和多维度看问题的全局视角,导致可能会miss掉一些重要的业务信息,从而在制定设计策略的时候,陷入困难。对于企业业务单元来说,从抽象的角度来讲,大部分的业务具有相似的业务流程和相关联的业务活动,因为业务落地和实施中往往会因为时间、资源、业务价值等原因而使用临时方案堆积和粗制滥造,最终陷入业务泥潭和...原创 2020-09-28 19:11:37 · 26703 阅读 · 0 评论 -
阿里资深架构师答疑:数据湖概相关念、特征、架构与案例
最近,数据湖的概念非常热,许多前线的同学都在讨论数据湖应该怎么建?阿里云有没有成熟的数据湖解决方案?阿里云的数据湖解决方案到底有没有实际落地的案例?怎么理解数据湖?数据湖和大数据平台有什么不同?头部的云计算玩家都各自推出了什么样的数据湖解决方案?带着这些问题,我们尝试写了这样一篇文章,希望能抛砖引玉,引起大家一些思考和共鸣。原创 2020-07-09 08:50:12 · 25038 阅读 · 0 评论 -
分布式柔性事务详解--基于事务型MQ
一、概述咱们今天聊聊分布式事务系列中的最后一个方案:最大努力通知事务。最大努力通知事务的主流实现仍是基于MQ来进行事务控制。最大努力通知事务和事务消息都是通知型事务,主要适用于那些需要异步更新数据,并且对数据的实时性要求较低的场景。最大努力通知事务主要用于外部系统,因为外部的网络环境更加复杂和不可信,所以只能尽最大努力去通知实现数据最终一致性,比如充值平台与运营商、支付对接、商户通知等等跨平台、跨企业的系统间业务交互场景;而事务消息主要适用于内部系统的数据最终一致性保障,因为内部相对比较可控,比如订原创 2020-07-05 16:29:18 · 24722 阅读 · 0 评论 -
阿里资深架构师:什么才是真正的架构设计
在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。原创 2020-07-05 16:29:25 · 25716 阅读 · 0 评论 -
细谈八种架构设计模式及其优缺点概述
什么是架构我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是骨架,如下图所示:人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤。架构对于软件的重要性不亚于骨架对人类身体的重要性。什么是设计模式这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提高工作效率。作为一个工作10年以上的老码.原创 2020-07-06 09:26:39 · 25197 阅读 · 0 评论 -
TOP互联网公司都在用,为什么SRE比传统运维更抢手?
TOP互联网公司都在用,为什么SRE比传统运维更抢手?阿里妹导读:双11的完美收官,2684亿的销售奇迹及顺滑极致的客户体验让双11背后的技术再次被推到风头浪尖。而双11技术热点话题,不得不提集团核心系统100%上云这一技术创举。作为集团上云的底座产品,ECS承担了集团上云基础设施的重任,对如何保障集团上云的极致稳定性及性能需求,弹性计算管控团队做了长期的探索与实践,竹涧作为SRE参与了这场“革命”,接下来他将分享ECS管控SRE在落地稳定性体系建设中的探索及背后的思考。前言S.原创 2020-07-04 21:06:18 · 25196 阅读 · 0 评论 -
SRE神作之精华
读《SRE Google运维解密》是我首次比较系统地了解和学习Google内部SRE运作的指导思想、实践以及相关问题,最近又花了一些时间,仔细阅读了关于SRE的第二本书籍《SRE生存指南》。《SREGoogle运维解密》与《SRE生存指南》SRE首先是一套方法论,它从传统运维中与稳定性相关的工作内容提炼出来进行升华,构建了SRE的方法论体系。冗余和容灾、容量规划、系统自动保护、失败预案、监控能力、发布与变更管理、故障应急处理等构成了SRE领域的蓝图,并不断地快速迭代着。方...原创 2020-07-03 09:21:12 · 25496 阅读 · 0 评论 -
首席架构师李佐辉:浙江移动SRE转型实践
一、背景:我们是网络运维工程师我们维护的设备:厂家定制,专有软硬件的通信设备。我们眼中的世界:路由、协议、网元、信令、局数据…我们日常工作内容主要涉及以下三个方面:但是,我们的人员素质较高,100%的工科背景,都具备基础的编程技能,大部分人对运维开发转型充满兴趣。二、我们遇到了点小麻烦随着通信技术的发展,网络运维的压力和责任越来越大。与知名互联网公司对比,我们维手段较原始,大量工作处...原创 2020-07-03 09:17:58 · 27694 阅读 · 0 评论 -
TOGAF架构开发方法(ADM)-- 架构准备阶段
1.1 准备阶段(Preliminary) 企业架构开发方法各阶段——预备阶段1.1.1 目标 预备阶段的目标是:对进行企业架构活动的组织的背景和环境进行审查。 明确企业架构的赞助人,以及其他将被创建企业架构这项业务指令所影响的主要干系人,并确定他们的需求和优先级、他们与组织的关系,以及他们之间所需的工作行为。 确保所有将要被涉及到的或受益的人员致力于架构过程的成功。 促使架构赞助者为将要...原创 2020-06-18 13:46:19 · 25130 阅读 · 1 评论 -
从程序员到架构师的转型思维的转变 NLP思维利器(二)
导读:本文给大家推荐一个NLP里面非常重要的思维工具,可以说是帮助我们做出人生各种重大决策不可或缺的利器,也是形成本书框架的其中一个底层思维逻辑。我一直在思考,人这一辈子,到底什么决定了我们的思维。当然,影响我们一生思维的模型很多,像在前文中提到的“黄金思维圈”就是其中一个。但我今天给大家介绍的这个逻辑层次,或者也可以称为理解层次,则是更核心的一种思维模型,甚至可以通过这个来理解为什么“黄金思维圈”会有效。首先,我简单介绍一下什么是NLP(后续会有更多内容详细介绍一些NLP的工具):NLP是神经语言原创 2020-06-15 09:09:42 · 24226 阅读 · 0 评论 -
资深技术专家推荐:如何写复杂业务代码-阿里实践
一个复杂业务的处理过程业务背景简单的介绍下业务背景,零售通是给线下小店供货的B2B模式,我们希望通过数字化重构传统供应链渠道,提升供应链效率,为新零售助力。阿里在中间是一个平台角色,提供的是Bsbc中的service的功能。商品力是零售通的核心所在,一个商品在零售通的生命周期如下图所示:在上图中红框标识的是一个运营操作的“上架”动作,这是非常关键的业务操作。上架之后,商品就能在零售通上面对小店进行销售了。因为上架操作非常关键,所以也是商品域中最复杂的业务之一,涉及很...原创 2020-06-15 22:23:31 · 23131 阅读 · 0 评论 -
企业业务架构设计方法论及实践(二)
前言 前面提到了业务架构作为企业战略与技术实现的桥梁,那本文具体讲讲企业战略如何与技术实现进行互通。一 业务架构决定技术架构优秀的架构师需要具备体系化的架构设计思维能力,加以架构设计方法论的沉淀和实践的操练,久而久之架构设计指导和设计哲学必定了然于心。不管是业务架构还是技术架构其核心还是以实现企业战略目标,降低系统复杂性,隔离业务与技术的耦合,提升研发效能,降低研发、运营、维护成本作为架构分析的出发点。相对于需求分析或产品设计,业务架构的首要责任在于实现业务与...原创 2020-06-15 09:20:38 · 23818 阅读 · 0 评论 -
银行业务中台和阿里中台的异曲同工之妙
阿里的“大中台”现在可以算是互联网架构中的一个标志了,通过多年的业务沉降,将核心业务能力逐渐抽象,成为公用性的中台,以实现互联网领域的快速响应机制。银行是传统行业中非常重视信息化的,而且起步早,信息化程度高,但是由于技术的高速发展,互联网思维的冲击使得银行纷纷面临必须转型的困境,既包括业务转型,也包括技术转型。互联网架构是银行很想学习的,但是二者之间差异较大,这在转型过程中是需要注意的。本人是业务架构设计人员,虽在单位做了六年企业级业务架构设计,但是技术方面能力有限,不足以...原创 2020-06-11 08:48:26 · 25161 阅读 · 0 评论 -
业务中台--企业流程优化
企业流程的"点线面"三层优化 企业流程优化开展了很长一段时间,也在这方面做了很多积累,但是形成的流程总感觉不系统,不落地,怎么通过流程从宏观到微观,从战略到运营,从点到面,形成企业上下的整体协同运作,实现企业战略落地?”这是某企业高层对流程优化咨询项目提出的需求,也反映出企业实践中对流程产生更高的期望。据调查发现,流程管理在企业的实践已经站在了新的起点,由概念引入、孤岛式流程优化向关注与战略和业务的融合、系统性的流程体系优化进行转变。另一方面,随着企业的扩张和地理范围的不断延伸...原创 2020-06-09 16:27:23 · 24794 阅读 · 0 评论 -
业务架构师如何进阶成长
一、前言接触业务架构工作之后,除了单位提供的方法论外,为了做好这项工作,认真学习了软件过程、系统分析与设计、架构设计、设计模式、Java 语言等内容,并研读了敏捷开发、领域驱动设计、工作流分析等方面的书籍,为了拓展对新技术的理解,在人工智能和区块链两方面也阅读了一些著作,总体而言,不够系统,都是为了能够更好地理解企业级业务架构的方法论及其向技术端的传导。除了恶补基础知识,更重要的当然是实践,珍惜每一个设计任务,珍惜每一次与业务人员、技术人员的沟通机会...原创 2020-06-09 16:25:15 · 25885 阅读 · 2 评论 -
如何在Mysql的Docker容器启动时初始化数据库
1.前言Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行。那么怎么初始化SQL脚本以及数据呢?我这里有两个传统方案。第一种方案是在容器启动后手动导入,太 low 了不行。第二种在Spring Boot客户端连接Mysql容器时初始化数据库,但是这依赖客户端的能力。能不能做到Mysql容器启动时就自己初始化数据库呢?当然可以!今天就来演示一下。全部代码见文末。2.原理当Mysql容器首次启动时,会在/doc...原创 2020-06-03 12:04:45 · 25805 阅读 · 0 评论 -
Spring Boot 2.3.0 新特性:优雅停机
前言:关于Spring Boot、Spring Cloud应用的优雅停机,平时经常会被问到,这也是实际应用过程中,必须要掌握的点,这里简单总结下以前我们一般在实现的时候要把握的几个要点: 关闭命令方面,一定要杜绝 kill -9 操作 多线程采用线程池实现,保证每个异步线程都可以随Spring的生命周期完成正常关闭操作 有服务注册与发现机制下的时候,通过Spring的应用关闭事件、Java应用的ShutdownHook、服务治理相关端点来保障实例停止在服务下线请求发出之后的..原创 2020-06-03 11:52:18 · 24976 阅读 · 0 评论 -
为什么我们要把服务注册发现改为阿里巴巴的Nacos而不用 ZooKeeper?
站在未来的路口,回望历史的迷途,常常会很有意思,因为我们会不经意地兴起疯狂的念头,例如如果当年某事提前发生了,而另外一件事又没有发生会怎样?一如当年的奥匈帝国皇位继承人斐迪南大公夫妇如果没有被塞尔维亚族热血青年普林西普枪杀会怎样,又如若当年的丘老道没有经过牛家村会怎样?2008 年底,淘宝开启一个叫做“五彩石”的内部重构项目,这个项目后来成为了淘宝服务化、面向分布式走自研之路,走出了互联网中间件体系之始,而淘宝服务注册中心 ConfigServer 于同年诞生。2008 年前后,Yahoo 这个曾经原创 2020-06-03 11:50:30 · 51455 阅读 · 3 评论 -
优秀架构师往往是一个悲观主义者
一个优秀的架构师通常都是一个悲观主义者,除了设计好能够支撑业务持续发展的优雅架构,另一个容易被忽略的重要能力在于充分考虑失败场景。如果对失败场景考虑不够充分,轻则出现业务不可用,影响用户体验和企业声誉;重则导致数据永久丢失、业务再无恢复可能。 2001年9月11日,美国世贸中心双子大厦遭受了谁也无法预料的恐怖打击,灾难发生前约有350家企业在世贸大厦中工作,事故发生一年后,重返世贸大厦的企业变成了 150家,有200家企业由于重要信息系统的破坏,关键数据的丢失而永远关...原创 2020-05-29 08:29:42 · 24731 阅读 · 0 评论