综合架构图:

综合架构详解:

详细总结:

公司第一大环境(生产环境):

1.整个web的访问过程其实就是数据流怎么处理的。

2.访问请求分为:动态 静态请求

3.代理:分为 反向代理(reporxy) 和 集群代理 一般公司将反向代理服务器放到最外边。

4.消息列队:同步处理改为异步处理

5.CDN服务器: 阿里云或者cdn处理静态数据流。一般使用cdn便宜(智能dns) CDN公司:蓝汛,七牛 按照G流量计算费用, 存放缓存数据,cdn上边有机房,放存储数据。静态数据靠外放置。 静态数据不能进到企业内部,因为访问的流量太多,所以都交给CDN,或者放到阿里云。

6.缓存数据: 将访问请求缓存到缓存层的时候可以用网卡捆绑bond(如以太网通道) 10000Gx4

7.LVS 四层代理,放到最外边,没有任何流量产生,但并发可以达到十几万。数据量上G nginx和LVS一起用

8.web服务器: apache/nginx/tengine tengine开发nginx的,淘宝在用。配置与nginx通用。兼容nginx源代码。

9.web页面存储服务器: NFS只会用来存放web的index的页面,做web页面的数据同步,不会用作存储服务器。 FastDFS 处理静态数据,图片等。一端要连接数据库,并且将处理后的图片数据吐到缓存层上。

10.消息列队: (1)消息列对用在哪 消息列队放在readis和集群之间的。 消息列队服务器最少三台,把同步数据变为异步数据,减少对后端服务器的压力。异步解耦。 docker半解耦状态,KVM解耦状态。

***** new=syn ESTABLISHED 同协议之间的,没有消息列队的时候。 RELATED 由上一个关联包回复的随机包。

(2)为什么消息列队和web服务器不用tcp协议? 因为直接使用tcp连接式不可以的,端口不够用 随机端口号大于1024,小于65535 小于1024,大于32768 消息列队和web服务器建立tcp,

(3)消息列队算法: rabbitMQ/zeroMQ/kafka

(4)什么是消息列队: 消息列队可以提高访问量, 首先访问进来的时候,先进会话层,建立会话,

(5)中间件层 中间件层是用来判断集群干嘛的一个层,是手机端还是页面端

11.数据库集群: (1)主数据架构 双主数据库,也叫互为主从数据库,两个数据库写数据,一个数据库最大连接是10000,小公司用的多,数据库都是异步复制数据.

(2)面试问题: 主从数据库不同步怎么办? 一个主库可以复制8个从库,看带宽,

(3) 数据库复制的分类 异步复制 半同步复制 同步复制,强制一致性复制,NDB数据库,在内存里。

(4)数据库的写入之前的动作 lnnoDB引擎——事务 在数据库写入之前先有事务,在内存里完成,双方先建立事务,然后确定后,才往数据库写。保证数据库的完整性。

(5)双主复制存在的问题: 主键冲突,自增长(auto-increment),解决主键冲突问题,还可以判断数据是那个服务器写进来的。

(6)单循环数据库 注意:最多3台, 3台服务器互为主服务器,单循环出现问题就只剩一个完成数据库,主库不可以单独运行。

(7)数据库访问量大的时候的解决方法 数据访问量大的时候,要切表切库,就是将访问量的大的库单独迁移出去,降低其他数据库的访问压力。 切表,就是在表里的数据最多的时候,可以将表里的数据分开存放在不同的数据库里。分开访问量。

(8)MHA主从切换:解决主数据库出现故障问题 (9)galera强一致性,解决异步复制的问题,异步复制不适合数据库

注意:写入的量小于读取的量,主从数据库的比例1:8,一主拖8从。

12.oneproxy:  主数据库的代理层使用,支付宝用的,可以切表切库,库表数据随便迁移,支付宝开源出来的,平民软件。

13.主从数据库集群的调度方法: 主库用RR调度, 使用oneproxy 从库用LC调度。 使用haproxy:

14.mysql数据库的分支: mysql最新版5.7 (1)源作者写的:marriDB,与MySQL几乎一样,更新速度快。

(2)优化版的mysql(percona数据库 ) 是源数据的15倍左右,和源数据(mysql)库版本一样,晚一周发布,优化的和MySQL数据库,是mysql的商业软件。www.percona.com xtrabackup(热备数据库) 如果面试问到数据的优化,就可以说我们用的是percona,自动优化,是普通数据库的17倍。

