博客
关于我
企业集群架构
阅读量:448 次
发布时间:2019-03-06

本文共 4129 字,大约阅读时间需要 13 分钟。

架构名词介绍

1.什么是项目, 类似于手机的app,每一个app都可以算做一个项目。

2.什么是架构, 维护一个项目使用的一组服务器。

3.什么是集群, 为解决某个特定问题将多台计算机组合起来形成的单个系统。

4.什么是高可用, 当一台服务器不可用,另一台服务器自动接管,保证业务不down机。

5.什么是负载均衡,将用户的请求,分摊到多个操作单元上执行,保证服务器的稳定性。

架构如何演变

开车 ---> 各种公路和高速路 ---> 到达目的地 ---> 酒店

保安 ---> 验证身份

迎宾小姐姐 ---> 接待工作

服务员 ---> 满足客人的需求(动态扩容)

后厨厨师 ---> 提供具体的菜品

吧台 ---> 存放烟酒

备菜 ---> 提前准备好(快)

仓库 ---> 存放杂物,或者存放重要的文件或手机

经理 ---> 管理保安、服务员、厨师等

监控 ---> 用来监控服务员,厨师等状态信息,用来时间回溯

酒店后门 ---> emmm... 不可描述

 

 

 

 

架构访问流程-用户视角

1.用户通过浏览器输入oldboyedu.com->回车

2.浏览器会发生一次跳转,分析URL->然后进行DNS解析->获取真实的公网IP地址

3.用户通过tcp的三次握手发起连接->真实的公网IP

4.连接会通过公网->路由器->交换机->抵达前端的硬件防火墙

5.防火墙根据自身访问规则,进行匹配->如果恶意的连接则拒绝->如果是正常的连接则放行

6.防火墙会将连接转发给负载均衡器->查看用户请求的内容->根据内容进行任务下发->下发给web服务器

7.web服务接收请求后会根据请求进行判断 如果是请求图片或者附件->查找存储服务器存储的静态资源 如果请求的网站上的内容->缓存服务器->如果缓存服务器没有->数据库 数据库查询完数据之后会返回数据给web服务器->同时也会返回一份给缓存服务器

8.数据库返回内容->web服务器->负载均衡->用户

架构访问流程-运维视角

1.用户通过公网连接(隧道)VPN服务器,这样方便管理内部主机, 2.自动化配置管理,节省人力成本,便于后期维护。统一环境,标准化 3.自动化监控服务,监控系统的运行状态,事前预警,事后追溯。

总结: 一个项目涵盖了一套架构,一套架构又涵盖了不同的角色(高可用、负载均衡、web集群) 五层架构模型--> 负载均衡 web服务 存储服务 缓存服务 数据库服务(通过tcp连接)

架构如何演变-服务器架构扩展

横向扩展也叫水平扩展,用更多的节点支撑更大量的请求。 如成千上万的蚂蚁完成一项搬运工作 纵向扩展又叫垂直扩展,扩展一个点的能力支撑更大的请求。如蜘蛛侠逼停火车

架构环境规划

外网IP 内网IP 主机名
10.0.0.5 172.16.1.5 lb01
10.0.0.6 172.16.1.6 lb02
10.0.0.7 172.16.1.7 web01
10.0.0.8 172.16.1.8 web02
10.0.0.9 172.16.1.9 web03
10.0.0.31 172.16.1.31 nfs
10.0.0.41 172.16.1.41 backup
10.0.0.51 172.16.1.51 db01
10.0.0.61 172.16.1.61 m01
10.0.0.71 172.16.1.71 zabbix

集群架构系统基础环境准备

  1. 安装全新Centos7系统,配置网卡为eth0及eth1命名模式

    1. 第一块网卡为NAT模式[公网环境],配置的网段为10.0.0.0网段

    2. 第二块网卡为LAN模式[私网环境],配置的网段为172.16.1.0网段

  2. 优化安装好的Centos7

 # 1.配置yum仓库
