架构师应该在团队中发挥怎样的作用?

084e5537ebc0f59ae9e77b3d25f07bd6.png

架构师分为5种:

1.企业架构师EA(Enterprise Architect)   EA的职责是决定整个公司的技术路线和技术发展方向。

2.基础结构架构师IA(Infrastructure Architect)  IA的工作就是提炼和优化技术方面积累和沉淀形成的基础性的、公共的、可复用的框架和组件,这些都是一个技术型公司传承下来的最宝贵的财富之一;

3.特定技术架构 TSA (Technology-Specific Architect)   主要从事类似安全架构、存储架构等专项技术的规划和设计工作;

4.解决方案架构师SA (Solution Architect)。专于解决方案的规划和设计

5.业务架构师BA (Business Architect)。在业务团队内部,和leader打配合。

和业务团队联系最为紧密的业务架构师,在团队中,leader和架构师之间一般是刘备和诸葛亮之间的关系。如果leader本身技术能力特别强,那可能会演变成曹操和荀彧。荀彧在战略方面为曹操规划制定了统一北方的蓝图和军事路线,多次修正曹操的战略方针。

不管是诸葛亮、荀彧,或者其他的架构师例如:张良、羊皮大夫百里奚,在团队中有两个重要作用:第一个是制定规范、规划和方案,第二个是在团队中有足够的影响力,在关键时刻发挥作用。

那要问影响力是怎么来的,那就是个人技术能力的一个认可度了。前段时间我在做拆库分表的技术方案评审时,听到人家说就是现在业务不太忙,想把事情做掉。具体为什么要一拆十还是拍脑袋的,未来谁也说不好。就这件事,我谈谈自己的观点。仁者见仁,没有谁对谁错,只是谈谈自己的思考。

为什么要分表?

之所以想着去做这件事,我理解是为了未来解决扩展性的问题。是需要依托于架构整体规划的。架构整体规划重要的环节是容量评估。容量评估除了在大的技术方案上要考虑之外,一般还需要架构师定期去做。比如1个季度、半年、1年做一次容量评估。

未来的不确定因素太多,容量怎样去评估呢?

我们的目标是什么。如果目标是同行业前5。可以从他们公开的财务报表等数据调研他们的数据量级。比如行业第五,日单量是500万。拆10张表。一个数据库在量级达到千万级别,性能开始下降。也就是说1张表大概可以存2天的数据,10张表可以存20天的数据。数据历史记录如果可以允许查半年的。那就不够了。分成100张表,过了半年可以进行归档,就可以持续支撑日单量500万的交易。

实际上一般很少有人要做分库分表了,一次这种大动作还只提高10倍的容量。因为就单库来说,分成1百张表、1千张表,磁盘容量都不是瓶颈。瓶颈在支撑的TPS上。就一个高性能物理机的数据库来说,大概可以支撑5000TPS量级。在这种情况下,表分的细一些,可以提高单表的性能。况且,这种逻辑分表并不需要额外的资源支持,不会增加成本。

容量评估时还需要考虑哪些因素?

容量评估时还需要考虑其他的设计:读写分离、数据归档。

读写分离,如果读写比例是1比1,分离后容量会增加1倍。但分离和不分离的区别不是简单改代码的问题,而是分离后要考虑读的延迟。比如mysql主从延迟一般在1s。实时业务的场景其实不能够允许这么大的延迟。但有些场景,比如历史查询、列表查询是可以的。如果读写分离是需要想清楚哪些场景要拆分到主库,哪些是拆分到从库的。会不会涉及事务问题。

数据归档,因为已经需要使用像sharding-jdbc这种中间件了。这种中间件不仅可以支持哈希散列算法,还可以按照时间散列的。所以可以直接在分表设计时就可以设计为_上半年下半年标识_哈希,这样只要有定时脚本数据表直接提前建好,自动实现数据归档,无需额外服务处理。比如现在已经是下半年。现在上半年只有读的流量,没有写的流量了。下半年的读写都很多。所以上半年数据属于冷数据,下半年数据属于热数据,实现了冷热分离。