15.数据库的消息列表: 事务要有缓存,就是消息列队,可以保障数据的进出顺序,

16.缓存数据库: redis/或者memcache/持久化数据 数据库的缓存层,需要把一部分数据放在缓存层,加快读写的速度。 也叫动态数据缓存层。 查询方法叫遍历,从第一条一直读到最后一条。

思路:访问请求到了中间件层的时候,用来判断下面的集群干嘛的,如果读数据库的时候,则先读缓存层,如果没有的话,在进消息列队,然后写入或者读取数据,对redis的读写是由中间件来完成的。

17.注意:热备和冷备都在从数据库上做。

注意:同步是从库集群的某一台从库做备份

注意:消息列对,缓存层不能宕机

18.存储服务器: 从从库里将数据往外存, 物理层:raid10 iscsi进行挂载,将原来所有库数据挂载出来,保证存储,将数据放到Hbase或者Spark里

19.证书服务器: 运行应用层的时候,要使用https,使用CA服务器。

注意:数据是走缓存路线出去的。

20.自动化三大服务: 系统自动化 PXE/kickstart 程序自动化 ansible(100台)/saltstack(部署大量的) puppet(不用) 代码自动化

以上是生产环境: ——————————————————————

公司的第二大环境:(开发测试环境): 代码仓库,开发人员存放代码的地方。maven将上传的代码打包,然后将代码传通过jenkins-webhook部署到k8s上,然后通过k8s对docker—swarm进行部署,根据需求开多少台docker,这叫可持续化集成

公司第三大环境(辅助类): (1)监控服务器: web相关服务器的监控,

zabbix:主要监控服务器的吞吐量,

ngios:可以监控系统的运行,网络流量,可以监控windows,linux等。

cacti:snmp网络设备的硬件,服务器的硬件。

数据库相关的监控, lepus(天兔)

(2)日志服务器: 单个文件最大不超过4G,所有将大文件的日志做数据切割,然后通过 ELK日志分析工具,进行分析。

(3)认证服务器: LDAP服务器统一管理用户。 系统用户,监控用户,公司的通过VPN拨号的用户,所以要进行认证。

总结: 一共三部分访问入口: 外部访问。代理服务器,防火墙只开放80端口,DNS只解析反向代理服务器 运维访问,在ssh+随机码可以进入,通过vpn服务器,用户认证,可以到zabbix和lepus查看,可以通过飞信微信报警。 开发访问,可以通过测试环境的防火墙进入测试环境,进行测试操作,然后完成测试的架构进行上架,docker不可以直接放数据库,所以目前只用在测试环境。

******************************* ******************************* 自己总结:

一.生产环境

1.客户端服务器: 2.防火墙:华为,思科 3.反向代理服务器: nginx动静分离,将静态的数据请求给CDN或者阿里云,动态的留下里给公司内部 4.客户端通过DNS服务器解析后对web服务进行访问,然后到了反向代理,反向代理将静态数据交给CDN,CDN服务器通过对IP地址的判断,然后告知里客户端最近的CDN缓存服务器,然后由缓存服务器去回复客户端,如果缓存没有数据,则北京的CDN后端的真实服务器就会将数据缓存到CDN缓存服务器,然后告知客户端。

添加:【 百度,全squid服务架构。

一台varnish可以抗住1G的dds攻击

智能DNS溯源:整个CDN的流向过程,判断原来IP地址离我更近的过程。

公司网站优化的办法: 将静态数据给CDN或者阿里云

如果是小公司,公司最外表放一台反向代理服务器就可以了 】

5.LVS和nginx区别: LVS四层代理 放在最外边,因为他们中间不会产生任何流量,使用的arp转向(4种arp),改变了arp的解析方向,将ip地址解析到了后边的七层代理的集群上,LVS单并发达到十几万, nginx七层代理

6.会话池服务器(redis/memcache) redis——非关系型数据库 mysql——关系型数据库 登陆以后,首先会连接会话池,用来验证登陆用户密码的。

7.消息列队,用在数据库集群代理层中间,有时候也用在web集群中间,放到缓存集群和web之间最少3台构成,目的是把同步流量变为异步流量,还可以直接让消息列队和web服务器建立tcp连接,这样就不会出现由于大量的访问进来,没有消息列队,tcp的端口不够,或者服务器压力太大的故障。 会话池和消息列队给访问建立消息通道,提高访问量和在不同页面的重复输入账户的情况。 * 一台nginx最多可以代理10台服务器。

