互联网网站架构升级----分布式环境的构建

news/2024/5/20 10:08:31/文章来源:https://blog.csdn.net/ccecwg/article/details/38271273

  随着网络流量爆发式增长,几百人维护一个项目将是一个可怕的噩梦,业务拆分势在必行。拆分的业务形成一个个独立的系统,系统间的协调又变成了一个棘手的问题,所以维护这些系统间协调关系的分布式环境组件将发挥至关重要的作用。

 

  由于拆分后的系统部署于不同机器的不同集群之中,系统间的协作要靠通信来解决,所以分布式环境组件必须解决数据流的问题。根据不同的场景,数据流又分构建于远程调用框架(如RMI、Hessian、ICE、JNDI实现等)之上的即时调用数据流,构建于消息中间件之上的异步消息(持久或非持久)数据流,构建于数据拆分组件(分库分表、读写分离等)之上的存储数据流,构建于集群系统控制(集群动态、配置推送,如PubSubHubBub)的集群协调数据流,以及构建于监控系统之上的日志及控制数据流。在这些数据流的传输过程中需要有负载均衡和容错的支持,这些数据流总的来说又分为业务数据流和控制数据流,业务数据流传输业务数据,控制数据流可以将一个个小的集群系统连接成一个大的集群系统,并使这个集群系统的运行状态直观的展示于眼前,同时还可以向这个集群系统发送控制指令直接干预它。

 

 数据流向图

 

 

 分布式环境总览

 

通信服务框架提供系统间即时的同步和异步调用,需要具备负载均衡和容错的机制,解决的是一个业务集群调用另一个业务集群的问题,根据不同的集群方案,业务集群内部各台机器内部的状态又分为可共享和不可共享两种,一般不建议集群内部直接通过通信来共享内部状态,最好通过集中式缓存或DB来共享状态。

 

消息中间件提供异步的持久和非持久消息的发布和订阅,持久消息理论上应当具备绝对的可靠性。此系统解决的是将网站业务流程中非核心的业务流程剥离出来,使用异步消息的形式将业务解耦,提高主业务流程的响应速度,同时解决的另一个问题是通过可靠的存储和传输,保证多个业务系统数据的最终一致。

 

分布式数据层提供分库分表、读写分离、Sql监控以及容灾容错的功能。这个组件不仅仅可以解决数据的拆分、读写分离问题,还可以解决数据的多写,多个Slave读取的负载均衡及容错,多机房的容灾,数据库异常的告警等多种功能,如果单独部署服务的话还可以控制数据库连接数。

 

中转枢纽提供服务的发布和调用关系以及消息的发布和订阅关系,连接通信服务框架和消息中间件的各个客户端和服务端,感知一个个业务集群中的每台机器及服务,组成一个大的集群,协调这个大集群中服务的对应关系。如果这个枢纽对业务开放的话还可以推送业务配置信息。

 

监控中心提供对前面四个组件各种数据的收集和分析,实时展示整个大集群各个集群和服务目前的运行状况和相互间的协调关系,并进行各种横向和纵向的对比为决策提供依据,并可以向集群内的机器或服务发出控制指令,直接干预集群间的协调关系。如果对业务开放的话还可以监控业务数据和进行业务控制干预。

 

先写这么多了,后续将会写业务和数据拆分方面的,以及通信框架、消息中间件、分布式数据层、中转枢纽和监控中心的具体实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_848737.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scrapy-redis案例(一)爬取中国红娘相亲网站

前言:本案例将分为三篇。 第一篇,使用scrapy框架来实现爬取中国红娘相亲网站。 第二篇,使用scrapy-redis 简单的方式爬取中国红娘相亲网站。(使用redis存储数据,请求具有持续性,但不具备分布式)…

scrapy-redis案例(二)爬取中国红娘相亲网站

前言:本案例将分为三篇。 第一篇,使用scrapy框架来实现爬取中国红娘相亲网站。 第二篇,使用scrapy-redis 简单的方式爬取中国红娘相亲网站。(使用redis存储数据,请求具有持续性,但不具备分布式)…

scrapy-redis案例(三)爬取中国红娘相亲网站

前言:本案例将分为三篇。 第一篇,使用scrapy框架来实现爬取中国红娘相亲网站。 第二篇,使用scrapy-redis 简单的方式爬取中国红娘相亲网站。(使用redis存储数据,请求具有持续性,但不具备分布式)…

python-scrapy模拟登陆网站--登陆青果教务管理系统(一)

前言: 第一篇,分析青果教务管理系统登陆模块,理清思路 第二篇,使用常规的python常用库 requests来实现模拟登陆 第三篇,使用scrapy来实现模拟登陆 目的在于了解模拟登陆网站的要点和方法,了解http请求的一些…

python-scrapy模拟登陆网站--登陆青果教务管理系统(二)

前言: 第一篇,分析青果教务管理系统登陆模块,理清思路 第二篇,使用常规的python常用库 requests来实现模拟登陆 第三篇,使用scrapy来实现模拟登陆 目的在于了解模拟登陆网站的要点和方法,了解http请求的一些…

python-scrapy模拟登陆网站--登陆青果教务管理系统(三)

前言: 第一篇,分析青果教务管理系统登陆模块,理清思路 第二篇,使用常规的python常用库 requests来实现模拟登陆 第三篇,使用scrapy来实现模拟登陆 目的在于了解模拟登陆网站的要点和方法,了解http请求的一些…

