分布式与集群,二者区别是什么?

??分布式

分布式系统是由多个独立的计算机节点组成的系统,这些节点通过网络协作完成任务。每个节点都有自己的独立计算能力和存储能力,可以独立运行。分布式系统的目标是提高系统的可靠性、可扩展性和性能。

分布式服务包含的技术和理论

负载均衡:

Nginx:高性能、高并发的web服务器;功能包括负载均衡、反向代理、静态内容缓存、访问控制;工作在应用层

LVS:Linux virtual server,基于集群技术和Linux操作系统实现一个高性能、高可用的服务器;工作在网络层

webserver:

Java:Tomcat,Apache,Jboss

service:

SOA、微服务、spring boot,django

容器:

docker,kubernetes

cache:

memcache、redis等

协调中心:

zookeeper、etcd等

zookeeper使用了Paxos协议Paxos是强一致性,高可用的去中心化分布式。zookeeper的使用场景非常广泛,之后细讲。

rpc框架:

grpc、dubbo、brpc

dubbo是阿里开源的Java语言开发的高性能RPC框架,在阿里系的诸多架构中,都使用了dubbo + spring boot

消息队列:

kafka、rabbitMQ、rocketMQ、QSP

消息队列的应用场景:异步处理、应用解耦、流量削锋和消息通讯

实时数据平台:

storm、akka

离线数据平台:

hadoop、spark

db:

mysql、oracle、MongoDB、HBase

搜索:

elasticsearch、solr

日志:
  • rsyslog、elk、flume

??集群

集群是由多个计算机组成的一个单一的系统,这些计算机通过网络连接在一起,共享资源和任务。集群中的每个计算机都有相同的硬件和软件配置,可以同时执行同样的任务。集群的目标是提高系统的可靠性、可扩展性和性能。

集群的特征
高可靠性(HA)

利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。

相当于古代皇帝有一个太子,皇上如果驾崩了,太子可以继续完成皇上应该做的工作

高性能计算(HP)

即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析、化学分析等。

相当于一群蚂蚁一起工作干一件事情,利用好自身的最大资源

负载均衡(LB)

即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

HTTP重定向负载均衡

当用户发来请求的时候,Web服务器通过修改HTTP响应头中的Location标记来返回一个新的url,然后浏览器再继续请求这个新url,实际上就是页面重定向。通过重定向,来达到“负载均衡”的目标。例如,我们在下载JAVA源码包的时候,点击下载链接时,为了解决不同国家和地域下载速度的问题,它会返回一个离我们近的下载地址。重定向的HTTP返回码是302。优点:比较简单。缺点:浏览器需要两次请求服务器才能完成一次访问,性能较差。重定向服务自身的处理能力有可能成为瓶颈,整个集群的伸缩性国模有限;使用HTTP302响应码重定向,有可能使搜索引擎判断为SEO作弊,降低搜索排名。

DNS域名解析负载均衡

**DNS(Domain Name System)**负责域名解析的服务,域名url实际上是服务器的别名,实际映射是一个IP地址,解析过程,就是DNS完成域名到IP的映射。而一个域名是可以配置成对应多个IP的。因此,DNS也就可以作为负载均衡服务。事实上,大型网站总是部分使用DNS域名解析,利用域名解析作为第一级负载均衡手段,即域名解析得到的一组服务器并不是实际提供Web服务的物理服务器,而是同样提供负载均衡服务的内部服务器,这组内部负载均衡服务器再进行负载均衡,将请求分发到真是的Web服务器上。优点:将负载均衡的工作转交给DNS,省掉了网站管理维护负载均衡服务器的麻烦,同时许多DNS还支持基于地理位置的域名解析,即会将域名解析成举例用户地理最近的一个服务器地址,这样可以加快用户访问速度,改善性能。缺点:不能自由定义规则,而且变更被映射的IP或者机器故障时很麻烦,还存在DNS生效延迟的问题。而且DNS负载均衡的控制权在域名服务商那里,网站无法对其做更多改善和更强大的管理。

反向代理负载均衡

反向代理服务可以缓存资源以改善网站性能。实际上,在部署位置上,反向代理服务器处于Web服务器前面(这样才可能缓存Web相应,加速访问),这个位置也正好是负载均衡服务器的位置,所以大多数反向代理服务器同时提供负载均衡的功能,管理一组Web服务器,将请求根据负载均衡算法转发到不同的Web服务器上。Web服务器处理完成的响应也需要通过反向代理服务器返回给用户。由于web服务器不直接对外提供访问,因此Web服务器不需要使用外部ip地址,而反向代理服务器则需要配置双网卡和内部外部两套IP地址。优点:和反向代理服务器功能集成在一起,部署简单。缺点:反向代理服务器是所有请求和响应的中转站,其性能可能会成为瓶颈。

??总结

举一个例子:假设有一个在线商店,它包含订单处理、库存管理和支付处理等多个功能。在传统的单体应用程序中,所有这些功能都由一个应用程序处理。但在微服务架构中,我们可以将每个功能拆分成一个独立的服务,例如订单服务、库存服务和支付服务。这些服务可以独立开发、测试、部署和扩展,同时通过网络协议进行通信和协作。这样,当其中一个服务出现问题时,我们只需要处理该服务,而不需要影响整个应用程序。这就是微服务架构的优点之一。

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

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

相关文章

<02.21>八股文

JAVA基础 次数少了用解释性 次数多了用编译性(JIT) 操作系统

logging-operator 部署fluentd-bit日志报kubernetes链接错误

一、背景: 某项目使用logging-operator部署fluentd-bit进行日志采集,发现启动的fluentd-bit有大量的的链接kubernetes报错。 二、排查过程 1、排查fluentd容器到kubernetes api server的联通性,进入容器中curl kubernetes.default.svc.local:…