8.缓存层(cache) 静态数据缓存层 squid(存在硬盘里,速度很慢) varnish(内存里)* 缓存数据从web集群上来。 如果客户的访问请求在缓存层有,则不会往下走了,直接回复给客户端。 反之,继续往下走

9.web服务层,(apache/nginx/tengine)

10.web层上的存储服务器 NFS服务器,用来存放静态页面的index文件,做web页面的数据同步,不可用于存储服务器。 FastDFS,处理静态数据,图片等处理,让所有数据都注册到数据库里,所以另外一端连接到数据库,然后将处理好的数据吐到缓存层,提供高速的访问,静态数据就处理完成了。

11.CA服务器 运行应用层,做web页面的时候,要做https,要进行认证,可用可不用,也可以在每台web服务器上添加。

12.数据库的消息列队集群 数据的连接需要事务,事务要有缓存,就是消息列队,可以保障数据的进出顺序,

13.oneproxy 使用rr(轮询)调度 主数据库的代理层使用,支付宝用的,只要使用oneproxy,可以切表切库,库表数据随便迁移,支付宝开源出来的,平民软件。

14.Haproxy 从库集群的代理,使用LC调度(最小连接数)

15.数据库端: 主数据***** (1)双主数据库: 数据库所有数据都是异步处理, 写入数据库前需要有事务,事务保证数据的完整性,数据库先在内存里完成的,然后在往硬盘上写。 双主数据库问题: 主键冲突,通过auto-increment自增长来解决。 (2)单循环数据库 三个主数据库互为主,不允许超过三个。 单循环数据库问题:主从切换问题,当主数据库坏掉的话,使用MHA可以即使把从数据库切换过来,进行使用。

从数据库***** 从库使用的是LC,最小连接数

16.数据库的缓存层(redis) 关系型数据库的上边要套一层非关系型数据库作为缓存,也就是redis或者是memcache,目的是将一部分数据缓存到数据库的缓存层,数据是缓存在内存里,可以加快读取数据的速度,关系型数据库慢,非关系型数据库快,硬盘慢,内存快。

读写redis,是由中间件完成的,因为中间件来判断集群是干啥的,所以当数据来的时候首先去赵redis,如果命中,则回复给客户端,如果为命中则继续往下走,找到数据库的消息列队,去访问数据库,然后数据库将数据缓存给redis,然后在回复给客户端。

17.存储服务器, 物理安全:raid10 iscsi挂载数据库上,将原来所有库数据挂载出来,保证存储,将数据放到Hbase或者Spark里

18.弹性web consul+nginx consul网络服务发现协议 用来放置会话层和缓存层出现问题,根据流量的大小,来承接nginx的流量

注意:数据是走缓存一步一步出去的,并不是怎么进来怎么出去的。

19.自动化服务器 系统自动化PXE/kickstart 程序自动化ansible(100台)/saltstack(部署大量)/puppet/(麻烦,不建议用) 代码自动化(用代码部署,关机部署然后开机)

**************************************************************** 二.测试环境:

1.开发人员将代码传到代码库, svn服务器,控制代码的版本的,开发人员存代码的地方,谁是最后一个完成的,服务器会有一个判定。 maven是将上传的代码打包 2.触法jenkins,部署代码自动化的,

3.然后将代码部署到K8S或者swarm上,K8S用来部署docker环境的 整个叫可持续化集成。

三.辅助类 1.web相关的服务器 监控:zabbix监控web页面和吞吐量, 2.数据库的监控 lepus(天兔)阿里的数据空监控 3.其他监控 ngios和cacti ngios可以监控windows cacti使用snmp,可以监控网络设备的硬件

4.日志切割: 单个文件不能超过4G ,所以在使用数据的时候要进行切割,然后在拿出来通过日志分心工具进行分析。

5.认证服务器 LDAP服务器,统一管理用户账户,和windows的域控一样。

6.不同的访问 客户: 正面只开80端口,客户端的DNS只能解析到反向代理。

运维: 通过随机码,拨入VPN,然后进入web的监控,和数据库的监控,然后查看日志。

开发: 可以通过HA-proxy可以进行测试环境。

转载于:https://www.cnblogs.com/Leonardo-li/p/8742896.html

