
软件架构
文章平均质量分 80
软件架构
小小哭包
1,在云计算,大数据,物联网,人工智能,领域深耕数十年。
2,这四大领域的科技,逐渐成为我们生活和工作的方方面面。
3,未来,这四大领域也将会大放异彩,这是方向,也是大势所趋,更是风口浪尖,有机遇,也有挑战。
4,我个人非常看好这些领域的前景。本人的工作也是跟这些领域密切相关,一直在这些领域垂直深耕多年。
有需要了解的朋友,或者需要软件项目合作的朋友,或者您有好的点子,欢迎咨询,沟通交流哦,一定提供完美的解决方案,让您满意。
展开
-
降级和熔断:如何增强服务稳定性?
之前我们分析了限流的常用策略,下面来看一下,高可用的另外两大撒手锏:降级和熔断,关于这两种技术手段如何实施,又有哪些区别呢?原创 2023-12-24 10:37:40 · 1347 阅读 · 0 评论 -
从双十一看高可用的保障方式
从本文开始,专栏内容进入最后一个模块,即分布式高可用系列,这部分的内容,我将以电商大促为背景,讲解系统限流、降级熔断、负载均衡、稳定性指标、系统监控和日志系统等方面的内容。今天一起来讨论一下,在面对电商大促、秒杀抢购等高并发的业务场景时,都有哪些高可用的保障手段。原创 2023-12-23 10:59:50 · 969 阅读 · 0 评论 -
缓存高可用:缓存如何保证高可用?
前面我们提到了缓存集群的负载均衡策略,保证缓存服务的高可用,集群策略是最常用的,本文我们以 Redis 为例,分析一下单点缓存如何扩展到集群,以及集群部署的几种常见模式。原创 2023-12-23 10:43:03 · 1613 阅读 · 0 评论 -
负载均衡:一致性哈希解决了哪些问题?
在业务开发中,缓存服务和其他数据服务一样,需要满足高可用性,而高可用最常用的手段就是集群扩展。原创 2023-12-22 12:02:03 · 1294 阅读 · 0 评论 -
失效策略:缓存过期都有哪些策略?
缓存使用的是内存资源,而内存资源是非常宝贵的,要用有限的服务器资源支撑更多的业务,就必须让那些访问频率不高的缓存删除掉,为新的缓存腾出内存空间。本文我们一起来看一下,缓存失效有哪些策略。原创 2023-12-22 11:58:46 · 1799 阅读 · 0 评论 -
经典问题:先更新数据库,还是先更新缓存?
之前分享了缓存使用中的几个问题场景:缓存穿透、缓存击穿和缓存雪崩,这几个问题聚焦的是缓存本身的稳定性,包括缓存集群和缓存的数据,除了这些,缓存应用中,缓存和上下游系统的数据同步也很重要。本文我们来学习缓存应用中的另一个高频问题:应用缓存以后,缓存和数据库何时同步。原创 2023-12-21 11:56:48 · 1394 阅读 · 0 评论 -
如何避免缓存穿透、缓存击穿、缓存雪崩?
设计缓存系统不得不考虑的问题是缓存穿透、缓存击穿与失效时的雪崩效应,同时,关于这几种问题场景的认识及解决方案,也是面试中的高频考点。今天的内容,可以说是缓存应用的三板斧,下面我们一起来分析一下缓存应用中的这几个热门问题。原创 2023-12-21 11:53:04 · 1521 阅读 · 0 评论 -
不止业务缓存,分布式系统中还有哪些缓存?
缓存是分布式系统开发中的常见技术,在分布式系统中的缓存,不止 Redis、Memcached 等后端存储;在前端页面、浏览器、网络 CDN 中也都有缓存的身影。原创 2023-12-20 09:47:35 · 1231 阅读 · 0 评论 -
消息队列选型:Kafka 如何实现高性能?
在分布式消息模块中,我将对消息队列中应用最广泛的 Kafka 和 RocketMQ 进行梳理,以便于你在应用中可以更好地进行消息队列选型。另外,这两款消息队列也是面试的高频考点。所以,本文我们就一起来看一下,Kafka 是如何实现高性能的。原创 2023-12-19 10:40:02 · 1183 阅读 · 0 评论 -
高可用:如何实现消息队列的 HA?
管理学上有一个木桶理论,一只水桶能装多少水取决于它最短的那块木板,这个理论推广到分布式系统的可用性上,就是系统整体的可用性取决于系统中最容易出现故障,或者性能最低的组件。系统中的各个组件都要进行高可用设计,防止单点故障,消息队列也不例外,本文一起来看一下消息中间件的高可用设计。原创 2023-12-19 10:36:52 · 879 阅读 · 0 评论 -
消息幂等:如何保证消息不被重复消费?
应用的幂等是在分布式系统设计时必须要考虑的一个方面,如果对幂等没有额外的考虑,那么在消息失败重新投递,或者远程服务重试时,可能会出现许多诡异的问题。本文一起来看一下,在消息队列应用中,如何处理因为重复投递等原因导致的幂等问题。原创 2023-12-18 13:07:38 · 1084 阅读 · 0 评论 -
业务上需要顺序消费,怎么保证时序性?
消息传输和消费的有序性,是消息队列应用中一个非常重要的问题,在分布式系统中,很多业务场景都需要考虑消息投递的时序。例如,电商中的订单状态流转、数据库的 binlog 分发,都会对业务的有序性有要求。今天我们一起来看下,消息队列顺序消费的相关内容。原创 2023-12-18 13:00:17 · 1289 阅读 · 0 评论 -
集群消费和广播消费有什么区别?
为了规范消息队列中生产者和消费者的行为,消息中间件的构建中会实现不同的消费模型。本文讨论的话题来自 RocketMQ 中具体的两种消费模式,是消息队列中两种典型消费模型的实现。接下来我们就一起来看一下消息队列都有哪些消费模型,以及对应的具体实现。原创 2023-12-17 09:54:08 · 1290 阅读 · 0 评论 -
消息队列有哪些应用场景?
分布式系统不同模块之间的通信,除了远程服务调用以外,消息中间件是另外一个重要的手段,在各种互联网系统设计中,消息队列有着广泛的应用。从本文开始,专栏进入分布式消息的模块,将讨论消息队列使用中的高频问题,先来看一下,消息队列的应用场景。原创 2023-12-17 09:50:37 · 1048 阅读 · 0 评论 -
为什么需要分库分表,如何实现?
在前文中讲到了读写分离,读写分离优化了互联网读多写少场景下的性能问题,考虑一个业务场景,如果读库的数据规模非常大,除了增加多个从库之外,还有其他的手段吗?方法总比问题多,实现数据库高可用,还有另外一个撒手锏,就是分库分表,分库分表也是面试的常客,今天一起来看一下相关的知识。原创 2023-12-14 11:40:20 · 990 阅读 · 0 评论 -
ServiceMeh:服务网格有哪些应用?
微服务的部署架构中有一个有趣的边车模式,并且基于边车模式,扩展出了 Service Mesh 服务网格的概念。本文我们一起来学习下 Service Mesh 相关的知识。原创 2023-12-13 09:45:37 · 1058 阅读 · 0 评论 -
亿级流量架构服务降级
亿级流量架构服务降级原创 2023-11-23 17:43:29 · 174 阅读 · 0 评论 -
如何解决系统中可能存在的性能问题?
如何解决系统中可能存在的性能问题?原创 2023-10-27 08:34:47 · 710 阅读 · 0 评论 -
关于集群和分布式部署
关于集群和分布式部署原创 2023-10-23 00:00:04 · 765 阅读 · 0 评论 -
不同部署环境下事务特性
不同部署环境下事务特性原创 2023-10-01 09:33:55 · 147 阅读 · 0 评论 -
分布式计算平台
分布式计算平台原创 2023-09-30 20:01:43 · 446 阅读 · 0 评论 -
集群时的缓存同步
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。原创 2023-09-29 07:26:15 · 263 阅读 · 0 评论 -
软件架构选型
软件架构作为一个概念,体现在技术和业务两个方面。从技术角度来说:软件架构随着技术的革新不断地更新其内容,软件架构建立于当前技术和一些基本原则的基础之上。原创 2023-09-19 08:23:45 · 178 阅读 · 0 评论 -
从奥运订票系统瘫痪说起—谈FastCGI与IT架构
在说架构之前,我先说一个老的技术,FastCGI。因为这个技术在后面的结构阐述中将起到非常重要的用处,原以为应该会有不少人会知道,但后来发现好像并非如此。 关于FastCGI的历史我就不再赘述,好像自1993年便有了。目前最热门的视频网站YouTube体系结构中,就有fast-cgi的模块。它支持很多httpd服务器,在官方网站上列了很多,如apache,aXesW3 ,Microsoft IIS,Zeus,近几年才出的lighttpd没写,其实这个新的httpd也支持,但我个人觉得,支持最好的,可原创 2023-08-24 09:58:09 · 125 阅读 · 0 评论 -
Spring Cloud 2022.0.3 正式版(RELEASE)已发布。Spring Cloud 2023 已在路上:代号「莱顿」,全新优化!
“Spring Cloud Config 存在已知的 BUG,涉及通过服务发现定位配置服务器。要在此版本中启用此功能,请在环境变量或系统属性中设置 spring.cloud.config.discovery.enabled=true 和 spring.cloud.config.discovery.serviceId。此 BUG 将在下一个版本中修复。”原创 2023-06-30 09:34:04 · 370 阅读 · 0 评论 -
正视架构设计的重要作用
从事过软件项目开发的专业人士都有这样的困惑:为什么到了项目接近尾声的时候,仍然还有那么多没有解决的问题?原创 2023-05-17 08:44:03 · 303 阅读 · 0 评论 -
杂谈架构:杂谈架构和架构设计师
系统架构通俗的说起来就是系统的结构组织方式。原则上说,架构只有好坏之分,而不存在有无的问题。软件的体系架构可以直接体现为代码的类结构,也可以表现为文档性的编码规范和全局约定等。如果软件架构中能够抽象出一些稳定的元素,那我们就可能得到一些所谓的框架代码。一般业务架构是很难重用的,目前常见的框架代码所描述的多半是与业务无关的技术架构。原创 2023-05-16 08:36:40 · 113 阅读 · 0 评论 -
应用软件系统架构设计的“七种武器”
对于软件架构这一概念,有太多的版本,目前在业界由大师级人物或组织提出的对这一概念的阐述就超过十种以上,我个人比较赞同RUP(Rational Unified Process)中对软件架构的定义,即软件架构包含了关于以下问题的重要决策原创 2023-05-16 08:33:21 · 364 阅读 · 0 评论 -
一个优秀系统构架师应具备的能力
作为软件开发的设计架构师,那么必须拥有一定的编程技能,同时有高超的学习新的架构设计、程序设计技能。另外,我觉得作为软件架构师,还必须了解一定的硬件、网络、服务器的基本知识。要不然,你都不知道有些什么材料可以用,你怎么去根据实际情况去规划你的软件架构呢?忽视程序设计能力的持续跟新,是永远不能够成为一个成功的系统架构师。原创 2023-05-15 09:17:26 · 820 阅读 · 2 评论 -
一封普通的SOA检讨书
近来许多文章关于SOA是否应当被看作是一个失败。Gartner分析师们也参与了这场争论,写了一封虚拟的信,以项目经理、企业架构师或首席开发工程师的名义,致“CIO、CEO、CFO、CTO和所有股东”,表明为什么作者承认SOA完全是场失败:原创 2023-05-15 09:09:12 · 368 阅读 · 0 评论 -
软件系统架构对测试的影响分析
了解了系统的架构之后,对于测试来说,就应该做相应的准备工作。往往现在数据库架构师使用PowerDesigner描述实体的逻辑关系,所以需要我们测试工程师学会查看数据库实体描述,从而了解系统中的数据库设计,例如关键字,索引、表实体之间的关系等。其中包括它们的结构和彼此间的准确关系,他们可被扩展和修改的方式,他们依赖于某种技术,是怎样得到系统性能和灵活性的,又是如何确定系统实施或修改计划的。创建系统架构的实际方法就是探索多种已被文档化的模式,所以关于开发模式的书籍比较畅销,也正是很多研发管理人员必读的书籍。原创 2023-05-13 08:50:29 · 312 阅读 · 0 评论 -
软件架构:软件系统设计层次与内容
一般来说,系统设计分为系统总体设计、子系统(组件)设计、模块设计三级,特殊情况下,设计可以分两级或更多级别来完成,遵循层次细化的原则,以保证设计工作的有效性和顺利实施。在不同的设计层次所需要设计的内容如下表。模块内局部数据结构(包括协议包结构等)。模块功能流程,主要包括业务逻辑。子系统(组件)内全局数据结构。子系统(模块)详细设计说明书。子系统(组件)设计说明书。用户功能子系统切换界面。子系统及组件物理部署。用户功能模块单元界面。原创 2023-05-12 07:56:03 · 346 阅读 · 0 评论 -
软件架构:软件架构设计的三个维度
面向对象技术最初是从面向对象的程序设计开始的,它的出现以上世纪60年代Simula语言为标志,并在Smalltalk语言的完善和标准化过程中得到更多的扩展和对以前思想的重新注解。当东方人看到一个复杂系统的时候,更多地会关注系统中存在的关系,将系统作为一个有机的整体进行研究,这也是东方和西方在事物看法上存在的差异。面向服务更多的是涉及到系统的外部,简单地说就是发布功能。在OO思想的运用上,业界出现了很多好的经验与技巧,从而涌现出大量的设计模式,可以说面向对象是系统分析与设计时的一个很重要的方面。原创 2023-05-11 00:12:01 · 374 阅读 · 0 评论 -
软件架构:理解分析三层结构观点
即使在用户数量很大的情况下,数据库仍能保持良好的工作负载,保持系统的快速的响应速度。J2EE系统结构和组件式系统的开发和维护过程中,技术人员可以按照新的需求,通过在不同系统层次上调度更新的组件或新加入的组件来调整旧的系统,以适应新的与不断变化的要求。通过将业务逻辑集中到中间层,系统获得了对业务逻辑的独立性,即当用户的需求改变时,开发人员可以迅速地在中间层(应用服务器)上更新业务逻辑,而无需将更新后的应用提交到众多的PC终端系统上去,即客户端无需任何改动(改动众多的客户端并不是件轻松的事)。原创 2023-05-11 00:09:59 · 1155 阅读 · 0 评论 -
软件架构:构建软件架构SOA
不同于传统的应用集成方法的是,在SOA中,围绕服务的所有模式都是以基于标准的技术实现的。因此,SOA的建立,将会是一个为期数年的承诺,基础建设和标准必需逐步实施。5月底,在美国旧金山举办的BEA第九届技术年会eWorld 2004上,来自全球的BEA技术精英将会在现场尽情体验到BEA的技术专家在现场带来的在BEA WebLogic Platform 8.1上的SOA系统设计模式和最佳实践,即有关如何构建SOA系统的技术准则,BEA要让全球的企业用户的信息系统都能够最大化地享受到SOA带来的商业价值。原创 2023-05-10 13:54:20 · 677 阅读 · 0 评论 -
软件架构:DSL领域特定语言初探
其实当年的“非程序员的编程语言”与今日的DSL境况颇为相似,所不同的是,当代企业级信息系统更为复杂,所关注的焦点逐渐从计算转移到数据上,业务领域和计算机的物理过程也不再具有简单直接的对应关系了。在很多人的心中,DSL等同于“非程序员的编程语言”(programminglanguage for non-programmers),因此DSL的最终受众应该是非程序员,一切不直接被最终用户使用的DSL都不是真正的DSL,仅仅是另一种使代码看起来不像代码的无聊技巧。DSL的目标受众是非程序员,业务员或者最终用户。原创 2023-05-10 13:48:38 · 932 阅读 · 0 评论