大型架构中配置中心所涵盖的要素
2017-10-25 16:55
218 查看
无论是何种大型的架构,配置中心的设计无疑最重要的基础设施,它衔接这各个站点和各个模块,涵盖始终。
那么通常而言,会包含以下几点.
分布式站点配置,数据路由配置, 分布式文件服务配置, 第三方组件配置, 数据校验配置, 多语言配置, 接口实现配置, 日志配置, 通讯服务配置
所有站点都会共享一套系统级的站点地址配置,解决了身份信息共享问题后,站点间跳转和相互调用便是畅通无阻。
如图样例:
既然站点是分布式的,当然是可以部署在不同服务器上的。
如果站点直接需要有文件存储的业务往来,也可以记录下站点的额外信息,以备业务需要。
如 IP, 站点文件路径等。
那么数据库路由至少涵盖两方面
读写分离路由配置,所有业务读写分离,完全隔离的业务可以完全拆离数据库。
分库分表路由配置,将不同业务领域拆分到不同的数据库(垂直拆分),或者是同一业务领域拆分到不同的数据库(水平拆分)
这两方面需要根据不同业务进行设计,当然设计是否合理直接决定后续业务扩展的难易。
图片是一种可及时预览资源,调用频繁,被程序大量引用。
在大型架构中,文件的写一定是分布式文件存储,在不同地域设置不同的文件存储节点。
当然这里要解决两个问题:
分布式写, 将文件写入不同的文件服务器节点
文件同步,一种方案是在写入某台机器时可将资源文件分发至其余节点。
读取可以采用CDN方式,随机读或者就近读。
类似数据库路由配置,纵向可以按照业务来划分路由文件的存储,横向用多备份方式来实现CDN读。
比如常见的有以下:
日志组件配置
分布式组建配置
搜索引擎组件配置
消息队列组件配置
其他依赖的组建配置
当然还包含一些功能性配置
支付接口配置
邮件配置
短信配置
验证规则,是可以扩展的(通常根据正则表达式校验)
实体验证逻辑配置,根据不同方法的不同参数,配置好相应的规则,有系统自动校验。
大家都清楚,所有的前端数据都是不安全的,传入后台必经两道坎。
数据格式验证(与业务逻辑无关)
数据的存在性及合规性验证(跟业务逻辑相关)
通过配置可以非常方便的设立第一道坎,第二道坎只能编程实现了。
表单字段
文字提示
动态文字模版,可以定义动态参数。
校验
系统异常
因此,程序的各项功能理论上都是可以通过配置方式来切换不同的实现,这也是面向接口的优势。
因此,在系统的各个业务类
例如 配置文件,可以是任意格式,JSON, XML
数据库也可以是任意的类型, Oracle, MySql, SqlServer
只需要共用一套访问接口,那么就可以适配不同的情形。
在设计良好的架构中,运用成熟的组建,可以将日志存储于
数据库
磁盘文件
第三方接口
三种场景:
异常捕获,在发生一些非预见性异常时,记录下来,方便排查错误的原因。
主动记录业务日志,某些业务特别重要,需要保留操作记录等。
调试程序,某些不方便调试时,通过输出程序运行日志信息判断程序运行状况。
可以灵活的配置,在哪些地方需要记录日志。日志的记录一定是面向切面的方式,这样可以独立于业务。
在任意的方法调用前进行日志记录。
通常自定义的一些分布式功能的实现, 会使用TCP服务
那么所有服务的 协议,IP,端口,超时时间,缓存,大小限制等信息。
通常定义一组标准接口,定义不同的实现来读取不同类型的通讯服务来达到标准化。
那么通常而言,会包含以下几点.
分布式站点配置,数据路由配置, 分布式文件服务配置, 第三方组件配置, 数据校验配置, 多语言配置, 接口实现配置, 日志配置, 通讯服务配置
1. 分布式站点配置
一定是多站点的,而且随着业务的增大,不同业务领域一定会尽量拆分的够细,这样就能均摊并发访问的压力。所有站点都会共享一套系统级的站点地址配置,解决了身份信息共享问题后,站点间跳转和相互调用便是畅通无阻。
如图样例:
既然站点是分布式的,当然是可以部署在不同服务器上的。
如果站点直接需要有文件存储的业务往来,也可以记录下站点的额外信息,以备业务需要。
如 IP, 站点文件路径等。
2. 数据库路由配置
大型架构不仅仅解决入口层的并发访问压力分摊,在数据库层同样也需要有相应的措施。那么数据库路由至少涵盖两方面
读写分离路由配置,所有业务读写分离,完全隔离的业务可以完全拆离数据库。
分库分表路由配置,将不同业务领域拆分到不同的数据库(垂直拆分),或者是同一业务领域拆分到不同的数据库(水平拆分)
这两方面需要根据不同业务进行设计,当然设计是否合理直接决定后续业务扩展的难易。
3. 分布式文件服务配置
文件中有一种特殊类型需要单独处理,那就是'图片'图片是一种可及时预览资源,调用频繁,被程序大量引用。
在大型架构中,文件的写一定是分布式文件存储,在不同地域设置不同的文件存储节点。
当然这里要解决两个问题:
分布式写, 将文件写入不同的文件服务器节点
文件同步,一种方案是在写入某台机器时可将资源文件分发至其余节点。
读取可以采用CDN方式,随机读或者就近读。
类似数据库路由配置,纵向可以按照业务来划分路由文件的存储,横向用多备份方式来实现CDN读。
4. 第三方组件配置
大型架构中,往往会引用的第三方组建配置。比如常见的有以下:
日志组件配置
分布式组建配置
搜索引擎组件配置
消息队列组件配置
其他依赖的组建配置
当然还包含一些功能性配置
支付接口配置
邮件配置
短信配置
5. 数据校验及规则配置
此处的配置涉及两方面。验证规则,是可以扩展的(通常根据正则表达式校验)
实体验证逻辑配置,根据不同方法的不同参数,配置好相应的规则,有系统自动校验。
大家都清楚,所有的前端数据都是不安全的,传入后台必经两道坎。
数据格式验证(与业务逻辑无关)
数据的存在性及合规性验证(跟业务逻辑相关)
通过配置可以非常方便的设立第一道坎,第二道坎只能编程实现了。
6. 多语言配置
系统的所有用到的多语言标签文本,包含以下几种类型:表单字段
文字提示
动态文字模版,可以定义动态参数。
校验
系统异常
7. 接口实现配置
在大型系统中,一定会包含依赖注入,面向接口编程,那么意味着极高的灵活性。因此,程序的各项功能理论上都是可以通过配置方式来切换不同的实现,这也是面向接口的优势。
因此,在系统的各个业务类
例如 配置文件,可以是任意格式,JSON, XML
数据库也可以是任意的类型, Oracle, MySql, SqlServer
只需要共用一套访问接口,那么就可以适配不同的情形。
8. 日志配置
系统的日志一定是极度灵活的。在设计良好的架构中,运用成熟的组建,可以将日志存储于
数据库
磁盘文件
第三方接口
三种场景:
异常捕获,在发生一些非预见性异常时,记录下来,方便排查错误的原因。
主动记录业务日志,某些业务特别重要,需要保留操作记录等。
调试程序,某些不方便调试时,通过输出程序运行日志信息判断程序运行状况。
可以灵活的配置,在哪些地方需要记录日志。日志的记录一定是面向切面的方式,这样可以独立于业务。
在任意的方法调用前进行日志记录。
9. 通讯服务配置
任一系统,一定会存在与其他系统对接交互,无论是通过Webservice方式,还是Socket通讯方式,都一定会牵扯通讯配置。通常自定义的一些分布式功能的实现, 会使用TCP服务
那么所有服务的 协议,IP,端口,超时时间,缓存,大小限制等信息。
通常定义一组标准接口,定义不同的实现来读取不同类型的通讯服务来达到标准化。
相关文章推荐
- spring cloud+dotnet core搭建微服务架构:配置中心
- 大型网站核心架构要素
- 《大型网站技术架构》读书笔记三:大型网站核心架构要素
- 大型网站核心架构要素
- Spring Cloud微服务架构的构建:分布式配置中心(加密解密功能)
- 大型网站技术架构 读书笔记2 大型网站核心架构要素
- 10. 大型网站核心架构要素
- Spring Cloud构建微服务架构(四)分布式配置中心(续)
- 大型网站技术架构(三)--架构核心要素
- Spring Cloud构建微服务架构分布式配置中心
- 自建配置中心现状及架构调整(一)
- Spring Cloud构建微服务架构(四)分布式配置中心(续)
- 《大型网站技术架构》读书笔记三:大型网站核心架构要素
- 配置中心,互联网架构解耦利器
- 大型网站的核心架构要素
- 第一篇、概述3~大型网站核心架构要素
- Spring Cloud微服架构之分布式配置中心(续)
- 【开源】.net 分布式架构之配置中心
- Spring Cloud构建微服务架构(四)分布式配置中心
- 大型网站技术架构读书笔记03—大型网站架构核心要素