当前位置: 首页 > news >正文

网站建设的费用包括哪些内容/seo优化网站词

网站建设的费用包括哪些内容,seo优化网站词,网站建设平台简介,flash网站教程文章目录 1. 简介2. Codis的安装与配置下载编译源码安装1. 安装 Go 运行环境2. 设置编译环境3. 下载 Codis 源代码4. 编译 Codis 源代码 Docker 部署 3. Codis的架构Codis的架构图和组件Codis的工作流程 4. Codis的核心特性自动数据分片数据迁移高可用性全面支持Redis命令分布式…

文章目录

  • 1. 简介
  • 2. Codis的安装与配置
      • 下载
      • 编译源码安装
        • 1. 安装 Go 运行环境
        • 2. 设置编译环境
        • 3. 下载 Codis 源代码
        • 4. 编译 Codis 源代码
    • Docker 部署
  • 3. Codis的架构
    • Codis的架构图和组件
    • Codis的工作流程
  • 4. Codis的核心特性
    • 自动数据分片
    • 数据迁移
    • 高可用性
    • 全面支持Redis命令
    • 分布式锁和发布订阅
  • 5. Codis的高可用与故障恢复
    • Codis的高可用机制
    • 恢复Codis集群的故障节点
  • 6. Codis的使用场景和限制
    • Codis适合的使用场景
    • Codis的一些限制
  • 6. Codis 与Redis Cluster对比
  • 参考文档

在这里插入图片描述

1. 简介

Codis是由Wandou Labs(豌豆荚团队)开发的开源工具,用于解决在大数据环境下使用Redis所面临的挑战。Codis将多个Redis实例组织起来,形成一个统一的数据访问层,从而提供了高可用和分布式的特性,使得Redis能够更好地处理大数据和高并发的场景。

Codis的功能是基于Redis构建的。Redis是一种内存数据库,用于存储键值对数据。然而,当数据量或并发请求数量增长时,单个Redis实例可能会遇到性能瓶颈。Codis通过在多个Redis实例之间进行数据分片,解决了这个问题。另外,Codis还提供了一些其他的高级功能,如数据迁移、故障恢复等。

codis server:基于redis进行了二次开发的组件,负责数据的读写 codis proxy:面向客户端,代理客户端访问codis
server zookeeper 集群:保存元数据,如数据路由表信息,codis proxy信息 codis dashboard,codis
fe:codis dashboard提供维护codis server,codis proxy等功能,codis
fe提供web界面,方便管理人员使用。

通俗的理解Codis可以被视为一个强大的Redis集群解决方案,它提供了更多的功能,并且允许开发者以相似的方式操作Redis实例。在大规模数据处理和高并发环境下,Codis相对于单个Redis实例,可以提供更好的性能和扩展性。

在这里插入图片描述

2. Codis的安装与配置

下载

release binary文件安装

如果是重要的生产环境使用,尽量不要选择alpha、rc版本。 根据自己的部署平台,选择相应的文件下载即可。

编译源码安装

1. 安装 Go 运行环境

参考这里

安装完成后可以运行下列命令进行检测:

$ go version
go version go1.7.3 linux/amd64
2. 设置编译环境

注意 $GOPATH 是本机所有第三方库 go 项目所在目录,Codis 仅是其中之一。

添加 $GOPATH/bin$PATH,例如:PATH=$PATH:$GOPATH/bin

$ go env GOPATH
/home/codis/gopath
3. 下载 Codis 源代码

Codis 源代码需要下载到 $GOPATH/src/github.com/CodisLabs/codis

$ mkdir -p $GOPATH/src/github.com/CodisLabs
$ cd $_ && git clone https://github.com/CodisLabs/codis.git -b release3.2
4. 编译 Codis 源代码
  • 直接通过 make 进行编译,会看到如下输出:
