
架构设计
文章平均质量分 73
牧竹子
且行且珍惜
展开
-
替代visio画图工具Processon和drawio
离线客户端:https://github.com/jgraph/drawio-desktop/releases/tag/v24.7.17。国产类似visio工程类的工具,可以创建工程和流程图明细,类似excel表格页签方式,多个图在同一个工程中;个人使用,开源的可以使用,drawio 特别是离线不用联网,比较方便;支持多种方式:在线版本,离线客户端(支持mac,win),自己部署web;VISIO虽然是画图工具的天花板,但是大多需要付费版本也挺麻烦的,基本大家都改用其他方式替代该工具。原创 2024-11-28 16:50:05 · 795 阅读 · 0 评论 -
DDD核心概念
充血模型虽然是DDD中推崇的设计模式,通过领域实体,一些关键行为和逻辑其实也能一起拿到了,但是在我的经验中,我更喜欢使用贫血+充血的混合模型(或者叫充血模型的简化版),因为这里涉及到一个标准的建立问题,如果只用充血模型的话,哪些行为和逻辑该下方到接口服务层,哪些又该收拢到实体中,这里面每个人的理念不一样。领域建模的优秀与否,可以说直接决定着本次设计的成败,因为一旦发生建模边界不清晰,实体划分错乱,核心属性没有遵守开闭原则等问题,虽然当下可以正常交付业务,但是对于整个项目的后续发展可以说是灾难性的。原创 2024-09-05 18:56:17 · 1179 阅读 · 0 评论 -
服务网格Service Mesh和Istio
对于大规模和复杂的应用场景,Istio可能是一个更好的选择,因为它提供了丰富的功能和强大的扩展性。Istio的功能涵盖了流量管理、策略制定、故障注入等方面,适用于复杂的微服务架构。并且,Istio有着庞大的社区支持,可以获取到大量的文档、教程和问题解答,有利于开发人员学习和使用。此外,服务网格还提供了可观测性和监控的能力,使得开发团队可以更好地理解和调试整个应用程序的运行状况。在选择合适的服务网格解决方案时,开发团队应该综合考虑应用的规模、复杂性、性能需求和团队的技术水平,并根据实际情况做出明智的选择。原创 2024-02-20 16:33:08 · 1075 阅读 · 0 评论 -
Seata分布式事务AT、TCC、SAGA、XA模式
可以看出,除了TCC基本都是两阶段模式,成功提交,失败回滚。而根据实现难度,TCC和SAGA都需要手动实现业务回滚代码,复杂度要高一些。其他都可以有数据库或者第三方事务管理器实现回滚业务流程,而你只需要专注业务流程本身。AT,SAGA模式需要所有参与方都有数据库权限,这点如果项目参与方都是一起的不涉及第三方或许可以实现。但如果你调用的是第三方服务,显然不可能支持,第三方更不可能给你提供数据库访问权限,比如支付服务,任何第三方支付都不可能提供数据库权限给你。原创 2023-05-29 14:38:32 · 931 阅读 · 0 评论 -
DevOps和主流devOps组件
DevOps是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控,如此往复。在 DevOps 模式下,开发团队和运营团队都不再是“孤立”的团队。有时,这两个团队会合为一个团队,他们的工程师会在应用程序的整个生命周期(从开发测试到部署再到运营)内相互协作,开发出一系列不限于单一职能的技能。在一些 DevOps 模式下,质保和安全团队也会与开发和运营团队更紧密地结合在一起,贯穿应用程序的整个生命周期。日志管理:Looki,还有种常用的是ELK。原创 2023-04-04 09:34:20 · 640 阅读 · 0 评论 -
自行走机器人系统常用的技术栈
由于就职于一家AI机器人及工业检测相关的公司,就对当前相关联的技术栈有一个大致的了解。本人是Java后端服务岗位,之前互联网公司经历,但对机器人这块比较好奇,所有只做了相关的了解。...原创 2022-03-21 18:45:14 · 1991 阅读 · 0 评论 -
总结 AT、TCC、Saga、XA 模式分析
总结 AT、TCC、Saga、XA 模式分析分布式事务模式介绍技术栈AT 模式无侵入的分布式事务解决方案,适用于不希望对业务进行改造的场景,几乎0学习成本(sql都由框架托管统一执行,会存在脏写问题)seata、shardingsphereTCC 模式高性能分布式事务解决方案,适用于核心系统等对性能有很高要求的场景(第一阶段会产生行锁,事务执行太久会锁行很久)seata、service-combSaga 模式长事务解决方案,适用于业务流程长且需要保证事务最终一致转载 2022-02-11 17:31:09 · 795 阅读 · 0 评论 -
接口文档Swagger、knife4j和YApi、APIDOC
Swagger、knife4j和YApiSwagger简介特点跨语言在线编辑导入文档导出离线文档权限管理Swaggerspring-boot支持的基本API生成文档模块可以导出api的json格式,强依赖Java项目运行,不支持离线文档功能java––––knife4jknife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案 UI和服务分离-增强UI根据标准规范,生成的在线markdown离线文档,开发者可以进行拷贝生成m原创 2021-03-26 09:52:46 · 3051 阅读 · 0 评论 -
聚合支付二维码生成原理
聚合支付二维码生成原理聚合支付平台提供平台支付URL,生成统一的支付二维码。当消费者根据二维码扫描时,聚合支付平台根据扫描者浏览器类型判断支付类型,并提交参数给聚合支付平台支付处理接口处理。平台支付处理接口根据支付类型和商户ID,调用相应的支付渠道支付接口进行支付处理1.商户分别开通微信、支付宝、京东金融等支付渠道,各个平台审核通过后会生成微信商户编码,支付宝商户编码和京东金融商户编码2.商户将这些渠道的支付账号配置到聚合平台中,并分配给用户一个聚合唯一用户标识ID3.聚合平台通过微信、支付宝和京转载 2020-06-08 22:38:03 · 7788 阅读 · 0 评论 -
开源监控系统对比(Ganglia、Open-falcon、Prometheus、Zabbix) 不指定
最近调研了一下开源的监控系统,最终选择了open-falcon。从以下列表可以了解到各监控系统都有他在特定场景下的优势,如果以时间进行分类可以了解到新起之秀譬如open-falcon和prometheus设计思路都很像。 但最终选择open-falcon的原因主要还是在当前笔者所在的场景下解决了一些痛点、譬如大量数据上报页面展示渲染速度很快、模块化开发、有丰富的插件和中文文档等。关于open-...转载 2019-12-27 09:38:28 · 4435 阅读 · 1 评论 -
架构技术栈
互联网技术演进的模式互联网业务千差万别,但由于它们具有“规模决定一切”的相同点,其发展路径也基本上是一致的。互联网业务发展一般分为几个时期:初创期、发展期、竞争期、成熟期。不同时期的差别主要体现在两个方面:复杂性、用户规模。业务复杂性互联网业务发展第一个主要方向就是“业务越来越复杂”,我们来看看不同时期业务的复杂性的表现。初创期发展期竞争期成熟期用户规模互联网业务的发展第二个主...转载 2019-09-25 16:52:22 · 882 阅读 · 0 评论 -
事务原理:ACID,CAP和BASE理论及分布式事务一致性案例
分布式系统一致性的需求需求定义Safety Only a value that has been proposed may be chosen. Only a single value is chosen. A node never learns that a value has been chosen unless it actually has been.Liveness Some转载 2017-12-25 15:34:23 · 10616 阅读 · 1 评论 -
数据库分库分表系列(一) 拆分实施策略和示例演示
本文原文连接: http://blog.youkuaiyun.com/bluishglc/article/details/7696085 ,转载请注明出处!本文着重介绍sharding切分策略,如果你对数据库sharding缺少基本的了解,请参考我另一篇从基础理论全面介绍sharding的文章:数据库Sharding的基本思想和切分策略第一部分:实施策略 图1.数据库分库分表(sharding)实施策略图解(转载 2017-12-11 11:42:05 · 497 阅读 · 0 评论 -
理论篇:数据库分库分表的基本思想和切分策略
本文着重介绍sharding的基本思想和理论上的切分策略一、基本思想 Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水转载 2017-12-11 10:32:26 · 454 阅读 · 0 评论 -
理论篇:集群、分布式、负载均衡区别与联系
概念分布式:是指将不同的业务分布在不同的地方(创建不同的项目并大多是部署在不同的服务器)集群:指的是将几台服务器集中在一起,实现同一项目或业务(比如秒杀业务)负载均衡:在集群的基础上对某一业务的流量进行均衡处理,避免工作不平衡造成压力大的服务崩溃分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的(同一个项目可以部署多台服务器实现集群,但业务并没有细分)。 使用场景何时要用分原创 2017-12-11 09:19:42 · 802 阅读 · 0 评论 -
企业的应用架构演变之路
作者|杨堃编辑|Gary企业应用架构是指一整套软件系统的构建,通过合理的划分和设计组合在一起,支持企业方方面面的经营运作。不论是传统企业,还是互联网公司,发展到一定阶段,都需要一整套体系化的应用架构来支撑其运转。良好的、合理的应用架构可以支持企业高效开展业务,控制经营风险,而混乱的、不合理的应用架构则会限制企业的快速发展,成为企业增长与变革的瓶颈。企业信息化建设已经发展了几十年,传转载 2017-05-06 16:08:36 · 3371 阅读 · 0 评论