其他还有什么考虑点?

数据库分库分表是个大动作,一般要提前很久规划,过程因为涉及数据一致性校验等环节,相对持续时间也很长。而这个过程是对业务进行梳理的绝佳机会。比如可以趁此机会将原本的数据库事务改成分布式事务,提升架构的性能和扩展性。

而架构师要自己或者带领团队成员做好各个方面的考虑。考虑问题要比leader全面,并具有前瞻性视野。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/40652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 基础组件速学 鼠标和键盘事件

学习目标: 鼠标事件和键盘事件应用 前置环境 运行环境:qt creator 4.12 学习内容和效果演示: 1.鼠标事件 根据鼠标的坐标位置,做出对应的事件。 2.键盘事件 根据键盘的输入做出对应操作 详细主要代码 1.鼠标事件 #include "main…

一文读懂轻量日志收集系统Loki工作原理

Loki 是由 Grafana Labs 开发的日志聚合系统,设计目标是提供一种高效、低成本的日志收集和查询解决方案。与传统的日志系统(如 ELK Stack)不同,Loki 不会对日志内容进行索引,而是仅对日志的元数据进行索引,…

美国大带宽服务器租用优势和注意事项

美国大带宽服务器租用对于需要处理大量数据和提供高速网络服务的企业至关重要。下面将详细讨论美国大带宽服务器租用的优势、适用场景及注意事项,rak部落小编为您整理发布美国大带宽服务器租用的优势和注意事项。 优势 1. 高速数据传输: - 大带宽服务器提…

FTP、http 、tcp

HTTP VS FTP HTTP :HyperText Transfer Protocol 超文本传输协议,是基于TCP协议 FTP: File Transfer Protocol 文件传输协议, 基于TCP协议, 基于UDP协议的FTP 叫做 TFTP HTTP 协议 通过一个SOCKET连接传输依次会话数…

FIND_IN_SET使用案例--[sql语句根据多ids筛选出对应数据]

一 FIND_IN_SET select id,system_ids from intellect_client_info where FIND_IN_SET(5, system_ids) > 0;

Spring Boot 中的监视器是什么?有什么作用?

前言: 监听器相信熟悉 Spring、Spring Boot 的都知道,但是监视器又是什么?估计很多人一脸懵的状态,本篇分享一下 Spring Boot 的监视器。 Spring Boot 系列文章传送门 Spring Boot 启动流程源码分析(2) …

Apache DolphinScheduler 与 AWS 的 EMR/Redshift 集成实践分享

引言 这篇文章将给大家讲解关于DolphinScheduler与AWS的EMR和Redshift的集成实践,通过本文希望大家能更深入地了解AWS智能湖仓架构,以及DolphinScheduler在实际应用中的重要性。 AWS智能湖仓架构 首先,我们来看一下AWS经典的智能湖仓架构图…

【第20章】MyBatis-Plus逻辑删除支持

文章目录 前言一、逻辑删除的工作原理二、支持的数据类型三、使用方法1.配置全局逻辑删除属性2.在实体类中使用 TableLogic 注解 四、常见问题解答1. 如何处理插入操作?2. 删除接口自动填充功能失效怎么办? 五、实战1. 全局配置2. 添加TableLogic3. 自动…

高考选专业,兴趣与就业前景该如何平衡?

从高考结束的那一刻开始,有些家长和学生就已经变得焦虑了,因为他们不知道成绩出来的时候学生应该如何填报志愿,也不知道选择什么样的专业,毕竟大学里面的专业丰富多彩,如何选择确实是一门学问,而对于学生们…

Oracle的RECYCLEBIN回收站:轻松恢复误删对象