中型公司网络架构拓扑与详解相关推荐

  1. 《网络架构系列2-Http详解》

    不诗意的女程序媛不是好厨师~ 转载请注明出处,From李诗雨-[https://blog.csdn.net/cjm2484836553/article/details/104136511] <网 ...

  2. Windows 网络服务架构系列课程详解(六) ---利用NLB群集实现WEB服务器的可靠性...

    Windows 网络服务架构系列课程详解(六) -----利用NLB群集实现WEB服务器的可靠性   实验背景: 在大型网络环境中存在这样一种情景,公司内部的FTP服务器出现故障或脱机了,而且不能快速 ...

  3. Windows 网络服务架构系列课程详解(一) ----DHCP服务器的搭建与配置

    Windows 网络服务架构系列课程详解(一) ---------DHCP服务器的搭建与配置   实验背景: 企业网络环境中在没有配置DHCP服务器时,经常会遇到这样的情况,用户不懂怎么去配置IP地址 ...

  4. 2015年系统架构师考试题详解

    原文地址为: 2015年系统架构师考试题详解 考试科目一:综合知识 某航空公司机票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,-,n)管理机票销售.假设Tj(j=1,2,-, ...

  5. 2011年系统架构师考试题详解

    原文地址为: 2011年系统架构师考试题详解 考试科目一:综合知识 操作系统为用户提供了两类接口:操作一级和程序控制一级的接口,以下不属于操作一级的接口是(1). (1)A.操作控制命令 B.系统调用 ...

  6. 2010年系统架构师考试题详解

    原文地址为: 2010年系统架构师考试题详解 考试科目一:综合知识 采用微内核结构的操作系统提高了系统的灵活性和可扩展性,(1) (1)A.并增强了系统的可靠性和可移植性,可运行于分布式系统中 B.并 ...

  7. Java开源生鲜电商平台-Java分布式以及负载均衡架构与设计详解(源码可下载)

    Java开源生鲜电商平台-Java分布式以及负载均衡架构与设计详解(源码可下载) 说明:主要是针对一些中大型的项目需要进行分布式以及负载均衡的架构提一些思路与建议. 面对大量用户访问.高并发请求,海量 ...

  8. 视频监控系统网络时间同步(NTP网络授时)问题详解

    视频监控系统网络时间同步(NTP网络授时)问题详解 视频监控系统网络时间同步(NTP网络授时)问题详解 本文由安徽京准公司提供,转载需授权@@ 视频监控系统是指综合应用视音频监控.通信.计算机网络等技 ...

  9. 大型企业网络配置系列课程详解(五) --Frame-Relay配置与相关概念的理解

    大型企业网络配置系列课程详解(五)             --Frame-Relay配置与相关概念的理解   实验原理: Frame-Relay(帧中继)简称FR,是国际电信联盟通信标准化组(ITU ...

最新文章

  1. 百例1-10(一到三章)总结
  2. 在showModalDialog和showModelessDialog中提交form时不弹出新窗口
  3. 【dfs】通行证(jzoj 2013)
  4. 学姐百度实习面经(轻松拿offer)
  5. 一分钟理解三次握手和四次挥手
  6. Markdown入门指导
  7. 转:QQ登录时错误码说明及解决办法
  8. java IO包装流如何关闭
  9. C语言第七讲,函数入门.
  10. Style transfer系列论文之——Image Style Transfer Using Convolutional Neural Networks,CVPR, 2016
  11. [Win32]创建模态窗口
  12. c语言数组指针题库,C语言 数组指针练习题.doc
  13. AES攻击方法 :差分密码分析 boomerang attack飞去来器攻击
  14. ArcGIS桌面构建三维地质体模型
  15. 线性约束最优化问题的Frank-Wolfe方法
  16. 维多利亚计算机专业怎么样,维多利亚大学计算机科学专业 学生要学哪些内容...
  17. tushare获取沪深300指数历史_tushare正确爬取 指数数据
  18. Android官方SDK下载(含API文档)
  19. 基于遗传算法的二进制图像重建附Matlab代码
  20. 华南理工章熙春:移动应用推动数字校园

热门文章

  1. 图形学高被引论文赏析系列1:Geometry Images
  2. unicloud普通云函数调用公共云函数的坑
  3. uniCloud杂文
  4. 希尔伯特之梦,以及梦的破灭
  5. 如何判断n(n-1)/2的奇偶性【数学问题】
  6. 不会找对象?教你两招再试试【适用于Java攻城狮】
  7. IPFS的Python API参考手册
  8. 好口才是练出来的:练胆量、练技巧、练修养
  9. [CSR]在CSR8675的ADK调试问题总结
  10. 托福高频真词List11 // 附托福TPO阅读真题