网站建设和维护面试题销售管理系统包括哪几大模块

pingmian/2025/10/8 12:06:14/文章来源:
网站建设和维护面试题,销售管理系统包括哪几大模块,上海网站群建设,南阳做网站费用前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术#xff1f;那么…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。 一、分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术那么我来告诉大家其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制让他们有序的去访问某种临界资源防止造成脏数据的后果。这时有人可能会说这个简单写一个调度算法就轻松解决了。说这句话的人可能对分布式系统不是很了解所以才会出现这种误解。如果这些进程全部是跑在一台机上的话相对来说确实就好办了问题就在于他是在一个分布式的环境下这时问题又来了那什么是分布式呢这个一两句话我也说不清楚但我给大家画了一张图希望能帮助大家理解这方面的内容如果觉得不对尽可拍砖来咱们看一下这张图如图1.1所示。 图 1.1 分布式系统图 给大家分析一下这张图在这图中有三台机器每台机器各跑一个应用程序。然后我们将这三台机器通过网络将其连接起来构成一个系统来为用户提供服务对用户来说这个系统的架构是透明的他感觉不到我这个系统是一个什么样的架构。那么我们就可以把这种系统称作一个分布式系统。 那我们接下来再分析一下在这个分布式系统中如何对进程进行调度我假设在第一台机器上挂载了一个资源然后这三个物理分布的进程都要竞争这个资源但我们又不希望他们同时进行访问这时候我们就需要一个协调器来让他们有序的来访问这个资源。这个协调器就是我们经常提到的那个锁比如说进程-1在使用该资源的时候会先去获得锁进程1获得锁以后会对该资源保持独占这样其他进程就无法访问该资源进程1用完该资源以后就将锁释放掉让其他进程来获得锁那么通过这个锁机制我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。那么我们把这个分布式环境下的这个锁叫作分布式锁。这个分布式锁也就是我们分布式协调技术实现的核心内容那么如何实现这个分布式呢那就是我们后面要讲的内容。 二、分布式锁的实现 好我们知道为了防止分布式系统中的多个进程之间相互干扰我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。那么这个锁怎么实现呢这实现起来确实相对来说比较困难的。 1.1 面临的问题 在看了图1.1所示的分布式环境之后有人可能会感觉这不是很难。无非是将原来在同一台机器上对进程调度的原语通过网络实现在分布式环境中。是的表面上是可以这么说。但是问题就在网络这在分布式系统中所有在同一台机器上的假设都不存在因为网络是不可靠的。 比如在同一台机器上你对一个服务的调用如果成功那就是成功如果调用失败比如抛出异常那就是调用失败。但是在分布式环境中由于网络的不可靠你对一个服务的调用失败了并不表示一定是失败的可能是执行成功了但是响应返回的时候失败了。还有A和B都去调用C服务在时间上 A还先调用一些B后调用那么最后的结果是不是一定A的请求就先于B到达呢 这些在同一台机器上的种种假设我们都要重新思考我们还要思考这些问题给我们的设计和编码带来了哪些影响。还有在分布式环境中为了提升可靠性我们往往会部署多套服务但是如何在多套服务中达到一致性这在同一台机器上多个进程之间的同步相对来说比较容易办到但在分布式环境中确实一个大难题。 所以分布式协调远比在同一台机器上对多个进程的调度要难得多而且如果为每一个分布式应用都开发一个独立的协调程序。一方面协调程序的反复编写浪费且难以形成通用、伸缩性好的协调器。另一方面协调程序开销比较大会影响系统原有的性能。所以急需一种高可靠、高可用的通用协调机制来用以协调分布式应用。 1.2 分布式锁的实现者 目前在分布式协调技术方面做得比较好的就是Google的Chubby还有Apache的ZooKeeper他们都是分布式锁的实现者。有人会问既然有了Chubby为什么还要弄一个ZooKeeper难道Chubby做得不够好吗不是这样的主要是Chbby是非开源的Google自家用。后来雅虎模仿Chubby开发出了ZooKeeper也实现了类似的分布式锁的功能并且将ZooKeeper作为一种开源的程序捐献给了Apache那么这样就可以使用ZooKeeper所提供锁服务。而且在分布式领域久经考验它的可靠性可用性都是经过理论和实践的验证的。所以我们在构建一些分布式系统的时候就可以以这类系统为起点来构建我们的系统这将节省不少成本而且bug也 将更少。 三、ZooKeeper概述 ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务它提供了一项基本服务分布式锁服务。由于ZooKeeper的开源特性后来我们的开发者在分布式锁的基础上摸索了出了其他的使用方法配置维护、组服务、分布式消息队列、分布式通知/协调等。 注意ZooKeeper性能上的特点决定了它能够用在大型的、分布式的系统当中。从可靠性方面来说它并不会因为一个节点的错误而崩溃。除此之外它严格的序列访问控制意味着复杂的控制原语可以应用在客户端上。ZooKeeper在一致性、可用性、容错性的保证也是ZooKeeper的成功之处它获得的一切成功都与它采用的协议——Zab协议是密不可分的这些内容将会在后面介绍。 前面提到了那么多的服务比如分布式锁、配置维护、组服务等那它们是如何实现的呢我相信这才是大家关心的东西。ZooKeeper在实现这些服务时首先它设计一种新的数据结构——Znode然后在该数据结构的基础上定义了一些原语也就是一些关于该数据结构的一些操作。有了这些数据结构和原语还不够因为我们的ZooKeeper是工作在一个分布式的环境下我们的服务是通过消息以网络的形式发送给我们的分布式应用程序所以还需要一个通知机制——Watcher机制。那么总结一下ZooKeeper所提供的服务主要是通过数据结构原语watcher机制三个部分来实现的。那么我就从这三个方面给大家介绍一下ZooKeeper。 四、ZooKeeper数据模型 4.1 ZooKeeper数据模型Znode ZooKeeper拥有一个层次的命名空间这个和标准的文件系统非常相似如下图3.1 所示。 图4.1 ZooKeeper数据模型与文件系统目录树 从图中我们可以看出ZooKeeper的数据模型在结构上和标准文件系统的非常相似都是采用这种树形层次结构ZooKeeper树中的每个节点被称为—Znode。和文件系统的目录树一样ZooKeeper树中的每个节点可以拥有子节点。但也有不同之处 (1) 引用方式 Zonde通过路径引用如同Unix中的文件路径。路径必须是绝对的因此他们必须由斜杠字符来开头。除此以外他们必须是唯一的也就是说每一个路径只有一个表示因此这些路径不能改变。在ZooKeeper中路径由Unicode字符串组成并且有一些限制。字符串/zookeeper用以保存管理信息比如关键配额信息。 (2) Znode结构 ZooKeeper命名空间中的Znode兼具文件和目录两种特点。既像文件一样维护着数据、元信息、ACL、时间戳等数据结构又像目录一样可以作为路径标识的一部分。图中的每个节点称为一个Znode。 每个Znode由3部分组成: ① stat此为状态信息, 描述该Znode的版本, 权限等信息 ② data与该Znode关联的数据 ③ children该Znode下的子节点 ZooKeeper虽然可以关联一些数据但并没有被设计为常规的数据库或者大数据存储相反的是它用来管理调度数据比如分布式应用中的配置文件信息、状态信息、汇集位置等等。这些数据的共同特性就是它们都是很小的数据通常以KB为大小单位。ZooKeeper的服务器和客户端都被设计为严格检查并限制每个Znode的数据大小至多1M但常规使用中应该远小于此值。 (3) 数据访问 ZooKeeper中的每个节点存储的数据要被原子性的操作。也就是说读操作将获取与节点相关的所有数据写操作也将替换掉节点的所有数据。另外每一个节点都拥有自己的ACL(访问控制列表)这个列表规定了用户的权限即限定了特定用户对目标节点可以执行的操作。 (4) 节点类型 ZooKeeper中的节点有两种分别为临时节点和永久节点。节点的类型在创建时即被确定并且不能改变。 ① 临时节点该节点的生命周期依赖于创建它们的会话。一旦会话(Session)结束临时节点将被自动删除当然可以也可以手动删除。虽然每个临时的Znode都会绑定到一个客户端会话但他们对所有的客户端还是可见的。另外ZooKeeper的临时节点不允许拥有子节点。 ② 永久节点该节点的生命周期不依赖于会话并且只有在客户端显示执行删除操作的时候他们才能被删除。 (5) 顺序节点 当创建Znode的时候用户可以请求在ZooKeeper的路径结尾添加一个递增的计数。这个计数对于此节点的父节点来说是唯一的它的格式为%10d(10位数字没有数值的数位用0补充例如0000000001)。当计数值大于232-1时计数器将溢出。 (6) 观察 客户端可以在节点上设置watch我们称之为监视器。当节点状态发生改变时(Znode的增、删、改)将会触发watch所对应的操作。当watch被触发时ZooKeeper将会向客户端发送且仅发送一条通知因为watch只能被触发一次这样可以减少网络流量。 4.2 ZooKeeper中的时间 ZooKeeper有多种记录时间的形式其中包含以下几个主要属性 (1) Zxid 致使ZooKeeper节点状态改变的每一个操作都将使节点接收到一个Zxid格式的时间戳并且这个时间戳全局有序。也就是说也就是说每个对节点的改变都将产生一个唯一的Zxid。如果Zxid1的值小于Zxid2的值那么Zxid1所对应的事件发生在Zxid2所对应的事件之前。实际上ZooKeeper的每个节点维护者三个Zxid值为别为cZxid、mZxid、pZxid。 ① cZxid 是节点的创建时间所对应的Zxid格式时间戳。 ② mZxid是节点的修改时间所对应的Zxid格式时间戳。 实现中Zxid是一个64为的数字它高32位是epoch用来标识leader关系是否改变每次一个leader被选出来它都会有一个 新的epoch。低32位是个递增计数。 (2) 版本号 对节点的每一个操作都将致使这个节点的版本号增加。每个节点维护着三个版本号他们分别为 ① version节点数据版本号 ② cversion子节点版本号 ③ aversion节点所拥有的ACL版本号 4.3 ZooKeeper节点属性 通过前面的介绍我们可以了解到一个节点自身拥有表示其状态的许多重要属性如下图所示。 图 4.2 Znode节点属性结构 五、ZooKeeper服务中操作 在ZooKeeper中有9个基本操作如下图所示 图 5.1 ZooKeeper类方法描述 更新ZooKeeper操作是有限制的。delete或setData必须明确要更新的Znode的版本号我们可以调用exists找到。如果版本号不匹配更新将会失败。 更新ZooKeeper操作是非阻塞式的。因此客户端如果失去了一个更新(由于另一个进程在同时更新这个Znode)他可以在不阻塞其他进程执行的情况下选择重新尝试或进行其他操作。 尽管ZooKeeper可以被看做是一个文件系统但是处于便利摒弃了一些文件系统地操作原语。因为文件非常的小并且使整体读写的所以不需要打开、关闭或是寻地的操作。 六、Watch触发器 (1) watch概述 ZooKeeper可以为所有的读操作设置watch这些读操作包括exists()、getChildren()及getData()。watch事件是一次性的触发器当watch的对象状态发生改变时将会触发此对象上watch所对应的事件。watch事件将被异步地发送给客户端并且ZooKeeper为watch机制提供了有序的一致性保证。理论上客户端接收watch事件的时间要快于其看到watch对象状态变化的时间。 (2) watch类型 ZooKeeper所管理的watch可以分为两类 ① 数据watch(data  watches)getData和exists负责设置数据watch ② 孩子watch(child watches)getChildren负责设置孩子watch 我们可以通过操作返回的数据来设置不同的watch ① getData和exists返回关于节点的数据信息 ② getChildren返回孩子列表 因此 ① 一个成功的setData操作将触发Znode的数据watch ② 一个成功的create操作将触发Znode的数据watch以及孩子watch ③ 一个成功的delete操作将触发Znode的数据watch以及孩子watch (3) watch注册与处触发 图 6.1 watch设置操作及相应的触发器如图下图所示 ① exists操作上的watch在被监视的Znode创建、删除或数据更新时被触发。② getData操作上的watch在被监视的Znode删除或数据更新时被触发。在被创建时不能被触发因为只有Znode一定存在getData操作才会成功。③ getChildren操作上的watch在被监视的Znode的子节点创建或删除或是这个Znode自身被删除时被触发。可以通过查看watch事件类型来区分是Znode还是他的子节点被删除NodeDelete表示Znode被删除NodeDeletedChanged表示子节点被删除。 Watch由客户端所连接的ZooKeeper服务器在本地维护因此watch可以非常容易地设置、管理和分派。当客户端连接到一个新的服务器时任何的会话事件都将可能触发watch。另外当从服务器断开连接的时候watch将不会被接收。但是当一个客户端重新建立连接的时候任何先前注册过的watch都会被重新注册。 (4) 需要注意的几点 Zookeeper的watch实际上要处理两类事件 ① 连接状态事件(typeNone, pathnull) 这类事件不需要注册也不需要我们连续触发我们只要处理就行了。 ② 节点事件 节点的建立删除数据的修改。它是one time trigger我们需要不停的注册触发还可能发生事件丢失的情况。 上面2类事件都在Watch中处理也就是重载的process(Event event) 节点事件的触发通过函数existsgetData或getChildren来处理这类函数有双重作用 ① 注册触发事件 ② 函数本身的功能 函数的本身的功能又可以用异步的回调函数来实现,重载processResult()过程中处理函数本身的的功能。 七、ZooKeeper应用举例  为了方便大家理解ZooKeeper在此就给大家举个例子看看ZooKeeper是如何实现的他的服务的我以ZooKeeper提供的基本服务分布式锁为例。 7.1 分布式锁应用场景 在分布式锁服务中有一种最典型应用场景就是通过对集群进行Master选举来解决分布式系统中的单点故障。什么是分布式系统中的单点故障通常分布式系统采用主从模式就是一个主控机连接多个处理节点。主节点负责分发任务从节点负责处理任务当我们的主节点发生故障时那么整个系统就都瘫痪了那么我们把这种故障叫作单点故障。如下图7.1和7.2所示 图 7.1 主从模式分布式系统               图7.2 单点故障 7.2 传统解决方案 传统方式是采用一个备用节点这个备用节点定期给当前主节点发送ping包主节点收到ping包以后向备用节点发送回复Ack当备用节点收到回复的时候就会认为当前主节点还活着让他继续提供服务。如图7.3所示 图 7.3 传统解决方案 当主节点挂了这时候备用节点收不到回复了然后他就认为主节点挂了接替他成为主节点如下图7.4所示 图 7.4传统解决方案 但是这种方式就是有一个隐患就是网络问题来看一网络问题会造成什么后果如下图7.5所示 图 7.5 网络故障 也就是说我们的主节点的并没有挂只是在回复的时候网络发生故障这样我们的备用节点同样收不到回复就会认为主节点挂了然后备用节点将他的Master实例启动起来这样我们的分布式系统当中就有了两个主节点也就是---双Master出现Master以后我们的从节点就会将它所做的事一部分汇报给了主节点一部分汇报给了从节点这样服务就全乱了。为了防止出现这种情况我们引入了ZooKeeper它虽然不能避免网络故障但它能够保证每时每刻只有一个Master。我么来看一下ZooKeeper是如何实现的。 7.3 ZooKeeper解决方案 (1) Master启动 在引入了Zookeeper以后我们启动了两个主节点主节点-A和主节点-B他们启动以后都向ZooKeeper去注册一个节点。我们假设主节点-A锁注册地节点是master-00001主节点-B注册的节点是master-00002注册完以后进行选举编号最小的节点将在选举中获胜获得锁成为主节点也就是我们的主节点-A将会获得锁成为主节点然后主节点-B将被阻塞成为一个备用节点。那么通过这种方式就完成了对两个Master进程的调度。 图7.6 ZooKeeper Master选举 (2) Master故障 如果主节点-A挂了这时候他所注册的节点将被自动删除ZooKeeper会自动感知节点的变化然后再次发出选举这时候主节点-B将在选举中获胜替代主节点-A成为主节点。 图7.7 ZooKeeper Master选举 (3) Master 恢复 图7.8 ZooKeeper Master选举 如果主节点恢复了他会再次向ZooKeeper注册一个节点这时候他注册的节点将会是master-00003ZooKeeper会感知节点的变化再次发动选举这时候主节点-B在选举中会再次获胜继续担任主节点主节点-A会担任备用节点。

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

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