$ cd $GOPATH/src/github.com/CodisLabs/codis
$ make
make -j -C extern/redis-3.2.8/
... ...
go build -i -o bin/codis-dashboard ./cmd/dashboard
go build -i -o bin/codis-proxy ./cmd/proxy
go build -i -o bin/codis-admin ./cmd/admin
go build -i -o bin/codis-fe ./cmd/fe$ ls bin/
total 69124
drwxr-xr-x 4 codis codis     4096 Jan  4 14:55 assets
-rwxr-xr-x 1 codis codis 17600752 Jan  4 14:55 codis-admin
-rwxr-xr-x 1 codis codis 18416320 Jan  4 14:55 codis-dashboard
-rwxr-xr-x 1 codis codis  9498040 Jan  4 14:55 codis-fe
-rwxr-xr-x 1 codis codis 11057280 Jan  4 14:55 codis-proxy
-rwxr-xr-x 1 codis codis  4234432 Jan  4 14:55 codis-server
-rw-r--r-- 1 codis codis      148 Jan  4 14:55 version
... ...$ cat bin/version
version = 2016-01-03 14:53:22 +0800 @51f06ae3b58a256a58f857f590430977638846a3
compile = 2016-01-04 15:00:17 +0800 by go version go1.5.2 linux/amd64

详细参考 https://github.com/CodisLabs/codis/blob/master/doc/tutorial_zh.md

通过web浏览器访问集群管理页面(fe地址:127.0.0.1:9090) 选择我们刚搭建的集群 codis-demo,在 Proxy 栏可看到我们已经启动的 Proxy, 但是 Group 栏为空,因为我们启动的 codis-server 并未加入到集群 添加 NEW GROUP,NEW GROUP 行输入 1,再点击 NEW GROUP 即可 添加 Codis Server,Add Server 行输入我们刚刚启动的 codis-server 地址,添加到我们刚新建的 Group,然后再点击 Add Server 按钮即可,如下图所示在这里插入图片描述
通过fe初始化slot
新增的集群 slot 状态是 offline,因此我们需要对它进行初始化(将 1024 个 slot 分配到各个 group),而初始化最快的方法可通过 fe 提供的 rebalance all slots 按钮来做,如下图所示,点击此按钮,我们即快速完成了一个集群的搭建。

rebalance_slots

Docker 部署

Codis 3.x 起,开始正式支持 Docker 部署。这就需要 codis-dashboard 以及 codis-proxy 能够外部的 listen 地址暴露出来并保存在外部存储中。

codis-proxy 增加了 --host-admin 以及 --host-proxy 参数;
codis-dashboard 增加了 --host-admin 参数;
以 codis-proxy 的 Docker 为例:

$ docker run --name "Codis-Proxy" -d -p 29000:19000 -p 21080:11080 codis-image \codis-proxy -c proxy.toml --host-admin 100.0.1.100:29000 --host-proxy 100.0.1.100:21080

codis-proxy 在启动后,会使用 --host-admin 和 --host-proxy 参数所指定的实际地址替换 Docker 内监听的地址,向 codis-dashboard 注册。这样,例如使用 Jodis 的过程中,客户端就能够通过 100.0.1.100:29000 来访问 proxy 实例。

codis-dashboard 也是相同的道理,会使用 --host-admin 地址向外部存储注册,这样 codis-fe 也能通过该地址正确的对 codis-dashboard 进行操作。

具体样例可以参考 scripts/docker.sh。

3. Codis的架构

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Codis的架构图和组件

Codis的架构主要包含以下四个部分:

  1. Proxy:Proxy是Codis的核心组件,它负责请求的路由和负载均衡。用户的请求首先发送到Proxy,然后Proxy将请求转发到相应的Redis实例。
    在这里插入图片描述

  2. Group:Group是一组Redis实例,它们中的数据是一致的。每个Group含有一个Master节点和多个Slave节点,Master节点负责处理写请求,Slave节点用于处理读请求和故障恢复。
    在这里插入图片描述

  3. Dashboard:Dashboard是Codis的管理界面,它提供了一系列的管理和监控功能,如数据迁移、节点管理等。

  4. ZooKeeper:Zookeeper是一个开源的分布式协调服务,Codis使用它来存储和同步集群的状态信息。

Codis的工作流程

在这里插入图片描述

当一个请求发送到Codis时,以下是其大致的处理流程:

  1. Proxy接收到用户的请求。

  2. Proxy查询Zookeeper,获取到请求应该路由到哪个Group。

  3. Proxy将请求转发到对应Group的Master节点。

  4. Master节点处理请求,并将结果返回给Proxy。

  5. Proxy将结果返回给用户。

4. Codis的核心特性

自动数据分片

