架构师
文章平均质量分 85
架构师
Java程序员廖志伟
我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主等头衔。拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、Spring MVC、SpringCould、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RockerMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、容器编排Kubernetes等。
展开
-
【架构师基本功】DDD领域驱动原则
在设计聚合时,需要遵循一些聚合原则,包括保持聚合根的唯一性和一致性、只在必要时访问聚合内的对象、聚合内的对象应该有明确的边界和职责、聚合内的对象应该具有高内聚、低耦合的特性等,以确保聚合内的对象的稳定性和可维护性。领域模型的实现和设计思路:在设计领域模型时,需要深入了解和理解领域模型的实现,需要通过与业务专家沟通,分析业务领域,确定业务领域中的对象和关系,并且需要建立统一的业务语言。在实现领域模型时,可以使用UML类图等工具,通过抽象和建模来描述业务领域中的对象和关系,构建系统的领域模型。原创 2023-07-03 08:45:00 · 234 阅读 · 0 评论 -
架构:第七章:基于Dubbo+Zookeeper项目架构
Dubbo:简单的介绍一下Dubbo?(Dubbo是什么)dubbo就是个服务调用的东东。为什么怎么说呢?因为Dubbo是由阿里开源的一个RPC分布式框架那么RPC是什么呢?就是不同的应用部署到不同的服务器上,应用之间想要调用没有办法直接调用,因为不在一个内存空间,需要通过网络通讯来调用,或者传达调用的数据。而且RPC会将远程调用的细节隐藏起来,让调用远程服务像调用本地服务...原创 2019-02-26 11:56:49 · 639 阅读 · 0 评论 -
【架构师基本功】微服务架构
作为一名架构师,熟悉微服务原则、分布式系统原理、软件设计原则和模式、容器化技术以及持续集成和部署是非常重要的。这些技术和原则可以帮助架构师设计高质量、可伸缩的微服务架构,并帮助应用程序实现更高的性能、可用性和安全性。原创 2023-06-29 09:52:32 · 141 阅读 · 0 评论 -
架构:第九章:架构设计(为什么要这么设计,解决了什么问题)
原创 2021-06-10 14:59:33 · 2419 阅读 · 65 评论 -
架构:第八章:查询的资料
点击查看Spring+SpingMVC+mybatis这三大框架整合项目下载地址:https://github.com/Javen205/SSM点击查看ssm+redis整合(通过cache方式)点击查看SSM+redis整合(mybatis整合redis做二级缓存)Dubbo +Zookeeper集成SSM框架实现登录功能 点击查看使用springboot整合ssm点击查看S...原创 2019-04-12 17:47:21 · 541 阅读 · 0 评论 -
基于 SSD 的 Kafka 应用层缓存架构设计与实现
同时在 Kafka 的消费端,先将消息从 Kafka 的 Log 中读取出来,再存入 SSD 的应用层缓存中,等到消费端需要处理消息时再从缓存中获取。在该架构中,通过使用缓存来解决 Kafka 的性能问题,采用 SSD 实现缓存,提升了系统的 IO 性能。在测试中,小王发现,在系统中加入了缓存后,系统的读写性能有了很大的提升,能够支撑更高的消息发送和消费频率。在某电商平台的团队中,采用了基于 SSD 的 Kafka 应用层缓存架构,成功解决了 Kafka 的瓶颈问题,提升了系统的性能和稳定性。原创 2023-08-19 12:15:00 · 152 阅读 · 0 评论 -
【架构师基本功】架构设计协议RAFT
RAFT是一种分布式一致性算法,由Diego Ongaro和John Ousterhout在2014年提出。RAFT的全称是“一致性算法协议”,它被设计用来解决分布式系统中的一致性问题。RAFT被认为是一种更易于理解和实现的分布式一致性算法,相对于Paxos来说更加简单。RAFT采用领导者选举和日志复制两个互相独立的机制来解决分布式系统中的一致性问题。RAFT算法的主要目标是保证在网络环境不稳定的情况下,系统可以保证一致性,同时保证高可用性。原创 2023-07-04 19:15:00 · 224 阅读 · 0 评论 -
【架构师基本功】高可用设计原则
在现代的信息技术系统中,高可用性已成为一个必须考虑的因素,特别是对于大型、高负载、复杂的系统而言。备份和恢复机制是高可用性设计的基础,它可以在系统崩溃的情况下恢复数据,并使系统回到正常工作状态。作用:配置冗余系统是为了在本地系统出现故障时可以快速切换到异地目标机器上的冗余系统,保证系统连续性和可用性。作用:备份数据到异地是为了以防本地数据出现丢失、损坏的情况,可以快速地在异地进行数据恢复和备份。作用:备份系统到异地是为了在本地系统出现故障时可以快速切换到异地系统,保证系统的连续性和可用性。原创 2023-06-26 18:35:25 · 421 阅读 · 0 评论 -
【架构师基本功】架构设计协议CAP/BASE
CAP/BASE协议是分布式系统设计中的一个重要概念。CAP是指一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)三个属性,这三个属性之间存在着无法兼备的关系。BASE是指基本可用性(Basically Available)、软状态(Soft state)和最终一致性(Eventual consistency)三个属性,这三个属性相比CAP更加弱化了一致性的要求,但增加了可用性和可扩展性。原创 2023-06-25 18:51:53 · 434 阅读 · 0 评论 -
【架构师基本功】分层架构
其中,表示层负责接收用户请求和输出响应结果,业务逻辑层是分层架构的核心层,负责处理业务逻辑,实现系统的核心功能,数据访问层则负责处理数据的存储和访问。业务逻辑层通常是由多个服务组成,每个服务实现一个特定的业务逻辑,服务之间可以相互调用,形成一个系统的完整业务流程。在调用外部API和服务时,需要验证身份。例如,在电商系统中,购物车中的商品数量可能需要限制,每个用户可能需要限制购买的商品数量等。在设计业务逻辑层时,必须保证其独立性和可扩展性,避免对其他层的依赖,以及确保未来的需求变更可以容易地进行维护和扩展。原创 2023-06-28 22:23:49 · 523 阅读 · 0 评论 -
【架构师基本功】高并发设计原则
以上是分布式架构设计的几个步骤,底层源码实现通常采用一些流行的分布式框架来实现,例如 Netty、TCC-Transaction、Seata、Apache ZooKeeper、Eureka、Nacos 等。分布式架构设计需要考虑多个方面的问题,包括网络通信、分布式事务、数据一致性、系统可扩展性等,通过合理的分布式架构设计,可以实现负载均衡、容错性,以及容易扩展性等优势。异步消息处理的实现需要考虑消息的顺序性和处理时的幂等性,保证消息的正确性和一致性。同时,需要考虑分布式攻击的问题,例如DDoS攻击等。原创 2023-06-26 15:31:40 · 207 阅读 · 0 评论 -
【架构师基本功】DDD领域建模
领域建模是指在开发软件系统时,将业务领域中的概念、行为和业务流程进行抽象和建模,以便更好地理解和解决业务问题。其中,领域指的是与业务相关的概念和行为,例如订单、客户、产品、库存、供应商等等。领域建模通常采用面向对象的思想,通过把领域内的实体、值对象、服务、聚合、仓库等领域模型元素进行组合,构建出一个适合业务领域的模型。在这个模型中,不仅能够描述业务领域的实体和其关系,还能够体现业务规则、操作流程等方面的信息。原创 2023-07-04 08:30:00 · 248 阅读 · 0 评论 -
【百万级并发服务器架构的设计】
为了防止这两种情况的发生,可以使用布隆过滤器来过滤掉一定不会存在的数据,或者设置数据的过期时间,使得缓存中的数据不会同时失效。因此,你可能还需要考虑使用一些其他的技术,比如缓存、数据库分区等,来优化系统的性能。: 在某些场景下,可以使用异步I/O技术,例如Java的CompletableFuture或者C++的async/await等,以提高系统的响应速度。: Java中的NIO库(如Java 7的NIO.2或Java 8的NIO.3)提供了非阻塞IO的支持,可以帮助实现高并发的服务器架构。原创 2023-06-05 11:52:22 · 709 阅读 · 3 评论 -
【架构师基本功】事件驱动架构
事件总线是一个中央的消息传递系统,它接收来自事件源的事件,并将其路由到其他的组件。同时,事件总线可以通过维护事件队列,实现事件的异步处理,提升系统的响应速度和吞吐量。事件处理器的处理逻辑可以非常灵活,它可以根据事件的类型、内容和来源等信息进行不同的处理。例如,一个事件处理器可以将事件写入数据库,另一个事件处理器可以将事件发送到外部系统。如果事件处理器的处理逻辑复杂,或者系统的负载较高,事件的处理可能会出现延迟,影响系统的实时性。事件处理器是订阅了事件的组件,它们会从事件队列中读取事件,并进行相应的处理。原创 2023-06-28 08:46:48 · 408 阅读 · 0 评论 -
【架构师基本功】领域事件与CQRS
领域事件(Domain Event)是一种描述领域发生的事情的概念,它可以是一个状态变化、一次业务操作或者其他领域范畴内的事件。领域事件通常被用于解决两个或多个领域模型之间的通讯问题。定义领域事件(Domain Event):领域事件是指描述领域发生的事情的概念,可以是一个状态变化、一次业务操作或者其他领域范畴内的事件。举例说明领域事件:领域事件可以是订单状态变化、用户注册成功、商品下架等。领域事件的作用:领域事件通常被用于解决两个或多个领域模型之间的通讯问题。原创 2023-07-02 10:30:00 · 319 阅读 · 0 评论 -
【架构师基本功】DDD高可扩展业务架构
下面,将分步骤详细介绍如何实现缓存机制,并注重对缓存的清除和更新机制进行规划,以此来实现缓存的可靠性和高效性。综上所述,DDD高可扩展业务架构是一种基于领域模型的分层、服务化、消息队列、缓存、分布式等多种技术手段的系统架构设计方法,它注重对业务流程的深入理解,并通过多种技术手段来实现系统的高可扩展性和高可靠性,从而为企业信息化应用提供高效、稳定、可靠的支持。通常情况下,对于经常访问的数据,可以采用较长的缓存时间,而对于不经常访问的数据,可以采用较短的缓存时间或者不缓存。原创 2023-07-03 12:15:00 · 148 阅读 · 0 评论 -
架构:第五章:分布式架构的演进
单一应用架构适用于小型网站,小型管理系统,将所有功能都部署到一个功能里,简单易用。缺点: 1、性能扩展比较难 2、协同开发问题 3、不利于升级维护 垂直应用架构通过切分业务来实现各个模块独立部署,降低了维护和部署的难度,团队各司其职更易管理,性能扩展也更方便,更有针对性。缺点: 公用模块无法重复利用,开发性的浪费 分布式应用架...原创 2019-01-28 18:10:00 · 633 阅读 · 0 评论 -
【架构师基本功】分布式架构
以上是架构师需要了解的分布式架构基本功,包括架构设计原则、技术框架、数据存储、通信协议、部署方式等方面。分布式架构是一个复杂的领域,需要不断学习和实践,才能在实际工作中做出更好的决策和方案。原创 2023-07-04 12:15:00 · 151 阅读 · 0 评论 -
架构:第四章:微服务架构下的分布式架构之搭建环境
下面是我要写的一个简单的分布式架构:SpringCloud+SpringBoot+SpringMVC+MyBatis+MySQL架构图:准备工作:技术选型: 使用SpringMVC进行表述层开发 使用MyBatis进行持久化层开发 使用Spring进行组件整合并管理声明式事务 使用Maven作为依赖管理和构建管理工具 使用BootStr...原创 2019-01-03 20:32:20 · 6507 阅读 · 64 评论 -
架构:第八章:架构师之路
原创 2019-11-27 16:45:55 · 1131 阅读 · 0 评论 -
架构:第三章:单一(伪分布式)架构之SSM整合
单一(伪分布式)架构之使用Maven建立各个工程之间的依赖、继承、聚合关系SSM jar包依赖统一管理工程:parentpom.xml<project xmlns="http://maven.apache.org/POM/4.0.0原创 2018-12-11 20:19:37 · 651 阅读 · 0 评论 -
【架构师基本功】贫血/充血模型
它将业务逻辑和数据操作封装到实体中,实体包含了数据和操作数据的业务逻辑,以及实体之间的关系。其核心理念是将应用程序的逻辑和数据分离,数据对象仅包含属性和方法,将数据和表现分离,这样可以使实体对象具有最小的逻辑,代码重用性和可维护性都得到提高。问题领域建模是软件开发过程中非常重要的一步,它可以帮助开发者从业务用户的角度出发,抽象出业务实体以及实体之间的关系,并进一步细化业务实体的属性和行为,为后续的充血模型提供基础。贫血模型指的是将数据和操作分离,在数据对象中只包含数据,而操作则全部放在业务逻辑层中实现。原创 2023-07-05 08:30:00 · 1189 阅读 · 0 评论 -
【架构师基本功】高可扩展设计原则
将需要变化的部分封装成一个独立的模块或组件,将其与其他组件隔离开来,可以实现模块化设计,提高系统的可维护性和可扩展性。底层源码:} }} }原创 2023-06-26 18:33:49 · 223 阅读 · 0 评论 -
【架构师基本功】基础架构设计原则
在实际开发中,可以选择基础的数据结构,如数组、链表、栈、队列等,也可以使用高级的数据结构,如哈希表、红黑树、堆等,根据具体的场景进行选择。通过 C# 反射机制,我们可以在程序运行时动态地加载类和创建类的实例对象,调用类中的方法,访问类中的属性。通过 Python 动态导入模块,我们可以在程序运行时动态地导入模块并创建模块中的实例对象,调用模块中的方法,访问模块中的属性。有了 module 对象之后,我们就可以根据需要创建模块中的实例对象,调用模块中的方法,访问模块中的属性等。原创 2023-06-25 16:17:47 · 166 阅读 · 0 评论 -
【架构师基本功】架构设计协议ZAB
ZAB协议是ZooKeeper的核心协议,它确保了分布式系统的一致性和可用性。恢复模式用于同步数据,而广播模式用于处理客户端请求并将结果广播到整个集群中。ZAB协议的设计使得它能够在网络分区或节点失效的情况下仍然能够正常工作。原创 2023-07-01 11:45:00 · 225 阅读 · 0 评论 -
架构:第一章:项目架构的演变历史
架构演进过程 纯单机版架构 Maven依赖分层单机版架构 WebService服务调用分布式架构 CXF框架/HttpClient RESTTemplate Dubbo+ZooKeeper Spring Boot+Spring Cloud 远古时代:单一架构:整个项目只有一个工程。在Servlet容器上运行的时候,只有一个war包。黑铁时代:基于Web...原创 2018-12-14 18:04:01 · 778 阅读 · 0 评论 -
架构:第六章:系统架构
传统架构 支持1000并发架构Tomcat 默认配置的最大请求数是150,也就是说同时支持150个并发。具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给JVM的内存越多性能也就越高,但也会加重GC的负担。当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。支持10000并发架构需要按照功能点把系统拆分,拆分成独立的功能。单独为某一个节点添...原创 2019-01-28 19:01:44 · 657 阅读 · 0 评论 -
架构:第二章:单一(伪分布式)架构之使用Maven建立各个工程之间的依赖、继承、聚合关系
1开发模式1.1瀑布模型立项可行性分析需求分析概要设计详细设计开发编码测试1.2敏捷开发基于原型开发:根据大致需求开发静态页面,在静态页面基础上进一步调整,直到需求可以大致确定。后续根据静态页面开发项目实际功能。2项目功能2.1总体能够让用户在平台上发布项目,面向整个互联网筹集项目资金。支持项目可以获得相应回报。2.2学习开发众筹项目的目的巩固SSM框架知识技能...原创 2018-12-10 16:36:01 · 812 阅读 · 0 评论 -
【架构师基本功】架构设计协议Gossip
Gossip协议,即流言协议,是一种基于随机化算法的分布式数据交换协议。它最早被提出用于解决计算机集群中节点之间的状态同步问题。Gossip协议通过随机地选择一些节点进行信息交换,从而将整个集群中的信息传递开来。因此,它被广泛应用于分布式系统中的状态同步、数据更新等场景中。Gossip协议是一种基于随机化算法的分布式数据交换协议,它最早被提出用于解决计算机集群中节点之间的状态同步问题。它通过随机地选择节点来进行信息传递,从而将整个集群中的信息传递开来。原创 2023-07-03 19:15:00 · 237 阅读 · 0 评论 -
【架构师基本功】架构设计协议PAXOS
PAXOS协议是由莱斯利·兰伯特(Leslie Lamport)在1998年提出的一种分布式一致性算法。该算法可以保证在一个分布式系统中,所有节点可以达成一致的决策。Paxos算法的基本思路是引入一个提议者(proposer)、一个接受者(acceptor)和一个学习者(learner)的概念,同时使用“提议-承诺”(prepare-promise)和“接受-承诺”(accept-acknowledge)两个阶段来达成分布式一致性。原创 2023-06-25 19:23:03 · 628 阅读 · 0 评论