相关文章

做网站开发想转行做医药销售手机版网站开发

事务隔离级别.NET Core中的IDbConnection接口提供了BeginTransaction方法作为执行事务,BeginTransaction方法提供了两个重载,一个不需要参数BeginTransaction()默认事务隔离级别为RepeatableRead;另一个BeginTransaction(IsolationLevel il)可以根据业务…

公司网站备案需要什么加强品牌建设

目录 什么是拉链表 为什么要做拉链表? 没使用拉链表: 使用了拉链表: 题中订单拉链表的形成过程 实现语句 什么是拉链表 拉链表是缓慢渐变维的一种解决方案. 拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就重新开始一条新的记录,并把当前日期放入生效开始…

百度信息流平台郑州seo公司

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建3. 模型训练及保存1)模型训练2)模型保存 4. 模型生成1)模型导入及调用2)相关代码(1)布局文件(2&#xff…

梅州公司做网站建设网站的协议范本

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统,专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…

东莞建站公司快荐全网天下特别好网站开发项目标书

RATM: RECURRENT ATTENTIVE TRACKING MODEL ICLR 2016 本文主要内容是 结合 RNN 和 attention model 用来做目标跟踪。 其中模型的组成主要是: 1. an attention model 主要用来从输入图像中提取 patch; 2. RNN 用来预测 attention 参数,即&am…

网站网址模板360免费建站李梦

在使用Mac电脑时,为了安全很多用户通常都会设置管理员密码。不过如果不小心忘记Mac管理员密码怎么办?幸运的是,有些方法可以重置Mac密码并重新获得访问权限。下面小编就教给大家几种重置用户密码的方法。未开启FileVault的用户方法一&#xf…

淘客做自己的网站c2c电商平台有哪些家

文章目录 前言一、概述二、系列文章全目录三、实验环境总结前言 通过本次 Java EE 三大框架(Spring、Spring MVC、MyBatis)原理、技术和方法的整合,大量的项目实践实际动手能力,解决总结在 SSM 项目中存在的问题,为毕业设计以及后期从事 Java 相关开发工作打下坚实的基础。…

包装回收网站建设网站 演示代码

ES & Kibana windows 安装 声明: 本文没有实际操作过,只记录。具体操作请参考 ES & Kibana 安装 该文章 JDK1.8,最低要求!ElasticSearch客户端,界面工具! Java开发,ElasticSearch的版…

做犯法任务的网站西安东郊做网站

目录 Disruptor简介 Disruptor的设计方案 RingBuffer数据结构 一个生产者单线程写数据的流程 多个生产者写数据的流程 消费者读数据 多个生产者写数据 Disruptor核心概念 Disruptor的使用 单生产者单消费者模式 单生产者多消费者模式 多生产者多消费者模式 消费者…

网站建设功能列表ps怎么做网站

目录 51.银行系中有很多恒星,H 君晚上无聊,便爬上房顶数星星,H 君将整个银河系看做一个平面,左上角为原点(坐标为(1, 1))。现在有 n 颗星星,他给每颗星星都标上坐标&…

入侵网站做排名辽宁咨发建设监理预算咨询有限公司网站

在图像分类任务中,卷积神经网络(CNN)相比于前馈神经网络(Feedforward Neural Network)具有以下优势: 局部感知能力:CNN通过使用卷积层和池化层来捕捉图像中的局部特征。卷积操作可以有效地共享参…

响应式网站建设精英北京市建筑工程设计有限责任公司

Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库 文章目录 Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库一、前言二、编译环境三、示例C/CPP程序1、总体工程结构2、示例代码3、CMakeLists.txt(重要)4、…

咸阳做网站哪里建网站性价比高

JAVA经典算法跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发!更多java资料可以私信我领取!【程序1】 题目:古典问题:有一对…

信托公司网站建设大宗交易网登录

为帮助小伙伴们更好的快速熟悉了解ACM32G103系列的特性,航芯特别发起了该系列开发板评测试用,以帮助大家更好地运用MCU进行项目设计。 ACM32G103开发板介绍 ACM32G103系列是航芯推出的一款有着丰富模拟外设及安全存储扩展能力的高性价比通用MCU。 高性…

浙江英文网站建设佛山微商网站建设

https://github.com/Miraclelucy/dive_into_deep_learning/tree/main 上面是别人的笔记 可以学一下。 如果没有梯子,按照清华源配置 清华源conda配置 最好下载 1.11版本torch那一套 然后装d2l版本可以装 pip install d2l0.17.6然后可以用 http://localhost:8889/…

高端建站做外贸 用国内空间做网站

BIOS(基本输入/输出系统)是被固化在计算机CMOS RAM芯片中的一组程序,为计算机提供最初的、最直接的硬件控制。正确设置BIOS可大大提高系统性能。技嘉主板bios设置方法是什么,很多人很多时候都需要进入bios设置,对于电脑高手来说,这…

wordpress 建视频网站网站怎么做反向代理

前言 续鼠标类设计之1,前面解决了鼠标信号问题,这里解决显示问题 引入 鼠标伴随操作系统而生,考虑在屏幕上怎样显示 思路 1>鼠标显示是一个动态效果,所以需要一个“动态效果类”对象,添加进鼠标类的属性里。 在面…

一键建站哪家信誉好口碑好的网站建设服务

这个项目是我一个盆友的毕业设计,他的设计在这项目基础上新增了功能,晚上我们在这部分讨论了很久,在机器学习领域这个项目不算高深,但对于我们初学者,想了解机器学习是个什么鬼东西的我们来说帮助很大。https://github…

驻马店专业做网站公司企业网站建立流程的第一步是什么

远程工作绝对是未来的趋势。 不管是全职还是兼职,远程办公更加提供了更加自由的工作环境,再好的办公环境有家里舒服吗🐶? 而现在所有远程办公的平台,目前对新手最友好的,我个人觉得是云队友平台。 不仅提供…

福建得兴建设工程网站腾讯云如何做网站

迭代器和生成器---- 迭代器协议和for循环工作机制1.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个Stoplteration异常,以终止迭代(只能往后走,不能往前走&#xff09…