
架构设计
文章平均质量分 88
天秤座的架构师
非著名架构师
展开
-
微服务架构-系统可靠性保障
Oncall 值日生必然会发现、处理线上故障,这就意味着必须记录和总结故障。故障报告应该有固定的格式规范,便于复盘总结。1.故障总体描述1.1 故障摘要//简单描绘故障基本情况2020-07-29日,由于代码误操作,将一条测试广告引入到线上Feed流中;1.2 开始时间//故障开始时间,精确到分2020-07-29 16:201.3 结束时间//故障结束时间,精确到分2020-07-30 08:121.4 影响时间//故障持续的时间,精确到分17h52min。原创 2022-10-26 16:46:24 · 26760 阅读 · 0 评论 -
基于Spring Cloud Gateway 和 注册中心实现灰度发布
什么是灰度发布?灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。本文以springcloud gateway + nacos来演示如何实现灰度发布,如果对springcloud gateway和nacos还不熟悉的朋友,原创 2021-03-03 17:32:51 · 25440 阅读 · 1 评论 -
Dubbo ServiceBean 和 Referencebean 的接口设计与实现
Spring Schema XML拓展机制:dubbo全透明融入spring的实现基础在spring项目启动,会加载并解析resources目录下的xml,然后将xml配置文件中的配置加载成spring容器的bean,dubbo需要定义dubbo_provider.xml或consumer_provider.xml并加入到applicationContext.xml中。<?xml version="1.0"encoding="UTF-8"?> <web-app id="WebA原创 2021-03-03 16:53:34 · 25251 阅读 · 1 评论 -
Spring的整体架构和环境搭建深度解析
目录概述 spring的整体架构 1. Core Container 2. Data Access/Integration 3. Web 4. AOP 5. Test 环境搭建 gradle安装 源码链接获取 源码下载及 IDEA 导入 导入项目遇见问题 创建测试项目概述Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Ja.原创 2021-03-03 16:46:58 · 23807 阅读 · 1 评论 -
SpringCloud Alibaba微服务实战
SpringCloud Alibaba微服务实战系列博客:SpringCloud Alibaba微服务实战一 - 基础环境准备 :http://www.javadaily.cn/articles/2019/11/29/1575026789380.htmlSpringCloud Alibaba微服务实战二 - 服务注册 :http://www.javadaily.cn/articles/2019/12/03/1575360224884.htmlSpringCloud Alibaba微服务实战三 -原创 2021-03-03 16:21:45 · 24302 阅读 · 1 评论 -
Dubbo技术选型之 dubbo 协议
dubbo 协议dubbo:// 协议参考手册Dubbo 缺省协议采用单一长连接和 NIO 异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。反之,Dubbo 缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。Transporter: mina, netty, grizzy Serialization: dubbo, hessian2, java, json Dispatcher: all, direct, mes.原创 2021-03-03 15:10:25 · 24621 阅读 · 1 评论 -
架构选型--Dubbo性能测试报告
测试说明本次性能测试,测试了 dubbo 2.0 所有支持的协议在不同大小和数据类型下的表现,并与 dubbo 1.0 进行了对比。 整体性能相比 1.0 有了提升,平均提升 10%,使用 dubbo 2.0 新增的 dubbo 序列化还能获得 10%~50% 的性能提升,详见下面的性能数据。 稳定性测试中由于将底层通信框架从 mina 换成 netty,old 区对象的增长大大减少,50 小时运行,增长不到 200m,无 fullgc。 存在的问题:在 50k 数据的时候 2.0 性能不如 1.原创 2021-03-03 14:58:47 · 24727 阅读 · 1 评论 -
如何通过Spring的ApplicationListener事件注册服务
1. 背景 Spring 事件的使用场景很多,接下来我们就讲讲如何分析和验证我们的猜测,以及如何利用Spring事件完成服务注册。2. 分析一下2.1 问题分析过程应用启动Nacos注册中心没有发现注册的服务,初步分析肯定是注册有问题了, 那就去找是服务是如何注册的。关键是从哪找呢?具体步骤:知道服务启动方式。如Nacos,就是通过properties,那就找哪有用到启动的属性文件 项目用SpringBoot集成,那核心类的加载就在Spring.factorie...原创 2021-03-03 14:21:39 · 24936 阅读 · 0 评论 -
架构模式的演变之路:从单体架构到微服务架构
前言谈到软件系统设计的方法论,在代码层面,有我们熟悉的23种设计模式(design pattern),对应到架构层面,则有所谓的架构模式(architecture pattern)。它们分别从微观和宏观的角度指导着我们设计出良好的软件系统,因此,作为一个软件工程师,我们不仅要熟悉设计模式,对常见的架构模式也要熟稔于心。正如看到一个设计模式的名字脑里就能浮现出大致的结构图,当我们看到一个架构模式的名字时,也要马上想到对应的架构图及其基本特点。比如,当谈到分层架构时,我们就应该想起它的架构图是怎样的、有哪些原创 2021-03-03 10:18:05 · 25432 阅读 · 0 评论 -
数字化中台前导--企业架构TOGAF简介
什么是企业具有一个共同目标的组织的集合,可能是政府部门,一个完整的公司,公司部门,单一科/处,或由共同拥有权连接在一起的地理疏远的组织链 可能是一个“扩展的企业”,包括合作伙伴、供应商和客户什么是架构 架构是针对某种特定目标系统的具有体系性的、普遍性的问题而提供的通用的解决方案,架构往往是对复杂形态的一种共性的体系抽象。 业务架构体系是针对企事业信息管理系统中具有体系的、普遍性的问题而提供的通用解决方案,更确切的说,是基于业务导向和驱动的架构来理解、分析、设计、构建、集成、扩展、运行和管原创 2020-06-18 08:20:51 · 25209 阅读 · 0 评论 -
Nacos 实现环境隔离(项目、日常、预发、安全生产、线上)的实践
Nacos环境隔离通常,企业研发的流程是这样的:先在测试环境开发和测试功能,然后灰度,最后发布到生产环境。并且,为了生产环境的稳定,需要将测试环境和生产环境进行隔离,此时,必然会遇到问题是多环境问题,即:多个环境的数据如何隔离? 如何优雅的隔离?(不需要用户做任何改动)本文将就 Nacos 环境隔离,向大家介绍阿里在这方面的实践经验。什么是环境?说到环境隔离,首先应该定义好什么是环境。环境这个词目前还没有一个比较统一的定义,有些公司叫环境,在阿里云上叫 region,在 Kubern原创 2020-05-26 09:30:36 · 29127 阅读 · 0 评论 -
Nacos-自定义动态注入构造
public class NamingFactory { public NamingFactory() { } public static NamingService createNamingService(String serverList) throws NacosException { try { Class<?> driverImplClass = Class.forName("com.alibaba.nacos.cli.原创 2020-05-26 08:38:43 · 25131 阅读 · 0 评论 -
企业业务架构设计方法论及实践(一)
前言 架构设计的过程就是把沉淀和积累的知识体系,基于企业战略、业务场景、质量、安全、效能等约束条件动态的加以排列组合的分析、论证、决策的逻辑思维过程。架构设计之道在于针对企业的现状和未来的战略目标及业务场景给出优雅合适的解决方案和演进的预期为企业降本增效。一 隔离业务与技术细节,回归业务和技术的本质,促进业务与技术的协同 优秀的架构师需要具备体系化的架构设计思维能力,加以架构设计方法论的沉淀和实践的操练,久而久之架构设计指导和设计哲学必定了然于心。不管是业务...原创 2020-05-23 13:28:48 · 26955 阅读 · 0 评论 -
交易中台架构设计:海量并发高扩展,新业务秒级接入
今天将从以下这三方面,来分享一些海量高并发的经验: 中台模式和微服务架构到底有什么样的关系 海量并发的业务中台架构如何设计与实践 秒级新业务接入的交易中台如何设计和实践 一、中台模式与微服务架构的关系现在大家应该都知道,中台最早是由芬兰一家著名的游戏公司Supercell提出的,以小前台的模式来组织若干个开发团队。也就是说,你的每个前台的开发团队,只需要了解开发一个业务/一个游戏所需要的业务逻辑就行。这样的话,像每个业务会需要一些公共的东西,比如...原创 2020-05-18 07:40:29 · 25863 阅读 · 1 评论 -
深度解读 Serverless 架构及平台选型
导读:本文尝试以日常开发流程为起点,分析开发者在每个阶段要面对的问题,然后组合解决方案,提炼面向 Serverless 的开发模型,并与业界提出的 Serverless 产品形态做对应,为开发者采用 Serverless 架构和服务提供参考。近两年来,Serverless 概念在开发者中交流的越来越多,主题分享呈现爆发趋势,如在云原生领域颇具影响力 KubeCon&CloudNativeCon 会议中,关于 Serverless 的主题,2018 年有 20 个,到 2019 年增长至.原创 2020-05-17 23:39:42 · 24466 阅读 · 1 评论 -
企业级SaaS的多租户设计
导读 现有企业级SaaS市场在每个细分领域都涌现出了一批玩家,从技术角度看,在不同的领域不同的SaaS产品必定有着同样的架构内核,其中最关键的就是多租户的支持。简而言之,SaaS的成熟度高低,很大程度取决于如何实现多租户模式的支持。多租户技术的核心关注点多租户在技术实现层面目前并没有既定的规范,不仅细节多,每处细节的实现方式也多种多样。如何落地,一方面取决于当前研发团队现有的技术储备、技术选型、团队资本实力、所处行业或客户特点(比如金融行业对数据安...原创 2020-05-14 11:26:22 · 26333 阅读 · 1 评论 -
再探阿里的“数据+业务”双中台架构
01阿里中台架构的定义中台是一种架构理念和方法。任何一种架构的方法,其本质不外乎,利用分、合、打散、重组等技术手段,对系统进行有序化重构,以达到减少系统“熵”的过程,使系统得以不断进化。谈中台,离不开阿里巴巴,中台概念是由阿里最先提出,并且发扬光大的一种企业架构治理方法论。阿里巴巴中间件团队,给中台架构做过一下定义:“中台架构,是将企业的核心能力随着业务不断发展以数字化形式沉淀到平台,形成以服务为中心,由业务中台和数据中台构建起数据闭环运转的运营体系,供企业更高效的进行业...原创 2020-05-14 09:34:33 · 29406 阅读 · 1 评论 -
Schedulerx2.0应用级别资源管理和任务优先级
1. 前言Schedulerx2.0是一套分布式的任务调度+计算框架。作为一套分布式计算引擎,用户经常需要资源管理的需求,当前schedulerx仅仅支持单个任务实例的管控(比如单机子任务并发数、拉模型全局子任务并发数等),这一点是远远不够的。比如某一时刻大量任务要触发,用户资源不够,当前是无法管控的。业内任务调度系统一般都focus在任务调度上,资源管理会借助第三方系统(比如mesos, yarn),这类系统的执行单元worker都是由调度平台管控的。这一点和schedulerx还是不一样的,sch原创 2020-05-13 22:51:16 · 24957 阅读 · 0 评论 -
业务驱动的精益敏捷实施实践
我们为什么要提升研发效能随着5G、人工智能、IOT等新技术的迅猛发展,企业的业务都将构架在软件和互联网之上。软件交付能力成为企业的核心竞争力,随着市场竞争的加剧,企业对研发效能的期望越来越高。然而新技术、新业态的不断涌现,又使企业的业务变得越来越复杂,各个团队之间的协作也越来越困难,企业的研发效能呈现降低趋势。“期望”与“现实”之间产生了巨大的“Gap”,正是我们要努力的方向。这就是为什么我们要提升研发效能的根本原因。提升研发效能的方向:持续地顺畅高质量交付有效价值为了提升研发效能,我们原创 2020-05-13 00:08:17 · 25114 阅读 · 0 评论 -
系统设计和系统划分的基本思路
今天要说说这两个定律,一个是墨菲定律,另外一个是康威定律。有人说:在系统设计时,可以以“墨菲定律”作为警醒。墨菲定律:任何事物都没有表面看起来那么简单。所有的事都会比你预计的时间长。可能出错的事总会出错。如果你担心某种情况发生,那么他就更有可能发生。"任何事物都没有表明看起来那么简单",比如在做系统分析和设计的时候,你总会发现,刚刚开始总会那么一帆风顺,但是呢?最后你会发现,一切都没有你想象的那么简单。比如当初在做酒店系统后台的时候,在做之前没有考虑三级模型,也就是Root-Adm原创 2020-05-12 23:39:26 · 25067 阅读 · 0 评论 -
微服务2.0你必须要知道的基本准则
1 概述关于微服务的介绍,网上已经有很多文章了。微服务大家都在追,也都觉得很对,但是似乎没有很充足的理论基础说明这是正确的,给人的感觉是 不明觉厉 。前段时间看了 Mike Amundsen 《远距离条件下的康威定律——分布式世界中实现团队构建》(是 Design RESTful API 的作者)一个分享,觉得很有帮助,结合自己的一些思考,整理了该演讲的内容。可能出乎很多人意料之外的一个事实是,微服务很多核心理念其实在半个世纪前的一篇文章中就被阐述过了,而且这篇文章中的很多论点...原创 2020-05-12 23:34:01 · 24597 阅读 · 0 评论 -
架构师如何带领团队“攻城略地”?
架构师职责架构师不是一个人,他需要建立高效卓越的体系,带领团队去攻城略地,在规定的时间内完成项目。架构师需要能够识别定义并确认需求,能够进行系统分解形成整体架构,能够正确地技术选型,能够制定技术规格说明并有效推动实施落地。按 TOGAF 的定义,架构师的职责是了解并关注实际上关系重大但未变得过载的一些关键细节和界面,架构师的角色有:理解并解析需求,创建有用的模型,确认、细化并扩展模型,管理架构。从业界来看对于架构师的理解可以大概区分为:企业架构师:专注于企业总体 IT 架构的设计。 I原创 2020-05-12 23:18:23 · 25062 阅读 · 0 评论 -
微服务体系流量网关Kong简介
前言在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务。甚至有时候需要对请求进行一些安全、负载均衡、限流、熔断、灰度等中间操作,基于此类种种的客观需求一个类似综合前置的系统就产生了,这就是API网关(API Gateway)。API网关作为分散在各个业务系统微服务的API聚合点和统一接入点,外部请求通过访问这个接入点...原创 2020-02-10 12:29:02 · 26539 阅读 · 1 评论 -
服务网格框架初探:Istio、Linkerd和SOFAmesh
导读2018年,Service Mesh在国内大热,有多家公司推出自己的Service Mesh产品和方案。本篇文章结合Service Mesh领域内关注度较高的几种开源方案,从架构层面出发,进行初步解读。服务网格(ServiceMesh)是什么?Willian Morgan——Bouyant CEO给出的ServiceMesh定义:服务网格是一个用于处理服务间通信的基础设施层...原创 2020-02-10 12:26:51 · 25656 阅读 · 0 评论 -
蚂蚁金服分布式中间件开源第三弹: 下一代微服务SOFAMesh
蚂蚁金服自主研发的分布式中间件(Scalable Open Financial Architecture,以下简称 SOFA )在今天推出了第三轮的开源产品:SOFAMesh。和前两轮开源的历经多年沉淀和打磨的成熟产品不同,本轮的开源主角SOFAMesh,将探索一条和以往产品有所不同的开源道路。下面我们就来看看到底有哪些不同吧!开源探索之路SOFAMesh尝试在以下几个方面进行自我突破...原创 2020-02-10 12:24:27 · 27014 阅读 · 0 评论 -
蚂蚁金服是如何实现经典服务化架构向Service Mesh方向演进的?
前言在过去的一段时间中蚂蚁金服已经开始采用 Service Mesh 来帮助解决一些架构上的问题,并且在 Service Mesh 如何更好地与经典的服务化架构结合上有一定的经验,希望借此分享和大家交流我们这部分的实践。使大家对蚂蚁金服当前的服务化架构有更多了解,并对 Service Mesh 如何解决经典服务化架构中的问题以及蚂蚁金服实际在落地Service Mesh 中的时候的一些设计考虑...原创 2020-02-08 21:42:52 · 23683 阅读 · 0 评论 -
网易严选ServiceMesh实践
背景Service Mesh在严选的探索与实践大致分了以下几个阶段。第一个阶段是探索期(2015年底~2016年4月)网易严选从2015年底开始内部孵化到2016年4月正式面世,这个阶段严选的技术团队规模非常小,差不多10人左右,核心业务采用的是单体架构,同时会依赖少量业务基础服务,如推送服务、文件存储服务、消息中心等等。在这个时期,如果我们将视野扩大到孵化严选的网易邮件事业...原创 2020-02-08 20:02:37 · 24290 阅读 · 0 评论 -
设计中的确定性与不确定性思考
无论是确定性还是不确定性,他们实际上都是由外部诱因触发,给予用户确定性的信任感,符合用户的认知与操作习惯,让用户使用起来更加顺畅确定性与不确定性的问题,主要来源于经济行为学中的决策过程。当决策者对情况的结果有确定性的了解时,会选择令自己满意的方案;但是面对不确定性的决策情况,用户无法通过概率来确定结果,因此决策也充满了风险和不确定性。确定性让人感到踏实和乏味;不确定性会带来风险和机...原创 2019-12-18 17:07:10 · 25123 阅读 · 0 评论 -
企业中台最佳实践--阿里数据中台解读(十二)
数据中台被誉为大数据的下一站,由阿里兴起,核心思想是数据共享,2015年阿里提出“大中台,小前台”的策略。2018 年因为“腾讯数据中台论”,中台再度成为了人们谈论的焦点。2019年,似乎人人都在提数据中台,但却不是所有人都清楚数据中台到底意味着什么。数据中台是只有大厂才需要考虑的高大上的概念吗?普通企业该不该做数据中台?数据中台的出现会给现有数据从业者们带来颠覆式的挑战吗?数据中台不是大...原创 2019-12-18 14:07:42 · 24738 阅读 · 0 评论 -
爱奇艺数据库选型最佳实干--实操篇
我们进行数据库选型的时候要考虑哪些问题?有哪些需求?待选用的数据库是否和需求对得上?是不是直接可以拿来用?需不需要一些额外的开发?这些都会在本文的分享中提及。一、数据库技术选型的思考维度我们做选型的时候首先要问:谁选型?是负责采购的同学、 DBA 还是业务研发?如果选型的是采购的同学,他们更注重成本,包括存储方式、网络需求等。如果选型的是 DBA 同学,他们关心的:运维...原创 2019-12-18 14:02:44 · 24484 阅读 · 0 评论 -
智能客服机器人背后是思考与实践
随着人工智能的发展,人机交互技术愈发成熟,应用场景也越来越多。智能客服是人机交互在客服领域的一个应用,服务于客人以及相关的客服人员。本文将介绍智能客服在旅游场景下的主要技术和应用。 当前度假的智能客服主要用于C端(客户端)面向客人,以及客服端辅助客服的两个角色。面向客服端的是智能客服助手,用于对话窗口的侧边栏,提示客服人员当前客人问题的答案,客服人员可视情况来采纳...原创 2019-12-17 23:25:35 · 24709 阅读 · 0 评论 -
要想做好动效,你得先知道这些
前言 动效是用户体验很重要的一部分。随着设备性能提升和人们对于用户体验越来越高的追求,动效将会越来越重要。动效要遵循客观物理规律以及人的视觉经验,符合用户预期,让用户感觉自然,才能获得用户的喜爱。 本文将从为什么探究缓动曲线、利用物理公式探究缓动曲线、常用缓动曲线、使用曲线拟合尝试剖析苹果ScrollView动效参数、使用线性插值高仿APP动效进行介绍...原创 2019-12-17 23:14:32 · 24235 阅读 · 0 评论 -
RPC框架实现细节-阿里产出
在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用...原创 2019-12-17 10:15:16 · 24674 阅读 · 0 评论 -
领域驱动设计--极简之道
前言从事技术多年,看了不少代码,写了不少代码,在如何设计一个优秀软件上也跟若干高手们做过各种讨论和pk。在DDD(领域驱动设计)理念上各路高手也是观点各异。DDD只是一个流派,谈不上压倒性优势,更不是完美无缺。 我更想跟大家分享的是我们是否关注设计本身,不管什么流派的设计,有设计就是好的。从我看到的代码上来讲,大部分代码都不属于DDD类型,有设计的也不多,更多的像“面条代码”,从端上一条...原创 2019-12-17 10:02:40 · 24572 阅读 · 0 评论 -
复杂性应对之道 - 领域建模
为什么要领域建模维护过企业级业务系统的同学,基本上没有一个不抱怨业务代码烂的,过程式的面条代码充斥着屏幕,程序员的心力和体力都经受着极大的考验,怎么破?DDD革命DDD革命性在于,领域模型准确反映了业务语言,而传统J2EE或Spring+Hibernate等事务性编程模型只关心数据,这些数据对象除了简单setter/getter方法外,没有任何业务方法,被比喻成贫血模式。以银行账号Ac...原创 2019-12-17 09:38:43 · 23316 阅读 · 0 评论 -
阿里巴巴容器技术
Pouch简介• 本意育⼉儿袋,隐喻贴身呵护应⽤用• 始于2011年年,基于LXC• 阿⾥里里内部容器器技术产品,并于当年年上线 • 2015年年初开始吸收Docker镜像功能• 容器器结合阿⾥里里内核,⼤大幅提⾼高隔离性• 百万级规模部署于阿⾥里里集团内部...原创 2019-12-16 23:01:17 · 24268 阅读 · 0 评论 -
企业中台最佳实践--业务中台架构(十一)
原创 2019-12-16 15:44:42 · 24107 阅读 · 0 评论 -
企业中台最佳实践--研发中台选型方案(十)
功能 云效 自研 业务中台能力 备注 需求管理 有 需要 是 应用管理 有 需要 否 ...原创 2019-12-16 14:50:28 · 24072 阅读 · 0 评论 -
应用架构的核心使命是什么?阿里高级技术专家如是说
导读:什么是架构?关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。如果,硬是要给一个概述,阿里巴巴高级技术专家张建飞认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。今天,张建飞来谈谈应用架构的核心使命是什么,是否与你想得一样?往下看,一起寻找答案。架构架构始于建筑,是因为人类发展(原始人自给自足住在树上,也就不需要架构),分工协作的需要,将目标系统按某个原...原创 2019-12-05 22:14:10 · 23582 阅读 · 0 评论 -
企业中台最佳实践--阿里引领数字化转型升级(七)
云原生基本概念先简单介绍云原生一些基本的概念。我们接触了很多的客户,对于这些客户而言,上不上云已经不是问题,他们关注的是该怎么上云?该如何充分利用云的能力、最大化云的价值?在 All in Cloud 的时代,企业的技术能力已经成为核心竞争力,他们非常愿意用云作为企业 IT 能力的增效器。云原生计算是一组最佳实践和方法论,在公共云、专有云环境中,构建可伸缩、健壮、松耦合的应用,可以...原创 2019-12-03 00:13:11 · 24613 阅读 · 0 评论