Codis支持自动的数据分片,能够将数据在多个Redis实例之间进行均匀分布,这样就可以有效地解决单个Redis实例的性能瓶颈。Codis的分片是基于Redis的Key进行的,每个Key会被哈希到一个Slot中,每个Slot对应一个Redis实例。

数据迁移

在某些场景下,可能需要增加或减少Redis实例数量以应对变化的负载。在这种情况下,Codis提供了数据迁移的功能。可以在Dashboard中方便地管理数据迁移的过程,Codis会自动进行数据的迁移和重分布,而这个过程对应用是透明的。

高可用性

Codis集群中的每个Redis实例都有一个或多个备份实例,当主实例发生故障时,备份实例可以立即接管请求,保证了服务的持续可用。Codis使用Zookeeper来检测和管理实例的状态,以实现快速的故障恢复。

全面支持Redis命令

Codis全面支持Redis的各种命令,包括键值操作、列表操作、集合操作等。可以像使用单个Redis实例一样使用Codis,这极大地降低了使用Codis的学习成本。

分布式锁和发布订阅

Codis支持Redis的分布式锁和发布订阅功能,可以使用这些功能来实现各种复杂的并发控制和事件通知需求。

5. Codis的高可用与故障恢复

Codis的高可用机制

Codis的高可用性是通过其内部的故障恢复机制实现的。在Codis中,每个Redis实例(Master节点)都会有一个或多个备份实例(Slave节点)。在正常情况下,所有的写请求都会发送到Master节点,而读请求则可以由任何节点来处理。

当Master节点发生故障时,Codis会自动从其备份节点中选举出一个新的Master节点接管服务。这个过程是自动进行的,对于用户来说,除了可能会有短暂的服务中断外,其他的都是透明的。

Codis使用Zookeeper来检测和管理节点的状态,当检测到节点发生故障时,Zookeeper会自动触发故障恢复流程。

恢复Codis集群的故障节点

当一个节点发生故障后,可以使用Codis提供的工具来恢复它。以下是一个例子:

# 停止故障节点
codis-admin --proxy=proxy_addr --offline# 修复故障节点
codis-admin --proxy=proxy_addr --online

在这个例子中,proxy_addr是故障节点的地址。首先需要将故障节点设置为离线状态,然后修复节点后,再将其设置为在线状态。

此外,还可以使用Codis的Dashboard来可视化地管理和监控Codis集群的状态,包括故障恢复等操作。

需要注意的是,Codis的高可用机制并不能保证数据的一致性。如果在Master节点故障期间有写请求,则这些请求可能会丢失。因此,需要根据的应用的需求,选择合适的数据持久化和备份策略。

6. Codis的使用场景和限制

Codis适合的使用场景

  • 大规模数据存储:Codis通过数据分片和负载均衡,可以支持大规模的数据存储。如果的应用需要存储TB级别的数据,并且需要高性能的读写操作,Codis是一个不错的选择。
  • 高可用服务:Codis内置了故障恢复机制,可以在节点发生故障时自动进行故障转移,保证服务的高可用性。
  • 实时数据缓存:Codis可以作为一个高性能的分布式缓存,用于存储和查询实时数据。例如,可以使用Codis来实现一个实时的内容推荐系统。
  • 会话存储:Codis可以用于存储用户的会话信息。比如,可以使用Codis来实现一个分布式的会话管理系统。

Codis的一些限制

  • 事务支持:Codis不支持Redis的事务操作。如果的应用需要使用事务,可能需要考虑其他的解决方案,或者使用其他的并发控制机制替代事务。
  • 强一致性:Codis的数据分布是基于最终一致性模型的,它不能保证强一致性。如果的应用需要强一致性,可能需要考虑其他的数据存储方案。
  • 复杂查询:Codis不支持Redis的复杂查询操作,如排序和聚合等。如果的应用需要进行复杂的数据处理和查询,可能需要考虑其他的数据处理框架。
  • 持久化:虽然Codis支持Redis的持久化功能,但由于Codis是分布式的,所以持久化的过程可能会比较复杂。

6. Codis 与Redis Cluster对比

对比项CodisRedis Cluster
可靠性可靠可靠
扩容支持支持
数据迁移同步迁移,异步迁移同步迁移
客户端兼容性兼容不兼容,需要支持Cluster的客户端
组件数量不需要额外组件,只需要Redis实例
成本组件多,成本高不需要额外组件,成本低
成熟度低于Codis

