分布式架构的演进过程,docker面试题汇总
节点
节点是指一个可以独立按照分布式协议完成一组逻辑的程序个体。在具体的项目中,一个节点表示的是一个操作系统上的进程。
副本机制
副本指的是在分布式系统中为数据或服务提供冗余。
数据副本指在不同的节点上持久化同一份数据,当出现某一个节点的数据丢失时,可以从副本读取数据。数据副本是分布式系统中结果数据丢失的唯一手段。
服务副本表示的是多个节点提供相同的服务,通过主从关系来实现服务的高可用方案。
**中间件
**
中间件位与操作系统提供的服务之外,又不属于应用,它是位与应用和系统层之间为开发者方便的处理通信,输入和输出的一类软件,能够让用户关心自己应用的一部分。
**架构的发展过程
**
一个成熟的大型网站系统架构并不是一开始就设计的非常完美的,也不是一开始就具备高性能,高可用,安全性等特性,而是随着用户量的增加,业务功能的扩展慢慢完善演变过来的。在这个发展过程中,开发模式,技术架构等都会发生非常大的变化。
假如系统具备一下功能:
用户模块:用户注册和管理
商品模块:商品展示和管理
交易模块:创建交易及支付结算
** 阶段一:单应用架构**
系统的初级都是应用和数据库都放在一台服务器上。
阶段二:应用服务器和数据库服务器分离
随着网站的用户量增大,流量增大,对应用服务器和数据库服务器单独的部署机器,这样可以增加系统的性能,提高访问的效率,提高单机的负载能力和容灾的能力。
阶段三:应用服务器集群-应用服务器负载告警
随着访问量和流量的增加,假设数据库没有遇到瓶颈,对应用服务器集群来对请求进行分流,提高程序的性能。存在的问题:用户的请求由谁来转发,session如何来管理的问题。
阶段四:数据库压力变大-数据库读写分离
读写分离的话,这样以后的请求,查询的请求就可以去从库里面读数据,写的数据可以到主库中了,但是会带来几个问题:
1.主从的数据库之间的数据同步:可以使用mysql自带的master-slave方式实现主从复制
2.对应的数据源的选择:采用第三方数据库中间件,例如:mycat
阶段五:使用搜索引擎缓解读库的压力
数据库做读库的话,常常对模糊查询的性能不是很好,特别是对于大型的互联网公司来说,想搜索的模块就比较核心了,这是可以使用搜索引擎了,虽然可以大幅度的提高查询的速度,但是同时也会带来一些问题比如索引的构建。
阶段六:引入缓存机制缓解数据库的压力
对一些热点的数据,可以使用redis,memcache来作为应用层的缓存;另外在某些场景下,可以使用mongodb来替代关系型数据库来存储。
阶段七:数据库的水平/垂直拆分
垂直拆分:把数据库中不同的业务数据拆分到不同的数据库中。
水平拆分:把同一个表中的数据拆分到两个甚至更多的数据库中,水平拆分的原因是某些业务量数据量大的已经达到了单个数据库的瓶颈,这时候可以采取将表拆分到多个数据库中。
资料分享
这是我从某优质机构弄来的一些资料,内容我认为确实称得上优质二字,如需领取,请点赞这篇文章,关注我然后点击这里即可免费领取
首先分享一份学习大纲,内容较多,涵盖了互联网行业所有的流行以及核心技术,以截图形式分享:
(亿级流量性能调优实战+一线大厂分布式实战+架构师筑基必备技能+设计思想开源框架解读+性能直线提升架构技术+高效存储让项目性能起飞+分布式扩展到微服务架构…实在是太多了)
其次分享一些技术知识,以截图形式分享一部分:
Tomcat架构解析:
算法训练+高分宝典:
Spring Cloud+Docker微服务实战:
最后分享一波面试资料:
切莫死记硬背,小心面试官直接让你出门右拐
1000道互联网Java面试题:
Java高级架构面试知识整理:
COh6-1628435937739)]
最后分享一波面试资料:
切莫死记硬背,小心面试官直接让你出门右拐
1000道互联网Java面试题:
[外链图片转存中…(img-EXAgho4L-1628435937740)]
Java高级架构面试知识整理:
[外链图片转存中…(img-U49sfOto-1628435937741)]
分布式架构的演进过程,docker面试题汇总相关推荐
- 架构设计(2)---分布式架构的演进过程
分布式架构的演进过程 一.分布式架构的发展历史 1946年,世界上第一台电子计算机在美国的宾夕法尼亚大学诞生,它的名字是:ENICAC ,这台计算机的体重比较大,计算速度也不快,但是而代表了计算机时代 ...
- 图解分布式架构的演进过程
一.什么是分布式架构 分布式系统(distributed system) 是建立在网络之上的软件系统. 内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统. 透明性:是指每一个数据库分布 ...
- 图解分布式架构的演进过程!
一.什么是分布式架构 分布式系统(distributed system) 是建立在网络之上的软件系统. 内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统. 透明性:是指每一个数据库分布 ...
- 【本人秃顶程序员】图解分布式架构的演进过程
←←←←←←←←←←←← 快!点关注!!! 一.什么是分布式架构 分布式系统(distributed system) 是建立在网络之上的软件系统. 内聚性: 是指每一个数据库分布节点高度自治,有本地的 ...
- 分布式架构——分布式架构的演进过程(下)
上一篇博客简单介绍了分布式的发展历史和基本概念 本篇博客则将以电商系统为例,详细介绍分布式发展的过程 假设我们的电商系统中只有三个模块:用户模块,交易模块和商品模块 阶段一:单应用架构 在网站创建初期 ...
- 分布式架构的演进过程
一.分布式架构的发展历史 1946年,世界上第一台电子计算机在美国的宾夕法尼亚大学诞生,它的名字是:ENICAC ,这台计算机的体重比较大,计算速度也不快,但是而代表了计算机时代的到来,再以后的互联网 ...
- 从应用到平台,云服务架构的演进过程
声明:本文为<从程序员>8月期原创投稿文章,未经许可禁止任何形式的转载. 作者:秦鹏,MaxLeap服务与架构部负责人,负责公司云平台.云应用的后端研发和维护工作.多年分布式.高并发场景的 ...
- 从应用到平台 – 云服务架构的演进过程
麦穗技术 屌丝程序员的自我对白 最新 Python 头条资讯 技术文章 LNMP 前端 设计模式 视频 软件 从应用到平台 – 云服务架构的演进过程 目录头条资讯2016年7月12日 转载自:http ...
- 图解分布式架构的演进
转载自 图解分布式架构的演进 一.什么是分布式架构 分布式系统(distributed system) 是建立在网络之上的软件系统. 内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统. ...
最新文章
- Python 笔试集:什么时候 i = i + 1 并不等于 i += 1?
- MySQL replace into 的坑以及insert相关操作
- Maven的这三个用法你一定要会!
- [ACM_几何] Wall
- 读写锁的由奢入俭“易”
- iOS 编写高质量Objective-C代码(六)
- java中的内部类详解
- android 设备名称_如何更改您的Android TV的设备名称
- AndroidStudio安卓原生开发_Activity的启动模式部分singleTop启动模式和singleTask启动模式---Android原生开发工作笔记87
- Linux下PHP开启Oracle支持(oci8)
- 关于RadUpload上传问题总结
- mysql索引红黑联盟_MySQL的索引
- Java获取网络视频封面图片
- matlab设计光栅,光栅原理及MATLAB仿真.doc
- MySQL —— 查询升序和降序
- robots.txt文件信息泄漏
- sys.stdout.write()用法
- java pdf 图片_java实现PDF转图片的方法
- 带你了解什么是抽象类,抽象类不能够被实例化为什么还有构造方法?
- oracle 数据库表的字段类型修改为clob类型报错及解决方法
热门文章
- oracle 12c权限设置,如何设置 Oracle 数据库权限
- c语言编程计算平分,用C语言编程平均分数
- python 读入图像文件和输出图像文件
- Python还值得学吗?
- 腾讯员工每年写3万行代码;马斯克承认利用摄像头监视车主;Chrome 89上线实时字幕 | 极客头条...
- 25 岁的 JavaScript 都经历了什么?
- 还在 Bug 不断?不妨试试这 2 个装X技巧
- 倒计时2天 | AI开发者大会完整议程揭秘!与百名大咖玩转人工智能
- Rust 让人奔溃的那些特性!
- AWS 专家教你快速使用 Spring Boot 和 DJL!