【原则-模式-架构】
文章平均质量分 72
架构知识
执于代码
职业画像详情:https://github.com/xiamaocheng,
其他:https://www.infoq.cn/profile/8E8D58FE040264/publish
展开
-
微服务迁移、重构最佳经验
要了解现有的应用架构和技术栈,可以采取以下几个步骤:1. 了解应用的背景和目标:首先要了解应用的背景和目标,包括应用所属的行业、应用的类型(例如Web应用、移动应用等)、应用的规模等。2. 查看系统文档和设计文档:查看应用的系统文档和设计文档可以获得详细的应用架构和技术选型信息。这些文档通常包括系统的功能模块、模块之间的关系、数据流程、数据存储、性能需求等信息。3. 检查应用的代码库:如果有权限,可以查看应用的代码库,特别是核心的模块和组件。原创 2024-06-13 15:33:19 · 1113 阅读 · 0 评论 -
5.6 探讨软件系统的三高设计和容错机制设计
性能设计是指在设计过程中考虑并优化系统、产品或服务的性能指标,以提供更高效、更稳定、更可靠的使用体验。性能设计涵盖了多个方面,包括响应时间、吞吐量、负载能力、可扩展性、可靠性等。通过合理的性能设计,可以提高系统的响应速度、减少资源消耗、提升用户满意度。性能设计需要在需求分析和系统架构设计阶段进行,并在系统开发和运维过程中持续优化和监测。原创 2024-06-12 15:12:11 · 781 阅读 · 0 评论 -
5.5 业务流程和业务逻辑设计
业务规则定义是指组织或企业在进行业务活动过程中,根据业务需求和规程制定的一系列规则。这些规则旨在指导和约束各种业务操作和决策,确保业务活动的规范性、一致性和有效性。业务规则定义涵盖了以下方面:1. 业务流程规则:规定了业务流程中各个节点的操作和决策规则,以确保流程的顺畅进行。2. 数据规则:规定了业务数据的创建、修改、存储和访问规则,确保数据的准确性、完整性和安全性。3. 权限规则:规定了各个用户或角色在业务系统中的权限范围和操作规则,确保业务系统的安全性和权限控制。原创 2024-06-12 12:32:39 · 1167 阅读 · 0 评论 -
5.4 安全策略和控制 方法实现探讨
安全策略是一组规则和措施,旨在保护组织的信息和资产免受潜在的威胁和攻击。它的制定和实施需要考虑组织的特定需求和风险,并采取适当的措施来减少潜在的安全漏洞。安全策略的定义包括以下几个方面:1. 目标和范围:确定安全策略的整体目标和适用范围。例如,是否覆盖整个组织还是特定的部门、系统或流程。2. 风险评估:评估组织的风险和威胁情况,包括内部和外部的威胁。这可以通过安全审计、风险评估和威胁建模等方法来完成。3. 安全目标:明确安全策略的具体目标,如保护机密性、完整性和可用性。原创 2024-06-11 19:56:28 · 1146 阅读 · 0 评论 -
5.3 数据模型设计总结
数据模型设计是指在数据库设计过程中,根据需求和业务逻辑,对数据进行抽象、组织和建模的过程。它是数据库设计的重要部分,决定了数据在数据库中的组织方式,直接影响了数据库的性能、可扩展性和易用性。在进行数据模型设计时,需要考虑以下几个方面:1. 数据需求分析:了解用户需求,明确数据的基本概念和关系,并通过业务规则和实体关系图进行数据建模。2. 实体关系图(ER图)设计:根据数据需求,将数据抽象成实体和实体间的关系,并用符号和箭头表示。原创 2024-06-11 18:15:05 · 653 阅读 · 0 评论 -
5.2 模块之间的交互和通信方式方法总结
事件驱动通信是一种通信模式,它基于事件的发生和相应来进行通信。在事件驱动通信中,各个组件之间通过发送事件来进行通信,而不是直接调用对方的方法。事件驱动通信的基本原理是,当一个组件发生某个特定的事件时,它会发送一个事件消息,然后其他相关的组件可以监听并相应这个事件消息。这种通信模式的好处是,各个组件之间解耦合,不需要直接依赖对方的接口或实现,而是通过事件来进行通信。这样可以增加系统的灵活性和可扩展性。事件驱动通信可以在各种不同的系统中使用,包括软件系统、硬件系统等。原创 2024-06-11 17:39:55 · 1056 阅读 · 0 评论 -
5.1 系统模块划分探讨
系统模块划分是指将一个系统按照功能或业务进行划分,以便于组织和管理系统的开发、维护和扩展。一般来说,系统模块划分可以根据业务功能、技术层次和逻辑关系等方面进行。原创 2024-06-11 17:03:54 · 1097 阅读 · 0 评论 -
架构师 如何架构选型一个项目
项目目标是通过开发一个新产品或服务,解决特定问题或满足特定需求。项目需求是指项目所必需的功能、性能、质量等方面的要求。项目目标和需求可能包括以下几个方面:1. 解决问题:项目目标是通过开发新产品或服务来解决特定的问题。需求是指项目所必需的功能和性能,以解决问题并达到项目目标。2. 满足需求:项目目标是满足特定的需求。需求是指项目所必需的功能、性能和质量,以满足用户或客户的需求和期望。3. 提高效率:项目目标是提高工作效率和生产力。需求是指项目所必需的功能和性能,以实现效率和生产力的提升。原创 2024-06-11 15:26:55 · 1055 阅读 · 0 评论 -
某人的系统四分法(管理+ 规则+应用+对接)
管理系统功能是一种计算机软件或应用程序,用于协助管理和监控各种业务和流程。它可以帮助组织有效地处理和管理各种任务和活动,提高工作效率和生产力。以下是一些常见的管理系统功能:用户管理:管理系统可以提供用户身份验证和权限管理功能,以确保只有授权用户可以访问和操作系统中的内容和功能。数据管理:管理系统可以管理和存储组织的数据,包括客户信息、产品信息、销售记录等。它可以帮助组织高效地组织和检索数据,并确保数据的安全和完整性。原创 2024-04-26 22:51:59 · 580 阅读 · 0 评论 -
预约系统的使用
一般用户。原创 2024-04-14 17:22:45 · 825 阅读 · 0 评论 -
3. 规则系统架构组件
规则系统架构组件。原创 2024-04-13 13:23:08 · 526 阅读 · 0 评论 -
规则系统架构
规则系统架构。原创 2024-04-13 13:01:44 · 1059 阅读 · 0 评论 -
微服务架构组件介绍
微服务架构是一个非常常见的需求。原创 2024-01-07 20:24:15 · 1058 阅读 · 0 评论 -
企业架构EA工具
企业架构EA工具。原创 2023-09-13 00:34:50 · 244 阅读 · 0 评论 -
架构师如何做好需求分析
架构师如何做好需求分析是一个重要的问题。原创 2023-09-06 21:04:54 · 393 阅读 · 0 评论 -
PPT 架构师三板斧
Vue+Java+SpringCloud+k8s+mysql集群版+MongoDB+Redis+ElasticSearch+Kafka。原创 2023-09-04 23:55:41 · 604 阅读 · 0 评论 -
微服务架构七种模式
微服务架构七种模式。原创 2023-08-31 23:58:23 · 863 阅读 · 0 评论 -
软件质量保障QA
软件质量保障。原创 2023-06-18 22:15:08 · 326 阅读 · 0 评论 -
架构EA演进
架构演进的是一个非常常见的需求。原创 2023-06-02 19:40:26 · 535 阅读 · 0 评论 -
工作流代码
是一个非常常见的需求。原创 2023-01-17 07:13:03 · 1562 阅读 · 0 评论 -
六种常见系统架构
1、单库单应用架构:最简单的,可能大家都见过。原创 2023-01-14 07:24:03 · 5992 阅读 · 0 评论 -
j2ee 设计模式
一个接口:public interface BusinessService { public void doProcesing();}2.2个实现类的方法public class EJBService implements BusinessService { @Override public void doProcesing() { // TODO Auto-...原创 2019-01-03 22:10:10 · 168 阅读 · 0 评论 -
微服务架构选型
微服务架构选型的是一个非常常见的需求。原创 2022-10-16 23:59:57 · 988 阅读 · 0 评论 -
浅谈一下架构设计思路
垂直:对服务器本身进行更换,部署比以前更好的服务器。新的服务器相比以前的服务器有更快的CPU,更多的内存,更大更快的硬盘,更快的内存总线。ValueObject 简单的基本值对象,如电话号码、地址等,组成entity的基本单元 语言基本类型。Entity 包含了一个领域里的状态、以及对状态的直接操作单元,具有自闭环的对象。水平扩容:部署更多的服务器,增加的服务器性能与之前的服务器性能相同,或者花费同样的费用。领域模型是对业务模型的抽象,DDD是把业务模型翻译成系统架构设计的一种方式。原创 2022-10-08 12:51:51 · 1085 阅读 · 0 评论 -
论系统的可扩展性
创建优惠券时,会加载业务下的限制规则,通过配置选择具体要使用到的限制规则 (相同业务线下的不同优惠券可以有不同的规则限制),配置选择后,会在规范字段中存储规则实现的 id(规则实现可能会变化,会有多次提交),所以这里存储的是 id,在执行的时候可以拿到这个 id。对上面野蛮方式的一个常见处理就是面向接口设计,抽象出一个限制条件检查的接口,不同的业务线有对应的实现,通过配置指定业务线下所有的实现,将这些实现放到一个映射中,在程序执行过程中,通过业务线就可以执行所有的接口实现类并依次执行。转载 2022-10-08 00:06:45 · 1126 阅读 · 0 评论 -
谈一下架构的高可用架构
异地备份:是容灾系统的核心技术,它不同于上面的备份方法,它的特点是具有异地性。通过有效的数据复制,实现远程的业务数据与本地业务数据的同步,确保一旦本地系统出现故障,远程的容灾中心能够迅速进行完整的业务接管。另外一种:完全备份:备份所有数据差异备份:备份上一次的完全备份后发生的数据。分级管理:高优先级的服务使用更好的硬件,并对服务进行隔离,避免故障的连锁反应。高可用的应用:有状态的应用的应用的Session管理。增量备份:上一次备份后,备份所有发生的变化的数据。高可用的数据: 数据备份,失效转移。转载 2022-10-07 23:30:57 · 169 阅读 · 0 评论 -
DDD(领域驱动设计)
(简称 ddd)概念来源于2004年著名建模专家eric evans发表的他最具影响力的书籍:《domain-driven design –tackling complexity in the heart of software》(中文译名:领域驱动设计—软件核心复杂性应对之道)一书。,书中提出了“领域驱动设计(简称 ddd)”的概念。领域驱动设计一般分为两个阶段:1. 以一种领域专家、设计人员、原创 2020-01-02 12:24:09 · 421 阅读 · 0 评论 -
系统架构之系统参数常量表:
2.和数据字典不同的是不需要同前台进行转义交互。主要用来存储参数类型,自定义的返回码等信息。原创 2022-07-27 08:33:33 · 475 阅读 · 0 评论 -
关于系统接口设计:
系统接口设计是一个非常常见的需求。原创 2022-07-22 01:16:32 · 1933 阅读 · 0 评论 -
定时任务框架
定时的任务的的框架的也是非常常见的需求。原创 2022-07-21 00:27:04 · 729 阅读 · 0 评论 -
Java 数据字典的实现
记得第一次接触数据字典还是第一个项目,是用简单的hashmap实现了,现在做一个笔录吧,8年之久了,原创 2022-07-19 23:44:04 · 3981 阅读 · 0 评论 -
vo,dto,po,bo 解释
建立3层级架构之后,基本是一个流程过来了:现在考虑分层:POJO的定义是无规则简单的对象,在日常的代码分层中pojo会被分为VO、BO、 PO、 DTO,这些分别是指哪里的对象呢?vo:1、前端展示的数据,在接口数据返回给前端的时候需要转成VOVO就是展示用的数据,不管展示方式是网页,还是客户端,还是APP,只要是这个东西是让人看到的,这就叫VOB0(bussines object)业务层对象1、主要在服务内部使用的业务对象2、可以包含多个对象,可以用于对象的聚合操作PO(persistent ob转载 2022-07-13 01:14:34 · 1750 阅读 · 0 评论 -
微服务架构演进
模块化时微服务的基 础,先建立一个多模块,起了一个端口,显然这个主程序启动时,会让这些端口一起启动,相等于启动不同的端口。打包试试,看看logshttps://www.cnblogs.com/xfeiyun/p/16244208.html原创 2022-07-08 08:18:55 · 148 阅读 · 0 评论 -
浅谈日志中的返回格式封装格式处理,异常处理
选型问题不谈,主要考虑info 级别的数据:一般说来,我们都会上项目上封装一个返回异常类,用来包装信息。通常我们来说就是返回码和返回信息,这种最常见了。为了更好的检查问题,我们设计如下:000000-业务成功000001-业务失败等对于Msg信息呢:我们可以定义信息格式:或信息提示。这样在就可以不同的流程信息中输出对应的封装信息了。信息最好有规则话,如XX,原因,便于上线grep 搜索一般这个就可以了。我们知道异常的层次:我们可以定义自己的异常类,一般不太常用,但是可以这么做。更多的是借原创 2022-07-06 23:31:49 · 95 阅读 · 0 评论 -
QPS的概念和实现
QPS是一种非常常见的需求。1.QPS的实现测试log:我疑惑的地方是为什么最后输出耗时呢?无这里参考:github:简单实现上述流程:入门级实现:: 部分源码实现.: 源码实现无原创 2022-06-26 00:02:48 · 394 阅读 · 0 评论 -
论催收系统的任务调度设计
调度系统是我们非常常用的系统:1.除了开源的调度系统外,我们设计如下调度方式:设计表结构:taskServer,taskid,2.程序中使用corn 表达式执行3.关于重构原创 2022-06-22 08:14:50 · 147 阅读 · 0 评论 -
论催收系统的架构的设计和部署
上届我们说到催收系统的业务功能通过技术选型后我们能设计出催收系统的SpringBoot 应用1.单体+双数据源架构1.如何扩展这个单体和双数据源架构呢?2.如何扩展这个部署架构呢单体的拆分:主要经历分布式,微服务的架构方式的演进,只不过我们正在进行拆分。或者说这就是微服务,但是缺少网关等组件,严格说来分布式因为是双数据源隔离的,所以读写并不影响。部署架构较为简单,前台通过NG转发,到后台的主从机器上进行部署即可。这里参考:github:简单实现上述流程:入门级实现:: 部分源码实现.: 源码原创 2022-06-19 11:25:44 · 1025 阅读 · 0 评论 -
论工作流选型
1.选型要点1、支持自定义表单与工作流集成。(表单支持主子表情况)2、支持工作流子流程嵌套3、工作流各节点的用户权限分配(支持部门、用户、角色、职务等复杂授权方式)4、工作流各节点表单字段的权限控制(如可修改/编辑、是否可见等)5、支持复杂的的流程分支情况(根据一定的复杂条件)6、图形化的流程自定义设计器(最好是浏览器模式)7、支持Word等文件格式痕迹管理、痕迹化管理8、电子签章功能9、包含常用的OA系统的公文流转功能常用比较:目前Flowable已经修复了activiti6很多的bu转载 2022-06-11 16:17:44 · 519 阅读 · 0 评论 -
系统的可扩展型
高可扩展性设计拆分,把庞杂系统拆分成独立、单一职责的模块。注意对不同类型模块,拆分原则不同。假如设计一个知乎,那么会有几个模块呢?至少5个模块。用户:负责维护社区用户信息,注册,登陆等;关系:用户之间关注、好友、拉黑等关系的维护;内容:社区发的内容,就像朋友圈或者微博的内容;评论、赞:用户可能会有的两种常规互动操作;搜索:用户的搜索,内容的搜索。部署方式遵照最简单三层部署架构负载均衡负责请求的分发应用服务器负责业务逻辑的处理数据库负责数据的存储落地所有模块的业务代码混合,数据也都存在一个库转载 2022-06-11 06:27:13 · 298 阅读 · 0 评论 -
论高可用架构
1、高可用架构具备特征1、主从切换或双机双工1)主从切换,是当其中一台机器的服务宕机后,对于调用者来说,能够迅速的切换到其他可用服务,从服务升级为主服务,这种切换速度应当控制在秒级别。当宕机的服务恢复之后,自动变为从服务,主从服务角色切换。主从切换一定是要付出代价的,所以当主服务恢复之后,也就不再替换现有的主服务。2)双机双工方式(互备互援) 工作原理:两台主机同时运行各自的服务工作且相互监测情况,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证工作实时,应用服务系统的关键数据存放在共享存储系统转载 2022-06-10 07:56:14 · 406 阅读 · 0 评论