首页 > 其他分享 >分布式系统架构设计思想

分布式系统架构设计思想

时间:2023-08-10 18:36:13浏览次数:62  
标签:架构设计 思想 取舍 事务处理 分布式系统 日志 分布式

1. 计算与存储分离

 

2. 接口幂等, 业务幂等 ,防重提交

 

3.功能性需求 ,非功能性需求 之间的取舍平衡

 

4. 数据的冷热分离

 

5. 高内聚,低耦合 , 模块化设计 ,分层,防腐层 ,DDD 

 

6. 分布式系统,三大件   Redis , MQ , 分布式数据库(1. 满足事务处理简单 , 2. 能快速 横向 扩展)

 

7. 分布式事务处理, 结合 TCC + 事务消息 + 本地事务 -----> 达到最终一致性

 

8, CPA 原理, 在A ,C 之间取舍.

 

9. 搜索架构 ES

 

10. 日志平台 ELK , 日志追踪 tranceID

 

11. 链路追踪 skywalking

 

12. 性能监控 promtus

 

13. 服务 容器化 k8s + docker

 

14. 业界趋势 云原生 + gitops

标签:架构设计,思想,取舍,事务处理,分布式系统,日志,分布式
From: https://www.cnblogs.com/cytc/p/17621196.html

相关文章

  • 企业级架构设计:迈向大型项目开发的高级阶段
     企业级架构设计:迈向大型项目开发的高级阶段摘要:每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划......
  • 浅谈项目架构设计
    整理自b站up主主要一点是最合适的是最好的,不必为了过于追求某项技术而冗余!一.功能性需求1.跟实际的业务需求是对应的!2.所使用的技术框架是不是够先进,文档是否完善,使用过程中容易排查到问题3.技术是否为开源的,够不够活跃,更新频率等4.成本:学习成本,使用成本,迁移成本,维护成本,要......
  • 领域驱动设计(DDD)——架构设计
    系统与子系统系统:泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能独立完成的工作能力的群体。子系统:也是由一群关联的个体组成的系统,多半是在更大的系统中的一部分。例如:汽车与发动机模块与组件都是系统的组成部分,从不同角度拆分系统而已。模块是逻辑单元,组件......
  • 《Java编程思想第四版》学习笔记07
    到底应该使用一个接口还是一个抽象类呢?若使用接口,我们可以同时获得抽象类以及接口的好处。所以假如想创建的基础类没有任何方法定义或者成员变量,那么无论如何都愿意使用接口,而不要选择抽象类。事实上,如果事先知道某种东西会成为基础类,那么第一个选择就是把它变成一个接口。只有在必......
  • 深入浅出关于微服务架构实战指南:分布式系统的设计与部署技巧
    深入浅出关于微服务架构实战指南:分布式系统的设计与部署技巧微服务架构实战指南:分布式系统的设计与部署技巧摘要:随着互联网应用的快速发展,传统的单体应用架构已经无法满足高可用、可扩展、快速迭代等需求。微服务架构的出现为解决这些问题提供了一种新的思路。本文将深入探讨微......
  • zabbix 基于 Web 界面的提供分布式系统监视
    zabbix基于Web界面的提供分布式系统监视,能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。目录一、zabbix概述二、监控原理三、zabbix组件四、zabbix架构五、zabbix工作原理六、部署zabbix七、总结  ......
  • 高内聚低耦合思想
    什么是高内聚低耦合高内聚低耦合是为了实现比较高的模块独立性模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。耦合性耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度......
  • [系统设计] 分布式系统 (1) 分布式锁(1)基于Redis(setnx)实现分布式锁组件
    1序言近期遇到一个问题:外部查询缓存了InfluxDB中物联网数据表的字段信息元数据的本地缓存(基于GoogleGuavaCache、及其RefreshAfterWrite(seconds,TimeUnit.SECOND))的Web接口为什么会缓存Influxdb的字段信息呢?因为字段信息非常多,多到每次查询时需要花费1.5-2分钟(80秒......
  • 《Java编程思想第四版》学习笔记06
    为什么要把一个方法声明成final呢?正如上一章指出的那样,它能防止其他人覆盖那个方法。但也许更重要的一点是,它可有效地“关闭”动态绑定,或者告诉编译器不需要进行动态绑定。这样一来,编译器就可为final方法调用生成效率更高的代码。               ......
  • [系统设计] 计算机系统设计思想:缓存/局部性原理(转载)【待完善】
    1缓存概述缓存思想是计算机系统设计中极为重要的解决手段,其本质原则是————局部性原理在资源有限的情况下,将热点资源、最重要的资源部署到离请求方最近的地方去,以达到性能预期。1.1什么是缓存,为什么要用缓存?缓存就是数据交换的缓冲区(称作Cache),是存贮数据(使用频繁的数据......