Codis的优势在于可靠性、支持扩容、数据迁移方式的灵活性以及客户端兼容性。而Redis Cluster的优势在于组件少、成本低。
在实际应用中,你可以根据以下几点来选择:

  • 可靠性:如果你需要一个高可靠性的数据存储方案,Codis和Redis Cluster都是不错的选择。
  • 扩容能力:如果你预计你的数据将会快速增长,需要一个可以方便扩容的方案,那么Codis和Redis Cluster都可以满足你的需求。
  • 数据迁移:如果你需要频繁地进行数据迁移,Codis可能是更好的选择,因为它支持异步数据迁移。
  • 客户端兼容性:如果你的应用已经使用了Redis,而你不希望修改客户端代码,Codis可能是更好的选择,因为它完全兼容Redis的客户端。
  • 成本:如果你希望尽量降低成本,Redis Cluster可能是更好的选择,因为它不需要额外的组件。
  • 成熟度:如果你希望使用一款经过实践检验的成熟产品,Codis可能是更好的选择,因为它相比Redis Cluster有更长的使用历史和更高的成熟度。

参考文档

https://blog.csdn.net/wang0907/article/details/128341489

相关文章:

【入门篇】1.7 Redis 之 codis 入门介绍

文章目录 1. 简介2. Codis的安装与配置下载编译源码安装1. 安装 Go 运行环境2. 设置编译环境3. 下载 Codis 源代码4. 编译 Codis 源代码 Docker 部署 3. Codis的架构Codis的架构图和组件Codis的工作流程 4. Codis的核心特性自动数据分片数据迁移高可用性全面支持Redis命令分布式…...

【JavaEE】Servlet API 详解(HttpServlet类)

一、HttpServlet 写 Servlet 代码的时候, 首先第一步就是先创建类, 继承自HttpServlet, 并重写其中的某些方法 1.1 HttpServlet核心方法 1.2 Servlet生命周期 这些方法的调用时机, 就称为 “Servlet 生命周期”. (也就是描述了一个 Servlet 实例从生到死的过程) 1.3 处理G…...

微软宣布计划在 Windows 10 版本 22H2 中引入 AI 助手 Copilot

根据之前的传言,微软宣布计划在 Windows 10 版本 22H2 中引入 AI 助手 Copilot。Copilot 将包含在 Windows 10 家庭版和专业版中。该更新的发布日期尚未公布,但预计将在不久的将来发布。 在一份新闻稿中,微软表示在向 Windows 11 用户提供 Co…...

ubuntu 怎么安装图形界面

ubuntu 安装图形界面的方法,可以通过以下步骤操作来实现: 1、确认版本首先登录一下服务纯缺器ubuntu,查看系统版本。然后用root账号登录,如下图所示: 2、更新apt-get首先要先更新一下apt-get源,输入apt-g…...

【LabVIEW学习】2.for,while,事件

1.for实例&#xff08;随机输出数据100次&#xff09; 结果&#xff1a; 2.while实例&#xff08;i<50灯亮&#xff0c;大于之后灯灭&#xff09; 结果&#xff1a;&#xff08;先亮后灭&#xff09; 3.事件结构的实例&#xff08;点击按钮数据增加&#xff09;事件监听应该…...

JVM bash:jmap:未找到命令 解决

如果我们在使用JVM的jmap命令时遇到了"bash: jmap: 未找到命令"的错误&#xff0c;这可能是因为jmap命令没有在系统的可执行路径中。 要解决这个问题&#xff0c;可以尝试以下几种方法&#xff1a; 1. 检查Java安装&#xff1a;确保您已正确安装了Java Development …...

基于单片机的温度控制器系统设计

**单片机设计介绍&#xff0c; 基于单片机的温度控制器系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的温度控制器系统是一种利用单片机来检测环境温度并控制温度的系统。它通常由以下几个部分组成&#xff…...

oracle数据库中job和dbms_job比较

oracle中job和dbms_job比较 一、概述 Oralce中的任务有2种&#xff1a;Job和Dbms_job&#xff0c;两者的区别有&#xff1a; ①、Job是通过调用dbms_scheduler.create_job包创建的&#xff0c;Dbms_job则是通过调用dbms_job.submit包创建的。 ②、两种任务的查询视图都分为db…...

