700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 程序员整体架构之基础架构

程序员整体架构之基础架构

时间:2024-02-01 20:16:57

相关推荐

程序员整体架构之基础架构

基础架构

文章目录

基础架构简介开发框架平台基础组件存储层基础服务MIS支撑运维支撑公众号参考

简介

这是我们去围绕业务去打造基础架构部,去做各种基础组件和各种平台的一个过程。包括:平台、基础组件、存储层、基础服务、MIS支撑、运维支撑。

开发框架

首先,开发框架包括:网关、业务逻辑层、数据访问层;网关、业务逻辑层、数据访问层这块是对业务模块的水平拆分,分成三层;当然也会有垂直拆分,因为整个是一个微服务系统,但是从它的角色来说,模块基本上是分成这三种:网关、业务逻辑层、数据访问层;各模块之间肯定会进行调用,用户请求 -> 网关 -> 业务逻辑层 -> 数据访问层 -> DB ;这些调用其实就是 RPC 调用;业务要能跑起来最核心的就是 RPC框架的支持; RPC是由基础架构部维护的;实际上基础架构部的所有工作都是围绕业务去展开的;为什么这么说,先看平台部分;

平台

消息中心MQ 业务RPC调用 提供了同步调用方式,随着业务的发展我们需要更多样的调用方式;最明显的就是 MQ ,所以在合适的时机,引入 MQ ,为业务提供异步调用的方式; 监控平台 Monitor 接下来,模块多了,我们需要提供监控平台,监控线上各个模块、各个机器它的运行情况,访问量多少、有多少超时、多少异常、CPU负载、磁盘负载;这也是为业务平台服务的; 配置中心 再往下,逐步有了配置中心,因为模块多了,靠本地管理配置文件,太麻烦了,而且效率太低了,所以有了配置中心,统一管理线上的配置;这是一个平台化的产品; 日志查询平台 Log 还有,统一的日志分析查询平台,可以分析线上的日志; 请求跟踪平台 Trace 请求跟踪平台 相当于 APM ,智能管理工具;(Application Performance Monitor(APM)应用性能监控,当然也有叫 Application Performance Management ,应用较广的开源方案有:Pinpoint 、SkyWalking 、Zipkin);相对于传统的监控软件(Zabbix等)的区别,APM 更关注在对于系统内部执行、系统间调用的性能瓶颈分析,这样更有利于定位到问题的具体原因,而不仅仅像传统监控软件一样只提供一些零散的监控点和指标,就算告警了也不知道问题是出在哪里。 任务调度平台 Job 线上有很多离线任务,也是做一些实际业务功能的,只是它不扛线上流量,它做一些数据相关的事; 这些都是 围绕着业务,为业务提供服务的;(都是为业务服务的)服务管理平台 Manager 到后面,我们对服务治理有要求了,于是有了服务管理平台;实现线上的各种容错、流量控制等;

这样通过平台组件,可以很好的支撑了业务。

基础组件

到后面,我们还会有 分布式事务中间件(Transation)、数据库中间件(JDBC);

都是为了提供给业务,让业务能够更快速的完成开发;

让业务只关注业务逻辑、开发功能的部分,为业务提供很多好的功能组件。

存储层

刚说到,开发框架的 数据访问层 做什么事呢:代理存储服务的访问;固化存储 MySQL 早期只需要 关系型数据库 Mysql 就够了; 缓存系统 Codis 逐渐业务越来越多样,对存储的需求也越来越多样化,比如 缓存 Redis;单机的 Redis 如果不够了,就有 Redis 的分布式解决方案 Codis ; 固化KV存储 KV 随着数据模型的扩展,不一定非要用关系型数据库,可以是 KV 存储;固名思义即按键值对的方式存储,这样数据存起来更简单,效率更高; NewSQL 数据库 TiDB 我们在用 关系型数据库 MySQL ,都遇到过 分库分表 ,单机搞不定了,没办法只能 分表或者分库;这样又有新的问题:怎么分、分完后怎么路由、可能还会有分布式事务等;很费劲;如果不想分表,又想扩展性比较好,可以用 KV,但KV的问题在于,它不支持 Mysql 这种SQL查询;因此就有了 NewSQL ;简单可以理解为 关系型数据库 和 KV存储 两者加在一起了,存储量可以横向扩展,还支持 SQL 查询;这样既可以当 Mysql 用,还不需要做分库分表;但它不能解决所有场景,只能选择适用的场景去使用。

这块我们就将存储体系建立好了

平台 + 基础组件 这两块建好,基础组件和中间件就建立好了;基础服务这部分不是重点;

基础服务

即时通讯服务 IM推送服务 PUSH短域名服务 Tinyurl 域名太长很不友好,先把长域名转成短域名,服务做一个映射;有请求过来,将其重定向到原始的域名上;

这些是一些基础服务,包括 IP 定位、坐标定位等都可以在这一块。

这些功能的部分都有了,接下来还会有 单点登录等。

MIS支撑

用户认证系统 SSO 有这么多平台,不可能访问每一个都需要登录一次,但每个平台肯定都是有用户权限的;这样就需要一个 登录系统,登录一个,其它的都可以使用; 权限管理系统 Auth

这部分是为我们的系统服务

一部分是为我们的系统服务,一部分是为我们的业务服务;这样整个系统建立起来,相当于一个公司的一个完整技术架构;有什么东西,基本都在这些里面涵盖到了

这样业务就会相对轻松一些,它只负责把自己的事做好就可以了;

平台、存储层、基础组件、基础服务、MIS支持,以及 运维支撑,这些谁来做?这些都可以属于是基础架构的工作。

运维支撑

资产管理平台 CMDB发布系统 Publish工单系统 Order虚拟化平台 Docker

公众号

参考

奈学教育 Java 架构 P7 课程 孙玄 陈东

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。