目录 Oracle的RECYCLEBIN回收站:轻松恢复误删对象一、概念二、工作原理三、使用方法1 查看回收站中的对象2 恢复回收站中的对象2.1 恢复表(TABLE)2.2 恢复索引(INDEX)2.3 恢复视图(VIEW)2.4 恢复…

乐清网站建设规划书

乐清是位于浙江省温州市的一个县级市,拥有悠久的历史和丰富的文化底蕴。随着互联网的快速发展,网站建设成为推动乐清经济和文化发展的重要手段。因此,我们认为有必要制定一个全面的乐清网站建设规划书,以促进乐清的经济繁荣和文化…

东芝 TB5128FTG 强大性能的步进电机驱动器

TB5128FTG它以高精度和高效能为设计理念,采用 PWM 斩波方法,并内置时钟解码器。通过先进的 BiCD 工艺制造,这款驱动器提供高达 50V 和 5.0A 的输出额定值,成为广泛应用场景中的强劲解决方案。 主要特性 TB5128FTG 拥有众多确保高…

SAP PS学习笔记01 - PS概述,创建Project和WBS

本章开始学习PS(Project System)。 1,PS的概述 PS(Project System)是SAP企业资源规划系统中的一个关键模块,主要用于项目管理。 它提供了一个全面的框架来规划、控制和执行项目,涵盖了从项目启…

【Express】自定义错误码和通用返回对象

自定义错误码: // 自定义错误 const {formatResponse} require("./tool");class ServiceError extends Error {/**** param message 自定义错误信息* param code 自定义错误码*/constructor(message, code) {super(message);this.code code;}/*** 将错…

ZeroMQ最全面试题解读(3万字长文)

目录 解释ZeroMQ是什么,它的主要用途是什么? ZeroMQ支持哪些通信模式? 描述一下ZeroMQ中的“消息”和“消息帧” 如何在C++中初始化一个ZeroMQ上下文? 在ZeroMQ中,如何创建一个套接字并将其绑定到特定端口? 解释什么是“管道模式”(Pipe Pattern) 说明如何使用Z…

Spring的三种注入方式的优缺点分析

在 Spring 中,提供了三种依赖注入(也被称之为 "对象注入","属性装配"等)的方式,这篇博客我们来分析一下这三种方式各有哪些优缺点。 一、属性注入 优点 简洁,使用方便。 缺点 ▪ 只…

竞赛选题 卷积神经网络手写字符识别 - 深度学习

文章目录 0 前言1 简介2 LeNet-5 模型的介绍2.1 结构解析2.2 C1层2.3 S2层S2层和C3层连接 2.4 F6与C5层 3 写数字识别算法模型的构建3.1 输入层设计3.2 激活函数的选取3.3 卷积层设计3.4 降采样层3.5 输出层设计 4 网络模型的总体结构5 部分实现代码6 在线手写识别7 最后 0 前言…

C++内存的一些知识点

一、内存分区 在C中,内存主要分为以下几个区域: 代码区:存放函数体的二进制代码。 全局/静态存储区:存放全局变量和静态变量,这些变量在程序的整个运行期间都存在。常量存储区:存放常量,这些值…

学懂C#编程:实用方法——string字符串指定连接符拼接之 string.Join 的详细用法

在C#中,string.Join 方法用于将一个字符串数组或集合中的元素连接成一个单一的字符串,并在每个元素之间插入指定的分隔符。这个方法非常有用,特别是在需要将多个字符串合并成一个字符串时。以下是 string.Join 方法的详细用法: 方…

WPF UI 界面布局 魔术棒 文字笔记识别 技能提升 布局功能扩展与自定义 继承Panel的对象,测量与排列 系列七

应用开发第一步 功能分类:页面上的功能区域划分。。。。需求分析 业务逻辑 数据流 功能模块 UI/UX 编码 测试 发布 功能开发与布局 不用显式的方式设定元素的尺寸 不使用屏幕坐标来指定位置 Grid 功能最强大,布局最灵活的容器…