# Python基础:输入输出详解-读写文件(还需完善)

open() 返回一个 file object &#xff0c;最常使用的是两个位置参数和一个关键字参数&#xff1a;open(filename, mode, encodingNone) f open(workfile, w, encoding"utf-8")第一个实参是文件名字符串。第二个实参是包含描述文件使用方式字符的字符串。mode 的值…...

【Spring】 Spring中的IoC(控制反转)

以往在定义业务层实现时&#xff0c;在指定具体地Dao时候需要具体地定义出其实现&#xff1a; public class BookServiceImpl implements BookService{private BookDao bookDao new BookDaoImpl();public void save(){bookDao.save()} }public class BookDaoImpl implements …...

playwright在vscode+jupyter中出现NotImplementedError问题

近期因个人需要接触playwright&#xff0c;由于playwright新接触&#xff0c;想用jupyter进行API测试学习。刚开始使用sync_playwright&#xff0c;在playwright的Conda运行环境中&#xff0c;以console模式和单文件直接运行模式&#xff0c;都能正常运行。但是进入jupyter中后…...

js 实现文件上传

input 类型为file <inputtype"file"class"absolute "change"fileUpload"/> const fileUpload (e: any) > {const formData new FormData(); // form-data数据类型formData.append(file, e.target.files[0]);// 获取文件信息&#xff…...

5. Spring源码篇之BeanDefinition

简介 在spring中BeanDefinition是一个接口&#xff0c;下面也有很多的实现类 大致如下 BeanDefinitionAbstractBeanDefinitionRootBeanDefinition 最终每个BeanDefinition都是一个 RootBeanDefinitionChildBeanDefinition 现在不用了废弃&#xff…...

kotlin--2.面向对象

目录 一.概念 Kotlin 类/对象 二.创建类 1.创建类 2.构造函数 2.getter 和 setter 实例 3.主构造器 实例 4.次构造函数 实例 5.抽象类 6.嵌套类 7.内部类 8.匿名内部类 9.类的修饰符 实例 三.继承 1.概念 2.构造函数 (1)子类有主构造函数 (2)子类没有主构…...

Linux安装RabbitMQ详细教程

一、下载安装包 下载erlang-21.3-1.el7.x86_64.rpm、rabbitmq-server-3.8.8-1.el7.noarch.rpm 二、安装过程 1、解压erlang-21.3-1.el7.x86_64.rpm rpm -ivh erlang-21.3-1.el7.x86_64.rpm2、安装erlang yum install -y erlang3、查看erlang版本号 erl -v4、安装socat …...

rviz是如何获取图像里选择的点云的3D坐标的

以前以为rviz是用OpenGL渲染绘图&#xff0c;那么获取图像里像素点对应的真实3D坐标是采用的OpenGL里提供的API实现的&#xff0c;结果一看代码还真不是这样&#xff0c;rviz也就渲染用了OpenGL&#xff0c;其他都是自己实现的&#xff0c;图像界面的实现完全是遵循MVC设计模式…...

响应体和状态码

后端响应体和状态码设计 主流技术&#xff1a;响应体 和 状态码结合使用 响应体&#xff1a;数据 响应 给前端的 格式 1、为什么要设计统一响应体? 1、系统默认提供许多的状态码&#xff0c;但HTTP的状态码数量有限。 通过修改响应返回的JSON数据&#xff0c;更好的表达业务中…...

CNN进展:AlexNet、VGGNet、ResNet 和 Inception

一、说明 对于初学者来说&#xff0c;神经网络进展的历程有无概念&#xff1f;该文综合叙述了深度神经网络的革命性突破&#xff0c;从AlexNet开始&#xff0c;然后深度VGG的改进&#xff0c;然后是残差网络ResNet和 Inception&#xff0c;如果能讲出各种特色改进点的和改进理由…...

数据的存储--MongoDB文档存储

MongoDB文档存储 NoSQL&#xff0c;全称为Not Only SQL&#xff0c;意为不仅仅是SQL&#xff0c;泛指非关系型数据库。NoSQL是基于键值对的&#xff0c;而且不需要经过SQL层的解析&#xff0c;数据之间没有耦合性&#xff0c;性能非常高。 非关系行数据库又可细分如下。 键值存…...

Notepad++ 通过HexEditor插件查看.hprof文件、heap dump文件的堆转储数据

文章目录 需求场景插件安装查看notepad的版本&#xff0c;看看是32位的还是64位的下载对应的版本解压导入插件打开notepad插件文件夹&#xff1a;Notepad安装目录新建一个HexEditor文件夹选中插件文件导入 重启notepad使用 需求场景 想要查看app内存的某个域的数据。 利用Andr…...

微服务学习 | Eureka注册中心

微服务远程调用 在order-service的OrderApplication中注册RestTemplate 在查询订单信息时&#xff0c;需要同时返回订单用户的信息&#xff0c;但是由于微服务的关系&#xff0c;用户信息需要在用户的微服务中去查询&#xff0c;故需要用到上面的RestTemplate来让订单的这个微…...

spring boot集成quartz

目录 1.定时任务实现 2.quartz说明 3.存储方式 4.示例 5.定时任务的重新定制&#xff0c;恢复&#xff0c;暂停及删除 1.定时任务实现 定时任务的实现方式有很多&#xff0c;如下&#xff1a; 1.启动类中添加EnableScheduling&#xff0c;开启定时任务功能&#xff0c;然…...

[Linux] yum仓库相关

一、yum仓库 1.1 yum简介 yum 是一种基于 RPM 软件包&#xff08;Red-Hat Package Manager 的缩写&#xff09;的软件更新机制&#xff0c;可自动解决软件包之间的依赖关系。这就解决了日常工作中花费大量时间寻找安装包的问题。 为什么会出现依赖 linux 本身就有简化系统的优…...

2023.11.15-hivesql之炸裂函数explode练习

把一个容器的多个数据炸裂出单独展示: explode(容器) 需求:将NBA总冠军球队数据使用explode进行拆分&#xff0c;并且根据夺冠年份进行倒序排序。 1.建表 --step1:建表 create table the_nba_championship(team_name string,champion_year array<string> ) row format…...

Linux - 内核 - 安全机制 - 内存页表安全

说明 内核页表安全的最终目标是&#xff1a;将内核使用到的内存页&#xff08;内核与module占用&#xff09;的属性&#xff08;读/写/可执行&#xff09;配置成安全的&#xff0c;即&#xff1a;代码段和rodata段只读&#xff0c;非代码段不能执行等&#xff0c;用来防御堆栈…...

Linux---(七)Makefile写进度条(三个版本)

文章目录 一、前提引入&#x1f397;️下面的代码什么现象&#xff1f;&#x1f397;️下面的代码什么现象&#xff1f; 二、缓冲区三、回车换行&#x1f397;️注意&#x1f397;️图解&#x1f397;️老式回车键造型&#xff08;意思是充当两个动作&#xff09;&#x1f397;…...

数据库分页查询

数据库只所以要分页查询&#xff0c;其实是界面显示的需要&#xff0c;不是数据库的需要。 数据库本身查询是很快的。本文章是针对这种情况的。 如果数据库本身查询慢&#xff0c;那是优化查询语句的事情了。不在本文章范围内。 今天遇到了这个问题。 是个老项目。在原有的查询…...

如何选择合适的数据库管理工具?Navicat Or DBeaver

写在前面 在阅读本文之前&#xff0c;糖糖给大家准备了Navicat和DBeaver安装包&#xff0c;在公众号内回复“Navicat”或“DBeaver”或"数据库管理工具"来下载。 引言 对于测试而言&#xff0c;在实际工作中往往会用到数据库&#xff0c;那么选择使用哪种类型的数…...

Opencv!!在树莓派上安装Opencv!

一、更新树莓派系统 sudo apt-get update sudo apt-get upgrade二、安装python-opencv sudo apt-get install libopencv-dev sudo apt-get install python3-opencv三、查看是否安装成功 按以下命令顺序执行&#xff1a; python import cv2 cv2.__version__如果出现版本号&a…...

三菱FX3U小项目—传输带定分级控制

目录 一、项目描述 二、IO口分配 三、项目程序 四、总结 一、项目描述 两条运输带顺序相连&#xff0c;为了避免运送的物料在1号运输线上堆积&#xff0c;所以启动时&#xff0c;1号运输带开始运行&#xff0c;5S后2号运输带自动启动。停机时顺序与启动刚好相反&#xff0c…...