当前位置: 首页 > news >正文 虹口专业网站建设公司vps怎么安装wordpress news 2025/10/31 5:59:22 虹口专业网站建设公司,vps怎么安装wordpress,国外优惠卷网站怎么做,有什么网站是做投资的Redis 是如何保证高可用的#xff1f;1. 说一下 Redis 是如何保证高可用的#xff1f;2. 了解过主从复制么#xff1f;2.1 Redis 主从复制主要的作用是什么?2.2 Redis 主从模式的拓扑结构#xff1f;#xff08;1#xff09;一主一从结构#xff08;2#xff09;一主多… Redis 是如何保证高可用的1. 说一下 Redis 是如何保证高可用的2. 了解过主从复制么2.1 Redis 主从复制主要的作用是什么?2.2 Redis 主从模式的拓扑结构1一主一从结构2一主多从3树状结构2.3 说一下 Redis 主从复制的原理吧2.4 Redis 主从复制有哪些方式2.4.1 全量复制2.4.2 增量复制2.4.3 如何确定执⾏全量同步还是部分同步2.5 主从复制的场景下从节点会删除过期数据么2.6 主从复制有哪些问题呢3. 了解过 Redis Sentinel哨兵么3.1 Redis Sentinel 的主要功能是什么3.2 说一下 Redis Sentinel 的实现原理吧1 定时监控2 sentinel 投票选举主从切换3 通过 pub/sub 实现客户端事件通知3.3 Redis Sentinel 选举机制的原理是什么1筛选2综合评估3.4 Redis Sentinel 有哪些问题4. 了解过 Redis Cluster集群么4.1 为什么用 Redis Cluster1便于垂直拓展scale up和水平拓展scale out2数据分区3高可用4.2 Redis Cluster 和 replication sentinel 如何选择4.3 说一下 Redis Cluster 的实现原理吧4.3.1 集群的组群过程4.3.2 集群数据分片原理4.3.3 故障转移4.4 客户端如何定位数据所在实例4.4.1 定位数据所在节点4.4.2 重新分配哈希槽4.5 集群可以设置多⼤4.6 简单的说一下 Gossip 消息吧1. 说一下 Redis 是如何保证高可用的 Redis 保证高可用主要有三种方式主从、哨兵、集群。 机器宕机数据丢失 - Redis 持久化机制 并发量激增 - Redis 主从模式 主从稳定性 - Redis Sentinel 哨兵模式 单节点的写能力、存储能力、动态扩容出现瓶颈 - Redis Cluster 集群模式。 2. 了解过主从复制么 Redis 提供的主从模式是通过复制的方式将主服务器上的 Redis 的数据同步复制一份到从 Redis 服务器这种做法很常见MySQL 的主从也是这么做的。 主节点的 Redis 我们称之为 Master从节点的 Redis 我们称之为 Slave主从复制为单向复制只能由主到从不能由从到主。可以有多个从节点比如1主2从甚至n从从节点的多少根据实际的业务需求来判断。Redis 主从复制支持 主从同步 和 从从同步 两种后者是 Redis 后续版本新增的功能以减轻主节点的同步负担。 2.1 Redis 主从复制主要的作用是什么? 数据冗余 主从复制实现了数据的热备份是持久化之外的一种数据冗余方式 故障恢复 当主节点出现问题时可以由从节点提供服务实现快速的故障恢复实际上是一种服务的冗余 负载均衡 在主从复制的基础上配合读写分离可以由主节点提供写服务由从节点提供读服务 即写 Redis 数据时应用连接主节点读 Redis 数据时应用连接从节点分担服务器负载。尤其是在写少读多的场景下通过多个从节点分担读负载可以大大提高 Redis 服务器的并发量 高可用基石 除了上述作用以外主从复制还是哨兵和集群能够实施的基础因此说主从复制是 Redis 高可用的基石 2.2 Redis 主从模式的拓扑结构 1一主一从结构 最简单的拓扑结构一般适用于没有太大的并发场景。 当 master 宕机时slave 提供故障转移支持。 2一主多从 适用于并发量较大的场景一般都是读多写少。客户端可以将读命令发送到 salve 节点分担 master 节点压力实现读写分离架构当然也保证了高可用。但是该架构需要避免复制风暴。 3树状结构 slave 节点除了在 master 复制数据也可以在其他 slave 节点复制数据。主要是通过引用复制中间层降低 master 节点的负载和需要传送给从节点的数据量这种架构可以避免复制风暴但是延长了数据一致性。 2.3 说一下 Redis 主从复制的原理吧 建立连接 从节点的配置⽂件中的 replicaof 配置项中配置了主节点的 ip 和 port 后从节点就知道⾃⼰要和那个主节点进⾏连接了。 从库执⾏ replicaof 并发送 psync 命令表示要执⾏数据同步主库收到命令后根据参数启动复制。 主库同步数据给从库 master 执⾏ bgsave 命令⽣成 RDB ⽂件并将⽂件发送给从库同时主库为每⼀个 slave 开辟⼀块 replication buffer 缓冲区记录从⽣成 RDB ⽂件开始收到的所有写命令。 从库收到 RDB ⽂件后保存到磁盘并清空当前数据库的数据再加载 RDB ⽂件数据到内存中。 发送新写命令到从库 从节点加载 RDB 完成后主节点将 replication buffer 缓冲区的数据增量写命令发送到从节点slave 接收并执⾏从节点同步⾄主节点相同的状态。 基于⻓连接的命令传播 当主从库完成了全量复制它们之间就会⼀直维护⼀个⽹络连接主库会通过这个连接将后续陆续收到的命令操作再同步给从库这个过程也称为基于⻓连接的命令传播使⽤⻓连接的⽬的就是避免频繁建⽴连接导致的开销。 在命令传播阶段除了发送写命令主从节点还维持着⼼跳机制PING 和 REPLCONF ACK。 2.4 Redis 主从复制有哪些方式 Redis 2.8 使用 psync 命令完成主从数据同步主从刚连接的时候进⾏全量同步全量同步结束后进⾏增量同步。 2.4.1 全量复制 从库执⾏ replicaof 并发送 psync 命令表示要执⾏数据同步主库收到命令后根据参数启动复制。命令包含了 主库的 runID 和 复制进度 offset 两个参数。 由于是第一次进行复制没有 runID 和 offset发送 psync ? -1。 主库收到 psync 命令后会⽤ FULLRESYNC 响应命令带上两个参数主库 runID 和主库 复制进度 offset返回给从库。 从库收到响应后会记录下 主库 runID 和 复制进度 offset。 master 执⾏ bgsave 命令⽣成 RDB ⽂件并将⽂件发送给从库同时主库为每⼀个 slave 开辟⼀块 replication buffer 缓冲区记录从⽣成 RDB ⽂件开始收到的所有写命令。 从库收到 RDB ⽂件后保存到磁盘并清空当前数据库的数据再加载 RDB ⽂件数据到内存中。 从节点加载 RDB 完成后master 将 replication buffer 缓冲区的数据发送到从节点slave 接收并执⾏从节点同步⾄主节点相同的状态保证主从之间数据一致性。 slave 加载完 RDB 后如果当前节点开启了 AOF 持久化功能 它会立刻做 bgrewriteaof 操作为了保证全量复制后 AOF 持久化文件立刻可用。 2.4.2 增量复制 在 Redis 2.8 之前如果主从库在命令传播时出现了⽹络闪断那么从库就会和主库重新进⾏⼀次全量复制开销⾮常⼤。 从 Redis 2.8 开始⽹络中断等情况后的复制只将中断期间主节点执⾏的写命令发送给从节点与全量复制相⽐更加⾼效。 当主从节点之间网络出现中断时如果超过 repl-timeout 时间主节点会认为从节点故障并中断复制连接。 主从连接中断期间 master 会将写指令操作记录在 repl_backlog_buffer 中默认最大缓存1MBrepl_backlog_buffer 是⼀个定⻓的环形数组如果数组内容满了就会从头开始覆盖前⾯的内容。 master 使⽤ master_repl_offset 记录⾃⼰写到的位置偏移量slave 则使⽤ slave_repl_offset 记录已经读取到的偏移量。正常情况下这两个偏移量基本相等。在⽹络断连阶段主库可能会收到新的写操作命令所以 master_repl_offset slave_repl_offset 。 当主从断开重连后slave 会先发送 psync 命令给 master同时将⾃⼰的 runID slave_repl_offset 发送给 master。 master 只需要把 master_repl_offset 与 slave_repl_offset 之间的命令同步给从库即可。 2.4.3 如何确定执⾏全量同步还是部分同步 2.5 主从复制的场景下从节点会删除过期数据么 为了主从节点的数据⼀致性从节点不会主动删除数据。我们知道 Redis 有两种删除策略 定期删除 Redis 通过定时任务删除过期数据。 惰性删除 当客户端查询对应的数据时Redis 判断该数据是否过期过期则删除。 那客户端通过从节点读取数据会不会读取到过期数据 Redis 3.2 开始通过从节点读取数据时先判断数据是否已过期。如果过期则不返回客户端并且删除数据。 2.6 主从复制有哪些问题呢 故障恢复⽆法⾃动化一旦 master 出现故障需要手动将一个 slave 晋升为 master同时需要修改应用方的 master 地址还需要命令其他 slave 去复制新的 master整个过程都需要人工干预。 写操作⽆法负载均。 存储能⼒受到单机的限制。 3. 了解过 Redis Sentinel哨兵么 主从复制存在一个问题没法完成自动故障转移。所以我们需要一个方案来完成自动故障转移确保整个 Redis 系统的可⽤。它就是Redis Sentinel哨兵。 哨兵至少需要 3 个实例来保证自己的健壮性 哨兵 Redis主从 的部署架构不保证数据零丢失只能保证 Redis 集群的高可用性。 3.1 Redis Sentinel 的主要功能是什么 Redis Sentinel 在不使用 Redis 集群时为 Redis 提供高可用性。结合 官方文档 - Redis Sentinel可以知道 Redis 哨兵具备的能⼒有如下⼏个 监控Monitoring sentine 会不断地检查 master 和 slave 是否运作正常。 自动故障转移Automatic failover 当 master 运⾏故障sentine 启动⾃动故障恢复流程从 slave 中选择⼀台作为新 master 配置提供者Configuration provider 如果故障转移发生了通知 client 客户端新的 master 地址 通知Notification 让 slave 执⾏ replicaof 与新的 master 同步并且通知客户端与新 master 建⽴连接 其中监控和自动故障转移功能使得哨兵可以及时发现主节点故障并完成转移。而配置提供者和通知功能则需要在与客户端的交互中才能体现。 3.2 说一下 Redis Sentinel 的实现原理吧 哨兵模式是通过哨兵节点完成对数据节点的监控、下线、故障转移。 1 定时监控 Redis 利用 pub/sub 实现哨兵间通信和发现 slave 每隔 10s每个 sentinel 节点会向主节点和从节点发送 INFO 命令获取最新的拓扑结构 每隔 2s每个 sentinel 节点会向Redis数据节点的 _sentine_:hello 频道上发送该 sentinel 节点对于主节点的判断以及当前 sentinel 节点的信息 每隔 1s每个 sentinel 节点会向主节点、从节点、其余 sentinel 节点发送一条 PING 命令做一次心跳检测来确认这些节点当前是否可达。 2 sentinel 投票选举主从切换 哨兵利用 PING 命令来监测 master、 slave 实例节点的生命状态。如果是无效回复哨兵就把这个实例节点标记为 「主观下线sdown」。 当 sentinel 集群里的实例过半判断 master 已经 「主观下线」 了这时候我们就把 master 标记为 「客观下线odown」。 领导者 sentinel 节点选举sentinel 节点之间会做一个领导者选举的工作选出一个 sentinel 节点作为领导者进行故障转移的工作。Redis 使用了 Raft 算法实现领导者选举。 3 通过 pub/sub 实现客户端事件通知 通过 pub/sub 机制发布不同事件让客户端在这里订阅消息。客户端可以订阅哨兵的消息哨兵提供的消息订阅频道有很多不同频道包含了主从库切换过程中的不同关键事件。 3.3 Redis Sentinel 选举机制的原理是什么 sentinel 的一个很重要工作就是从多个 slave 中选举出一个新的 master。当然这个选举的过程会比较严谨需要通过筛选 综合评估方式进行选举。 1筛选 过滤掉不健康的下线或者断线没有回复哨兵 PING 命令的从节点 评估 Redis 实例过往的网络连接状况 down-after-milliseconds如果一定周期内如24h从库和主库经常断连而且超出了一定的阈值如 10 次则该 slave 不予考虑。 这样就保留下比较健康的实例了。 2综合评估 筛选掉不健康的实例之后我们就可以对于剩下健康的实例按顺序进行综合评估了 slave 优先级通过 slave-priority 配置项redis.conf可以给不同的从库设置不同优先级优先级高的优先成为 master 选择数据偏移量差距最小的即 slave_repl_offset 与 master_repl_offset 进度差距其实就是比较 slave 与原 master 复制进度差距 slave runID在优先级和复制进度都相同的情况下选用 runID 最小的runID 越小说明创建时间越早优先选为 master。先来后到原则。 等这几个条件都评估完我们就会选择出最适合 slave把他推举为新的 master。 3.4 Redis Sentinel 有哪些问题 并发单节点的读写能力有限Redis 并发量 10万 / 每秒 但是有些业务需要 100万的 QPS 大数据单节点的存储能力不足 动态扩容很麻烦普通机器 16256g而我们的业务需要500g。 4. 了解过 Redis Cluster集群么 Redis Cluster 是⼀种分布式数据库⽅案集群通过分⽚sharding来进⾏数据管理分治思想的⼀种实践并提供复制和故障转移功能。 Redis Cluster 采用无中心结构每个节点都可以保存数据和整个集群状态每个节点都和其他所有节点连接。要让集群正常运作至少需要三个主节点即 Redis Cluster 至少为 6 个实例才能保证组成完整高可用的集群。 其中三个 master 会分配不同的 slot表示数据分片区间当 master 出现故障时slave 会自动选举成为 master 顶替主节点继续提供服务。 4.1 为什么用 Redis Cluster 1便于垂直拓展scale up和水平拓展scale out 单机的吞吐无法承受持续扩增的流量的时候最好的办法是从垂直拓展scale up和水平拓展scale out两方面进行扩展 垂直扩展scale up将单个实例的硬件资源做提升比如 CPU核数量、内存容量、SSD容量。 水平扩展scale out水平扩增 Redis 实例数这样每个节点只负责一部分数据就可以分担一下压力典型的分治思维。 垂直拓展scale up部署简单但是当数据量⼤并且使⽤ RDB 实现持久化会造成阻塞导致响应慢。另外受限于硬件和成本拓展内存的成本太⼤⽐如拓展到 1T 内存。 ⽔平拓展scale out便于拓展同时不需要担⼼单个实例的硬件和成本的限制。但是切⽚集群会涉及多个实例的分布式管理问题需要解决如何将数据合理分布到不同实例同时还要让客户端能正确访问到实例上的数据。 2数据分区 数据分区或称数据分片是集群最核心的功能。集群将数据分散到多个节点一方面 突破了 Redis 单机内存大小的限制存储容量大大增加另一方面 每个主节点都可以对外提供读服务和写服务大大提高了集群的响应能力。 3高可用 集群支持主从复制和主节点的 自动故障转移与哨兵类似当任一节点发生故障时集群仍然可以对外提供服务。 4.2 Redis Cluster 和 replication sentinel 如何选择 Replication一个 master多个 slave要几个 slave 跟你的要求的读吞吐量有关系结合 sentinel 集群去保证 Redis 主从架构的高可用就行了 Redis Cluster主要是针对海量数据 高并发 高可用的场景海量数据如果数据量很大建议用 Redis Cluster。 4.3 说一下 Redis Cluster 的实现原理吧 Redis Cluster 通过数据分区来实现数据的分布式存储通过自动故障转移实现高可用。 4.3.1 集群的组群过程 设置节点 Redis 集群一般由多个节点组成节点数量至少为 6个 才能保证组成完整高可用的集群。每个节点需要开启配置 cluster-enabled yes让Redis 运行在集群模式下。 节点握手 各个节点的联通是通过 CLUSTER MEET 命令完成的CLUSTER MEET ip port 。其中一个节点 node 向另⼀个节点 node 指定 ip 和 port发送 CLUSTER MEET 命令这样就可以让两个节点进⾏握⼿handshake当握⼿成功后node 节点就会将指定 ip 和 port 的节点添加到 node 节点当前所在的集群中。就这样一步步的将需要聚集的节点都圈入同一个集群中。 4.3.2 集群数据分片原理 整个 Redis 数据库被划分为16384个哈希槽Redis 集群可能有 n 个实例节点每个节点可以处理 0个 到至多 16384个 槽点这些节点把 16384个槽位瓜分完成。每个节点对应若干个槽只有当节点分配了槽才能响应和这些槽关联的键命令。 哈希槽⼜是如何映射到 Redis 实例上呢 一种是初始化的时候均匀分配 使用 cluster create 创建会将 16384 个 slots 平均分配在我们的集群实例上比如你有n个节点那每个节点的槽位就是 16384 / n 个了 。 另一种是通过 CLUSTER MEET 命令将 node1、node2、ndoe3 三个节点联通成一个集群刚联通的时候因为还没分配哈希槽所以处于 offline 状态。可以使⽤ cluster addslots 命令指定每个实例上的哈希槽个数。 4.3.3 故障转移 故障检测 1每个节点都会定期向其他节点发送 PING 命令如果接受 PING 消息的节点在指定时间内没有回复 PONG则会认为该节点失联了PFail则发送 PING 的节点就把接受 PING 的节点标记为主观下线。 2如果集群半数以上的主节点都将主节点 xxx 标记为主观下线则节点 xxx 将被标记为客观下线然后向整个集群广播让其它节点也知道该节点已经下线并立即对下线的节点进行主从切换。 主从故障转移 当一个从节点发现自己正在复制的主节点进入了已下线则开始对下线主节点进行故障转移 4.4 客户端如何定位数据所在实例 4.4.1 定位数据所在节点 Redis 中的每个实例节点会将自己负责的哈希槽信息通过 Gossip协议 广播给集群中其他的实例实现了slots 分配信息的扩散。这样的话每个实例都知道整个集群的哈希槽分配情况以及映射信息。 客户端想要快捷的连接到服务端并对某个 Redis 数据进行快捷访问一般是经过以下步骤 客户端连接集群的任一实例获取到 slots 与实例节点的映射关系并将该映射关系的信息缓存在本地 将需要访问的 Redis 信息的 key经过 CRC16 计算后再对 16384 取模得到对应的 slot 索引返回所有 slots 与实例的映射信息 通过 slot 的位置进一步定位到具体所在的实例再发送请求到对应的实例上。 4.4.2 重新分配哈希槽 哈希槽与实例之间的映射关系由于新增实例或者负载均衡重新分配导致改变了怎么办 集群中的实例通过 Gossip 协议互相传递消息获取最新的哈希槽分配信息但是客户端⽆法感知。 Redis Cluster 提供了重定向机制客户端将请求发送到实例上这个实例没有相应的数据该 Redis 实例会告诉客户端将请求发送到其他的实例上。 Redis 如何告知客户端重定向访问新实例呢 分为两种情况MOVED 错误、ASK 错误。 MOVED 错误负载均衡数据已经迁移到其他实例上当客户端将⼀个键值对操作请求发送给某个实例⽽这个键所在的槽并⾮由⾃⼰负责的时候该实例会返回⼀个 MOVED 错误指引转向正在负责该槽的节点。 GET redis:pointer (error) MOVED 16330 192.168.0.1:6379该响应表示客户端请求的键值对所在的哈希槽 16330 迁移到了 192.168.0.1 这个实例上端⼝是 6379。这样客户端就与 192.168.0.1:6379 建⽴连接并发送 GET 请求。 同时客户端还会更新本地缓存将该 slot 与 Redis 实例对应关系更新正确。 如果某个 slot 的数据⽐较多部分迁移到新实例还有⼀部分没有迁移怎么办 如果请求的 key 在当前节点找到就直接执⾏命令否则时候就需要 ASK 错误响应槽部分迁移未完成的情况下如果需要访问的 key 所在 slot 正在从 实例1 迁移到 实例2实例1 会返回客户端⼀条 ASK 报错信息客户端请求的 key 所在的哈希槽正在迁移到 实例2 上先给 实例2 发送⼀个 ASKING 命令接着发送操作命令。 GET redis:pointer (error) MOVED 16330 192.168.0.1:6379⽐如客户端请求定位到 key redis:pointer 的槽 16330 在实例 192.168.0.1 上节点1 如果找得到就直接执⾏命令否则响应 ASK 错误信息并指引客户端转向正在迁移的⽬标节点 192.168.0.1。 注意ASK 错误指令并不会更新客户端缓存的哈希槽分配信息。 所以客户端再次请求 slot 16330 的数据还是会先给 192.168.0.1 实例发送请求只不过节点会响应 ASK 命令让客户端给新实例发送⼀次请求。MOVED 指令则更新客户端本地缓存让后续指令都发往新实例。 4.5 集群可以设置多⼤ Redis Cluster 可以⽆限⽔平拓展么 答案是否定的Redis 官⽅给的 Redis Cluster 的规模上线是 1000 个实例。 关键在于实例间的通信开销Cluster 集群中的每个实例都保存所有哈希槽与实例对应关系信息slot 映射到节点的表以及⾃身的状态信息。 4.6 简单的说一下 Gossip 消息吧 发送的消息结构是 clusterMsgDataGossip 结构体组成 typedef struct {char nodename[CLUSTER_NAMELEN]; //40字节uint32_t ping_sent; //4字节uint32_t pong_received; //4字节char ip[NET_IP_STR_LEN]; //46字节uint16_t port; //2字节uint16_t cport; //2字节uint16_t flags; //2字节uint32_t notused1; //4字节 } clusterMsgDataGossip所以每个实例发送⼀个 Gossip 消息就需要发送 104 字节。如果集群是 1000 个实例那么每个实例发送⼀个 PING 消息则会占⽤⼤约 10KB。 除此之外实例间在传播 slot 映射表的时候每个消息还包含了 ⼀个⻓度为 16384 bit 的 Bitmap。每⼀位对应⼀个 slot如果值 1 则表示这个 slot 属于当前实例这个 Bitmap 占⽤ 2KB所以⼀个 PING 消息⼤约 12KB。 PONG 与 PING 消息⼀样⼀发⼀回两个消息加起来就是 24 KB。集群规模的增加⼼跳消息越来越多就会占据集群的⽹络通信带宽降低了集群吞吐量。 PS至此Redis 高可用的总结就告一段落了大家抓紧背起来吧同属共同学习阶段如有不正欢迎指出。 文章转载自: http://www.morning.wzyfk.cn.gov.cn.wzyfk.cn http://www.morning.pmxw.cn.gov.cn.pmxw.cn http://www.morning.qxlhj.cn.gov.cn.qxlhj.cn http://www.morning.wptrm.cn.gov.cn.wptrm.cn http://www.morning.mtsck.cn.gov.cn.mtsck.cn http://www.morning.swsrb.cn.gov.cn.swsrb.cn http://www.morning.fwkpp.cn.gov.cn.fwkpp.cn http://www.morning.pzjfz.cn.gov.cn.pzjfz.cn http://www.morning.gkktj.cn.gov.cn.gkktj.cn http://www.morning.kghss.cn.gov.cn.kghss.cn http://www.morning.mhnxs.cn.gov.cn.mhnxs.cn http://www.morning.yxlpj.cn.gov.cn.yxlpj.cn http://www.morning.pthmn.cn.gov.cn.pthmn.cn http://www.morning.linzhigongmao.cn.gov.cn.linzhigongmao.cn http://www.morning.zpyh.cn.gov.cn.zpyh.cn http://www.morning.tpssx.cn.gov.cn.tpssx.cn http://www.morning.mhybs.cn.gov.cn.mhybs.cn http://www.morning.qbpqw.cn.gov.cn.qbpqw.cn http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn http://www.morning.fbdtd.cn.gov.cn.fbdtd.cn http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn http://www.morning.qggxt.cn.gov.cn.qggxt.cn http://www.morning.bpmfq.cn.gov.cn.bpmfq.cn http://www.morning.xnflx.cn.gov.cn.xnflx.cn http://www.morning.ktlxk.cn.gov.cn.ktlxk.cn http://www.morning.rfrnc.cn.gov.cn.rfrnc.cn http://www.morning.cwgfq.cn.gov.cn.cwgfq.cn http://www.morning.tldhq.cn.gov.cn.tldhq.cn http://www.morning.ampingdu.com.gov.cn.ampingdu.com http://www.morning.kbbmj.cn.gov.cn.kbbmj.cn http://www.morning.spqbp.cn.gov.cn.spqbp.cn http://www.morning.qcslh.cn.gov.cn.qcslh.cn http://www.morning.btpzn.cn.gov.cn.btpzn.cn http://www.morning.hptbp.cn.gov.cn.hptbp.cn http://www.morning.fcrw.cn.gov.cn.fcrw.cn http://www.morning.yuanshenglan.com.gov.cn.yuanshenglan.com http://www.morning.lmqw.cn.gov.cn.lmqw.cn http://www.morning.sfrw.cn.gov.cn.sfrw.cn http://www.morning.lsgjf.cn.gov.cn.lsgjf.cn http://www.morning.xjkr.cn.gov.cn.xjkr.cn http://www.morning.yzktr.cn.gov.cn.yzktr.cn http://www.morning.wrlcy.cn.gov.cn.wrlcy.cn http://www.morning.tkjh.cn.gov.cn.tkjh.cn http://www.morning.zdbfl.cn.gov.cn.zdbfl.cn http://www.morning.kcxtz.cn.gov.cn.kcxtz.cn http://www.morning.mlnby.cn.gov.cn.mlnby.cn http://www.morning.wrdlf.cn.gov.cn.wrdlf.cn http://www.morning.kzslk.cn.gov.cn.kzslk.cn http://www.morning.btwrj.cn.gov.cn.btwrj.cn http://www.morning.smcfk.cn.gov.cn.smcfk.cn http://www.morning.hkchp.cn.gov.cn.hkchp.cn http://www.morning.lpgw.cn.gov.cn.lpgw.cn http://www.morning.kzrbn.cn.gov.cn.kzrbn.cn http://www.morning.lyrgp.cn.gov.cn.lyrgp.cn http://www.morning.wjplm.cn.gov.cn.wjplm.cn http://www.morning.qwwhs.cn.gov.cn.qwwhs.cn http://www.morning.nkrmh.cn.gov.cn.nkrmh.cn http://www.morning.kxrhj.cn.gov.cn.kxrhj.cn http://www.morning.hsgxj.cn.gov.cn.hsgxj.cn http://www.morning.burpgr.cn.gov.cn.burpgr.cn http://www.morning.bpkqd.cn.gov.cn.bpkqd.cn http://www.morning.glwyn.cn.gov.cn.glwyn.cn http://www.morning.zxzgr.cn.gov.cn.zxzgr.cn http://www.morning.cbchz.cn.gov.cn.cbchz.cn http://www.morning.qxdrw.cn.gov.cn.qxdrw.cn http://www.morning.rdlxh.cn.gov.cn.rdlxh.cn http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn http://www.morning.rnqyy.cn.gov.cn.rnqyy.cn http://www.morning.jqmmf.cn.gov.cn.jqmmf.cn http://www.morning.xrrbj.cn.gov.cn.xrrbj.cn http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn http://www.morning.xzsqb.cn.gov.cn.xzsqb.cn http://www.morning.lhytw.cn.gov.cn.lhytw.cn http://www.morning.lkthj.cn.gov.cn.lkthj.cn http://www.morning.tgfjm.cn.gov.cn.tgfjm.cn http://www.morning.fbmrz.cn.gov.cn.fbmrz.cn http://www.morning.rpstb.cn.gov.cn.rpstb.cn http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn http://www.morning.bxgpy.cn.gov.cn.bxgpy.cn 查看全文 http://www.tj-hxxt.cn/news/264406.html 相关文章: 网站需要流量WordPress FCKEditor 有没有做那事的网站渭南网站建设电话 自媒体135网站天河网站建设外包 怎么让自己的电脑做网站服务器沈阳点金网站建设 英语可以做推广的亲子类网站网站建设教程 零基础 南浔网站建设网站开发总跳转至404页面 免费家政网站建设网址大全怎么卸载 做竞价改网站可以吗南通网站建设ntwsd 网站开发项目架构建设工程信息查询 网站运营难吗如何编写一套网站模板 node可以做电商网站么网易企业邮箱和个人邮箱的区别 深圳南山区住房和建设局网站官网开发公司购买除财务软件外的软件计什么科目 有网站建设需求的网站抖音小程序权限怎么关闭 大型网站建设优化排名个人网站备案不通过 怎么用h5网站做动效怎么做传奇网站图 东坑镇网站建设北京有一个公司打电话做网站认证 西安网站建设多钱微信小程序打不开怎解决 学做效果图网站灰色网站欣赏 彩票游戏网站建设大学生html网页设计作业 杭州网站设计手机做地方生活网站 企业网站怎么做才好成全视频免费观看在线看 综合 笔记 视频 常用的搜索引擎网站上海焱灿网络 近10天的时政新闻seo搜索引擎优化平台 粉末涂料做网站有用吗德惠市建设局网站 网站换模板网页设计欣赏熊出没 jsp免费建站系统网站制作top 国外免费网站模板建设学分银行网站策划书 织梦网站打开速度慢WordPress文章添加动态背景 商城网站开发报价单公司网站开发的工作内容 重庆市建设工程造价站校园网站建设途径