rm -f /etc/yum.repos.d/* curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

   # 2.安装基础软件包

yum install net-tools vim tree htop iftop gcc gcc-c++ glibc\ iotop lrzsz sl wget unzip telnet nmap nc psmisc \ dos2unix bash-completion bash-completion-extra sysstat \  nfs-utils httpd-tools -y

  # 3.关闭防火墙 firewalld

systemctl disable firewalld systemctl stop firewalld
# 4.关闭 NetworkManager
systemctl disable NetworkManager systemctl stop NetworkManager

 # 5.关闭 selinux

sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config

 # 6.调整单个进程最大能打开文件的数量

echo '* - nofile 65535' >> /etc/security/limits.conf
  1. 基于优化后的虚拟机进行克隆

    1. 连接克隆(需要依赖于母体)

    2. 完整克隆(完完全全的复制一份,占用磁盘空间)

  2. 对新克隆后的主机进行如下操作:

1.修改主机名  hostnamectl set-hostname backup 2.修改IP地址  sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]-- 3.重启服务器  reboot

  创建xshell标签->测试连接服务器是否成功

5. 模板机优化配置---提权oldboy可以sudo (可选配置)
#提权oldboy可以sudo(可选配置)

useradd oldboyecho 123456|passwd --stdin oldboy\cp /etc/sudoers /etc/sudoers.oriecho "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoerstail -1 /etc/sudoersvisudo -c

6. 模板机优化配置---英文字符集

#英文字符集

localectl set-locale LANG="en_US.UTF-8"

7. 模板机优化配置---时间同步

#时间同步

yum install -y ntpdateecho '#time sync by lidao at 2017-03-08' >>/var/spool/cron/rootecho '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/rootcrontab -l

8. 模板机优化配置---加大文件描述

yum install -y lsoflsof -i:22#加大文件描述echo '* - nofile 65536' >>/etc/security/limits.conf tail -1 /etc/security/limits.conf说明:一个服务程序运行起来,会打开相应的文件crond定时任务服务---systemctl start crond --- 打开相应文件/var/spool/cron/root --- 加载打开配置文件/var/log/cron --- 加载打开日志文件

9. 模板机优化配置---安装其他小软件

#安装其他小软件

yum install lrzsz nmap tree dos2unix nc telnet wget lsof ntpdate bash-completion bash-completion-extras -y

10. 模板机优化配置---ssh连接速度慢优化

#ssh连接速度慢优化

sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_configsystemctl restart sshd

 进行模板主机克隆操作

1. 进行模板机快照拍摄

2. 进行虚拟主机克隆
创建链接克隆 (学习环境)
优势:
a 节省物理主机资源
b 克隆主机效率快
劣势:
a 模板主机删除,链接主机也会失效
创建完整克隆 (企业应用)
优势:
a 模板主机删除,克隆主机依然可以使用
劣势:
a 比较消耗物理主机资源
b 克隆主机效率低
3. 克隆后虚拟主机配置
a 修改主机名称
hostnamectl set-hostname backup
b 修改主机地址

sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]grep 41 /etc/sysconfig/network-scripts/ifcfg-eth[01]sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]grep UUID /etc/sysconfig/network-scripts/ifcfg-eth[01]systemctl restart network

 PS: 一台一台顺序启动,进行修改,不要同时启动

补充: 克隆好的主机无法远程连接:

解决方式:
01. 利用ping方式测试
02. 关闭xshell软件重新打开

转载地址:http://stafz.baihongyu.com/

你可能感兴趣的文章
一个简单基于LRU连接检测实现
查看>>
dotnet core开源博客系统XBlog介绍
查看>>
.net core自定义高性能的Web API服务网关
查看>>
BeetleX服务网关之限流和缓存
查看>>
vue-autoui自匹配webapi的UI控件
查看>>
EFCore之SQL扩展组件BeetleX.EFCore.Extension
查看>>
vuejs集成echarts的一些问题
查看>>
BeetleX数据分析中间服务V3
查看>>
Http压力测试工具HttpTest4Net
查看>>
azure存储压测的问题(农码主观意识太强被坑了)
查看>>
Kafka实战-简单示例
查看>>
Hadoop项目实战-用户行为分析之应用概述(二)
查看>>
使用用户自定义控件实现asp.net的的权限管理
查看>>
Nhibernate初学
查看>>
关于提高效率
查看>>
Struts2学习之旅二 tiles布局和权限管理
查看>>
java8-CompleableFuture的使用1
查看>>
面试-PA和XSYX面试小结
查看>>
面试刷题14:介绍一下你工作中用到的设计模式?
查看>>
面试刷题22:CAS和AQS是什么?
查看>>