【问底】徐汉彬:大规模网站架构的缓存机制和几何分形学

【问底】徐汉彬:大规模网站架构的缓存机制和几何分形学 发表于18小时前| 2273次阅读| 来源CSDN| 14 条评论| 作者徐汉彬问底CDN缓存徐汉彬allowtransparency"true" frameborder"0" scrolling"no" src"http://hits.sinajs.cn/A1/…

在IIS上部署PHP网站

1、启动iis服务器,打开IIS服务器 打开IIS服务器,点击网站,右击“添加网站” 2、创建网站 点击“添加网站”后,进入页面填写网站相关内容,如:网站名称、物理路径(网站所在文件夹),点击“确定”创建成功 3、…

借助花生壳把内网网站映射给外网。(内网穿透/路由器端口映射)、外网控制内网...

其实这个东西几年前我就弄过,但是当时心智不成熟,没学会怎么玩耍,今天玩了一把也没啥的, 1.搭建网站 假设内网电脑是192.168.100.9 访问Http://192.168.100.9能打开网站,这样就ok了,不能用的自己百度. 2. 端口映射 貌似…

多个端口指定多个目录。花生壳多个域名多个网站

配置php网站 打开httpd.conf Listen 88 Listen 8888 打开vhost.conf Listen 80NameVirtualHost *:80 <VirtualHost *:88> ServerName localhost DocumentRoot "D:/phpStudy/WWW"<Directory "D:/phpStudy/WWW">Options -Indexes FollowSymLinks…

大型网站数据库优化及浅析大型网站的架构(转)

大型网站数据库优化 千万人同时访问的网站&#xff0c;一般是有很多个数据库同时工作&#xff0c;说明白一点就是数据库集群和并发控制&#xff0c;这样的网站实时性也是相对的。这些网站都有一些共同的特点&#xff1a;数据量大&#xff0c;在线人数多&#xff0c;并发请求多…

解决github网站 git 操作太慢问题

上网查找改善方法解决了问题&#xff1a; 思路&#xff1a;git clone 特别慢是因为github.global.ssl.fastly.Net域名被限制了。只要找到这个域名对应的ip地址&#xff0c;然后在hosts文件中加上ip–>域名的映射&#xff0c;刷新DNS缓存就可以了 1.获取 global.ssl.fastly地…

漏洞库网站

关于漏洞的国内外网站

IIS网站部署——基本流程

近期在一个项目中用到了IIS服务器,在学习使用的过程中遇到了很多问题&#xff0c;下面先对IIS网站部署的基本流程做个简单介绍。 以Windows 7 64位系统为例 一.IIS服务开启 1.打开Windows功能 依次打开控制面板 — 程序&#xff0c;再点击“打开或关闭Windows功能”&#xf…

Springboot 系列(十四)迅速启用 HTTPS 加密你的网站

点赞再看&#xff0c;动力无限。Hello world : ) 微信搜「 程序猿阿朗 」。 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录&#xff0c;有很多知识点和系列文章。 1. 获取 HTTPS 证书 正常情况下 HTTPS 证书需要从证书授权中心获得&#xff0c;这样获得的证书才…

网站跨域传递的原理+同源策略+src跨域+callback回调函数

一&#xff0c;传输数据的几种数据格式 1&#xff0c;Html Html由一些普通文本组成。如果服务器通过XMLHTTPRequest发送html&#xff0c;文本将存储在responseText属性中。 从服务器端发送的html的代码在浏览器端不需要用JavaScript进行解析。 可以直接使用innerHTML属性把服务…

宝塔同时安装苹果cms海洋cms_安装网站程序

一、选择网站程序搭建网站的程序有很多博客类&#xff1a; WordPress、 Typecho 、Hexo 等商城类&#xff1a;EcShop、DBShop、NiuShop 等论坛类&#xff1a;Discuz 还有 苹果CMS-影视建站&#xff1b;Tipask-问答程序&#xff1b;可道云KodExplorer-强大易用的私有云/在线文档…

bitnami搭建php网站,BitNami 开源PHP程序傻瓜集成安装环境

loading...bitnami.org 提供wordpress、jumla、drupal、bbpress等开源程序的傻瓜式安装包下载&#xff0c;所有的安装包内置了服务器环境&#xff0c;就是说&#xff0c;不需要在本地电脑上另外搭建服务器&#xff0c;就可以一次性傻瓜式安装完毕。BitNami开源PHP程序傻瓜集成安…

将自己的网站上传至服务器并通过域名进行访问

我们想要让大家都能通过域名访问自己的网站&#xff0c;首先我们需要准备一个域名、以及一个服务器 域名购买可以通过腾讯云&#xff0c;阿里云&#xff0c;等&#xff0c;我用的是腾讯云服务器和腾讯云购买的域名 注意&#xff1a;腾讯云买的域名用阿里云服务器备案需要腾讯云…

VS2015项目部署到服务器,VS2015本地发布网站步骤

发布网站准备&#xff1a;1、搭建一个IIS服务器&#xff1b;2、VS2015网站项目下面是具体步骤&#xff1a;1、打开IIS服务器&#xff0c;网站->右键->添加网站&#xff0c;配置端口、存储位置(本机/本地使用80**端口&#xff0c;服务器使用IP地址)2、打开你的VS2015网站项…