互联网技术的发展奠定所有产业技术发展提供有利帮助,微服务架构 落地成为当下最流行的解决方案。今天头脑风暴整理了分布式系统的整体,对每个模块做一次了解,帮助刚进入这个行业,或已经进入这个行业找到归属感,对下一个台阶制定计划提供点小小帮助。
废话不多,直接上图~~

分布式系统的概览图,这个图可能你很熟悉,也可能第一次遇到。没关系熟悉的进一步加深印象,没见过请关注收藏以免走丢。
下面逐层了解及常用组件
- 基础设施:几乎靠购买服务提供商提供的基础服务
- DNS
- 域名解析服务,向域名提供商购买域名时提供解析服务
- CDN
- 缓存静态资源,如 js、css、html、小视频。这 部分资源也是整个架构中最贵的资源
- LVS
- 国人研发的四层负载
- Nginx
- 一般做七层负载,也支持四层负载
- 业务架构:中间未做标注,是整个架构的重要部分也是架构的灵魂,周围都是为这部分服务。包括网关层、业务逻辑层、数据访问层
- 网关层:具有流量的统一入口,封装了系统内部架构,具有鉴权认证、协议转换, 路由转发,负载均衡等功能
- 有些大型架构,网关层分流量网关和业务网关,有些二合一提供服务。
- 常用组件
- SpringCloud gateway/zuul
- Openstry
- Kong
- API SIX
- 业务逻辑层:业务逻辑实现,按照领域划分多个微服务,系统解耦单向依赖,只暴露必要信息
- 互联网电商按领域划分服务,分前台和中台主要是为了降本增效,快速业务发展。
- 前台、 中台并不是根风行事。需要根据自身业务,当发展多个业务领域时, 才会对中台做拆分。 通常以淘宝为例:
- 一开始发展TB业务时未做拆分, 后期发展 Tmail时发现中台能力可以共用,减少一些成本开支,于是开始勾勒大中台。业务不断发展过程中,聚划算、盒马生鲜、飞猪等业务袭来时, 逐渐显现出大中台的优势。
- 数据访问层:隔离业务逻辑层和数据持久层直接交互,上篇讲cmdb时已经讲到如何做隔离
- 常用组件
- sharding jdbc/proxy
- ShardingSphere
- mycat
- 存储层:数据持久化,包括常规的关系型数据库、NewSQL数据库、KV存储数据库,对象存储或文件存储数据库
- 关系型数据库
- Mysql
- Oracle
- NewSQL数据库
- TiDB
- NoSQL数据库
- MongoDB
- KV存储数据库
- Redis
- Codis
- 对象文件存储
- FastDFS
- HDFS
- TFS
- DevOps:是解决开发人员与运维人员沟通和协作的一种流程化体系化的规范落地。
- 容器、虚拟机、 物理机多样性,需要通过cmdb在公司集团层面,对配置信息全生命周期管理和配置数据共享。
- 发布平台:解决自动构建、自动打包、自动上传、自动启动等整条链路 服务
- 开源组件
- Jenkins
- 容器平台
- docker
- k8s
- 组件层:分布式架构保障服务可用性提供基础组件和公共组件
- 基础组件
- 远程调用RPC
- dubbo
- SpringCloud
- 注册中心
- Zookeeper
- Eureka
- Nacos
- 配置中心
- zookeeper
- nacos
- apollo
- 消息中心
- rocketmq
- rabbitmq
- activemq
- kafka
- 公共组件
- 分布式调度中心
- xxl-job
- Elastic-job
- SchedulerX
- 搜索中心
- solr
- elastic search
如果这篇文章对你有用,麻烦关注点赞转发,或关注公众号“猿码”了解更多内容,感谢你的支持!