Redis数据结构-String字符串

1.String字符串 字符串类型是Redis中最基础的数据结构,关于数据结构与要特别注意的是:首先Redis中所有的键的类型都是字符串类型,而且其他集中数据结构也都是在字符串类似基础上进行构建,例如列表和集合的元素类型是字符串类型&a…

基于Django的购物商城平台的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统购物管理采取了人工的管理方法,但这种管理方法存…

Unity结合Vuforia虚拟按键实现AR机械仿真动画效果

零、最终效果 待上传 一、资源准备 1、Vuforia Vuforia版本不能高于10.17.4(往上的版本虚拟按键功能被删除) 2、Unity Unity版本必须要高于2022.3.x,不然使用Vuforia插件时会出现bug 二、主要内容 1、添加虚拟按钮 2、为虚拟按钮设置…

MATLAB在投资组合优化中的应用:从基础理论到实践

引言 投资组合优化是现代金融理论中的核心问题之一,旨在通过合理配置资产,实现风险与收益的最佳平衡。MATLAB凭借其强大的数学计算能力和丰富的金融工具箱,成为投资组合优化的理想工具。本文将详细介绍如何使用MATLAB进行投资组合优化&#…

Day15-后端Web实战-登录认证——会话技术JWT令牌过滤器拦截器

目录 登录认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 2. 登录校验2.1 问题分析2.2 会话技术2.2.1 会话技术介绍2.2.2 会话跟踪方案2.2.2.1 方案一 - Cookie2.2.2.2 方案二 - Session2.2.2.3 方案三 - 令牌技术 2.3 JWT令牌2.3.1 介绍2.3.2 生成和校…

【实战篇】【深度介绍 DeepSeek R1 本地/私有化部署大模型常见问题及解决方案】

引言 大家好!今天我们来聊聊 DeepSeek R1 的本地/私有化部署大模型。如果你正在考虑或者已经开始了这个项目,那么这篇文章就是为你准备的。我们会详细探讨常见问题及其解决方案,帮助你更好地理解和解决在部署过程中可能遇到的挑战。准备好了…

大模型本地部署及本地知识库构建

1、引言 随着AI技术的快速发展和普及,越来越多的LLM开始开源,若想在本地尝试部署大模型和搭建知识库,可以使用ollamaLLMscherry Studio nomic-embed-text的框架来实现,以便于对AI简单应用流程的整体了解。本地部署和知识库的搭建…

在 Ansys Motion 中创建链式伸缩臂的分步指南

介绍 链传动在负载和/或运动要远距离传递的机器中非常多产,例如,在两个平行轴之间。链条驱动系统的设计需要了解载荷传递和运动学如何影响链条张力、轴轴承中的悬臂载荷、轴应力和运动质量等。使用 Ansys Motion,可以轻松回答上述所有问题以…

blender笔记2

一、物体贴地 物体->变换->对齐物体 ->对齐弹窗(对齐模式:反方,相对于:场景原点,对齐:z)。 之后可以设置原点->原点--3d游标 二、面上有阴影 在编辑模式下操作过后,物体面有阴影。 数据-&g…

SPRING10_SPRING的生命周期流程图

经过前面使用三大后置处理器BeanPostProcessor、BeanFactoryPostProcessor、InitializingBean对创建Bean流程中的干扰,梳理出SPRING的生命周期流程图如下

光子集成电路加速边缘AI推理:突破传统NPU的能效比极限

引言:边缘计算的能耗困局 某领先自动驾驶公司采用128核光子张量处理器后,激光雷达点云处理能效比达458TOPS/W,是传统车规级GPU方案的57倍。在16线束LiDAR实时语义分割任务中,光子矩阵乘法单元将特征提取延迟从8.3ms降至0.12ms&am…

【EndNote】WPS 导入EndNote 21

写在前面:有没有人有激活码,跪求! EndNote,在文献管理和文献引用方面很好用。写文章的时候,使用EndNote引入需要的文献会很方便。我目前用的WPS,想把EndNote的CWYW(Cite While You Write&#…

2025.2.23机器学习笔记:PINN文献阅读

2025.2.23周报 一、文献阅读题目信息摘要Abstract创新点网络架构架构A架构B架构C 实验结论后续展望 一、文献阅读 题目信息 题目: Physics-Informed Neural Networks for Modeling Water Flows in a River Channel期刊: IEEE TRANSACTIONS ON ARTIFICI…

SpringBoot 配置文件

介绍 配置文件时用来解决硬编码问题,把可能会发生改变的信息放在一个集中的地方也就说配置文件上,当我们启动某个程序的时候,应用程序会从配置文件中读取数据,并加载运行。 硬编码是指将数据直接嵌入到源代码中,也就…

Redis三剑客解决方案

文章目录 缓存穿透缓存穿透的概念两种解决方案: 缓存雪崩缓存击穿 缓存穿透 缓存穿透的概念 每一次查询的 key 都不在 redis 中&#xff0c;数据库中也没有。 一般都是属于非法的请求&#xff0c;比如 id<0&#xff0c;比如可以在 API 入口做一些参数校验。 大量访问不存…

LeeCode题库第二十八题

28.找出字符串第一个匹配项的下标 项目场景&#xff1a; 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 …

亚马逊AI图像模型Nova深度体验(含源代码)(上)

在本系列的上篇中&#xff0c;我们介绍了如何利用Amazon Nova Canvas进行创意图片内容生成&#xff0c;并使用Amazon Bedrock的InvokeModel API进行文本到图像&#xff08;文生图&#xff09;的生成。并且介绍了Nova Canvas提供的广泛的功能&#xff0c;包括图像修复、画布扩展…