当前位置: 首页 > news >正文 北京城乡建设集团网站广西网站建设教程 news 2025/10/22 9:36:28 北京城乡建设集团网站,广西网站建设教程,怎么做自己的店铺网站,建设局下属单位Kafka简介架构设计Kafka的架构设计关键概念Kafka的架构设计关键机制 Partition介绍Partition工作机制 应用场景ACK机制介绍ACK机制原理ACK机制对性能的影响ACK控制粒度Kafka分区数对集群性能影响调整分区优化集群性能拓展Kafka数据全局有序 Kafka简介 Kafka是由Apache软件基金… Kafka简介架构设计Kafka的架构设计关键概念Kafka的架构设计关键机制 Partition介绍Partition工作机制 应用场景ACK机制介绍ACK机制原理ACK机制对性能的影响ACK控制粒度Kafka分区数对集群性能影响调整分区优化集群性能拓展Kafka数据全局有序 Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台由Scala和Java编写。它是一种高吞吐量的分布式发布订阅消息系统可以处理消费者在网站中的所有动作流数据。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统但又要求实时处理的限制这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理也是为了通过集群来提供实时的消息。 Kafka中的消息被归类为不同的主题每个主题有若干个分区。当有新消息时它们会以追加的形式写入分区。由于主题可能有多个分区因此在整个主题范围内无法保证消息的顺序。分区可以分布在不同的服务器上实现数据冗余和伸缩。消费者可以订阅一个或多个主题并保存消息以进行处理。 Kafka在处理大型数据流方面表现出色它可以存储和持续处理大型的数据流。它类似于消息中间件但与传统的消息中间件有很大的差异。传统的消息中间件只会传递数据而Kafka的流处理能力可以让我们高效地处理数据。 Kafka是一个强大的开源流处理平台可以用于处理大规模的数据流并支持实时数据处理。它在现代网络中的许多社会功能中发挥着关键作用。 架构设计 Kafka的架构设计关键概念 生产者Producer 负责创建消息然后投递到Kafka集群中。生产者需要指定消息所属的主题同时确定好发往哪个分区。消费者Consumer 根据它所订阅的主题以及所属的消费组决定从哪些分区中拉取消息。Broker 消息服务器可水平扩展负责分区管理、消息的持久化、故障自动转移等。一个集群由多个Broker组成一个Broker可以容纳多个主题。分区Partition 为了实现扩展性一个非常大的主题可以分布到多个Broker上每个Partition是一个有序的队列。消费组Consumer Group 这是Kafka用来实现一个Topic消息的广播发给所有的Consumer和单播发给任意一个Consumer的手段。一个Topic可以有多个Consumer Group。Zookeeper 负责集群的元数据管理等功能比如集群中有哪些broker节点以及Topic每个Topic又有哪些Partition等。主题Topic Topic是Kafka中的一个核心概念它代表了一类消息可以被认为是消息被发送到的地方。在Kafka中每个Topic都由多个Partition组成Partition是不可修改的有序消息序列也可以说是消息日志。每个Partition都有自己专属的Partition号通常是从0开始的用户对Partition唯一的操作就是在消息序列尾部追加写入消息。Partition上的每条消息都会被分配一个唯一的序列号该序列号被称为位移offset。通常可以使用Topic来区分实际业务Kafka中的Topic通常会被多个消费者订阅因此出于性能考虑kafka并不是Topic-meaaage的两极结构而是采用了Topic-partition-message的三级结构来分散负载。主节点Leader 在Kafka中每个Topic的Partition都有一个Leader和一个或多个Follower。Leader是处理所有读写请求的Partition而Follower则复制Leader的数据以保持与Leader的同步。每个Partition都有一个Leader负责处理该Partition的所有读写请求。Kafka通过选举机制来确定每个Partition的Leader。在Kafka集群中每个Broker都会参与Leader选举过程。当一个Broker出现故障时Kafka会自动进行Leader选举以确保数据的高可用性。选举过程中Kafka会选择一个可用的Broker作为新的Leader以确保集群的正常运行。需要注意的是在Kafka中每个Partition只能有一个Leader但可以有多个Follower。这种设计确保了数据的一致性和可靠性因为所有的读写请求都必须通过Leader来处理。同时Follower可以复制Leader的数据并在Leader出现故障时接管其角色从而确保数据的高可用性。从节点Follower Follower Partition是Kafka中的一种特殊类型的Partition它与Leader Partition一起构成了Kafka的分布式存储系统。在Kafka中每个Partition都有一个Leader和若干个Follower。Leader是处理所有读写请求的Partition而Follower则实时从Leader中同步数据保持和Leader数据的同步。当Leader发生故障时某个Follower会成为新的Leader。Follower Partition的主要作用是备份数据和扩展集群规模。在正常状态下Follower Partition会从Leader Partition中同步数据并保持与Leader Partition的数据一致性。当Leader Partition发生故障时Follower Partition会成为新的Leader继续为消费者提供服务。此外当集群规模需要扩展时可以增加Follower Partition的数量来提高集群的存储能力和吞吐量。 Kafka的架构设计关键机制 消息持久化 Kafka支持消息持久化消费端为拉模型来拉取数据消费状态和订阅关系有客户端负责维护消息消费完后不会立即删除会保留历史消息。分布式机制 Kafka的分布式机制包括生产者、消费者和代理三部分。生产者可以发送消息至Kafka集群以供后续的消费者进行消费。消费者可以从Kafka集群中读取数据并对其进行响应的操作。代理是Kafka集群的关键组件之一它主要负责消息的存储和转发并通过分布式机制保障Kafka集群的故障恢复能力和高可用性。高度可扩展的架构设计 Kafka基于高度可扩展的架构设计支持任意数量的生产者和消费者可以针对不同领域的数据模型、处理技术等进行选择和组合。消息流处理 Kafka提供了一个流处理平台允许应用程序充当流处理器stream processor从一个或者多个主题获取输入流并生产一个输出流到一个或多个主题能够有效的变化输入流为输出流。连接器API Kafka提供了连接器API允许构建和运行可重用的生产者或者消费者能够把kafka主题连接到现有的应用程序或数据系统。例如一个连接到关系数据库的连接器可能会获取每个表的变化。 Kafka的架构设计涵盖了多个关键部分这些部分协同工作使得Kafka成为一个高效、可扩展、可靠的分布式消息系统。 Partition介绍 Kafka的Partition是一个逻辑概念是消息在Kafka中的存储单位也是消息被分发的单位。每个Topic被分成多个Partition分布在不同的Broker服务器上。 Partition有几个重要的特性 Partition中的消息是有序的同一个Partition内的消息会按照发送的顺序进行存储。Partition是Kafka中消息存储的最小单位掌握着一个Topic的部分数据。每个Partition都是一个单独的log文件每条记录都以追加的形式写入。Kafka集群中的每个Partition都有且只有一个Leader和零个或多个Follower。在正常状态下Producer和Consumer只与Leader交互所有的读写请求都必须通过Leader来处理。当Leader发生故障时某个Follower会成为新的Leader。Kafka的负载均衡和扩展性很大程度上取决于Partition的数量和分布。为了实现负载均衡建议将Partition的数量设置为Broker的倍数。Kafka Producer会将消息发送到指定的Topic的Partition而Consumer则会从指定的Partition中消费消息。 Partition工作机制 Kafka的Partition是Kafka中消息存储和分发的单位主要负责消息的存储和管理。以下是Partition在Kafka中的工作方式 创建Partition 在创建Topic时可以指定Partition的数量。一般来说Partition的数量通常设为Broker节点数的整数倍这样可以保证分区数据均匀地分配到集群中并最大化的提升并行读写效率。生产者写入Partition 生产者在向某个Topic发送消息时会根据分配策略将消息发送到对应的Partition。分配策略可以是基于Partition key值进行哈希决定写入哪个Partition也可以是采用轮询的方式均匀地写入到各个Partition。需要注意的是如果指定了Partition key值可能会出现热点数据问题。消费者消费Partition 消费者订阅消费一个Topic时会从该Topic的所有Partition中消费消息。每个Partition的消费组只能由一个消费者组中的一个消费者进行消费因此可以说Partition是消费并行度的基本单位。从消费者的角度来看订阅消费了一个Topic也就订阅了该Topic的所有Partition。Partition的复制和故障转移 Kafka的每个Partition都有一个Leader和零个或多个Follower。在正常状态下Producer和Consumer只与Leader交互所有的读写请求都必须通过Leader来处理。当Leader发生故障时某个Follower会成为新的Leader。 Kafka的Partition是Kafka中实现负载均衡、扩展性和可靠性的关键组件之一。通过合理的设置和调整Partition的数量和分布可以提高Kafka集群的性能和可靠性。 应用场景 实时数据流处理 Kafka可以作为数据流处理的中间件用于接收和传输大量的实时数据。它可以接收来自不同数据源的数据并将其传输到不同的数据处理系统如Apache Storm、Apache Flink等。通过使用Kafka可以实现高吞吐量和低延迟的实时数据处理。日志收集与分析 Kafka可以用于集中式的日志收集和分析。许多应用程序和系统会生成大量的日志数据使用Kafka可以将这些日志数据集中存储并提供给日志分析工具进行实时或离线的分析。通过将日志数据发送到Kafka主题中可以实现高效的日志收集和处理。消息系统 Kafka可以作为消息系统的一种替代方案。它具有更好的吞吐量、内置分区、副本和故障转移等特性有利于处理大规模的消息。与传统的消息系统如ActiveMQ或RabbitMQ相比Kafka在处理低延迟、高吞吐量的场景下更具优势。网站活动追踪 Kafka原本的使用场景之一是用户的活动追踪。网站的活动如网页浏览、搜索或其他用户操作信息可以发布到不同的主题中心这些消息可实时处理、实时监测也可加载到Hadoop或离线处理数据仓库。每个用户页面视图都会产生非常高的数据量Kafka能够高效地处理这些数据。指标监测 Kafka也常用于监测数据。分布式应用程序生成的统计数据可以在Kafka中进行集中聚合以便实时监测和分析。日志聚合 Kafka可以作为日志聚合的解决方案。通过将日志数据发送到Kafka主题中可以实现高效的日志收集和处理。事件采集 Kafka可以用于事件采集将各种事件数据如用户行为事件、系统事件等采集到Kafka主题中以便后续处理和分析。 Kafka的应用场景非常广泛包括但不限于实时数据处理、日志收集与分析、消息系统、网站活动追踪、指标监测、日志聚合和事件采集等。 ACK机制介绍 在Kafka中ACKacknowledgment机制用于确认生产者发送的消息是否成功被Kafka服务器接收并存储。这是确保消息可靠性的重要机制。 Kafka提供了三种不同级别的消息确认机制可以根据需求进行选择 ACK 级别 0 生产者发送消息后不会等待任何服务器的确认直接认为消息发送成功。这种方式下可能会出现消息丢失的情况。ACK 级别 1 生产者发送消息后会等待 leader 副本partition 的 leader确认消息后认为消息发送成功。这种方式下如果 leader 副本在确认消息前宕机可能会导致消息丢失。ACK 级别 -1 或 all 生产者发送消息后会等待所有的副本包括 leader 和 follower都确认消息后认为消息发送成功。这种方式下消息的可靠性最高但是会对性能产生一定的影响。 选择合适的 ACK 级别取决于对消息可靠性和性能的要求。如果对消息的可靠性要求较高可以选择 -1 或 all 级别但需要考虑性能损耗。如果对消息的可靠性要求不高可以选择 1 或 0 级别以提高性能。 总的来说ACK机制的优点是可以确保消息的可靠性通过等待确认生产者可以知道消息是否成功处理从而保证数据的一致性。然而ACK机制也存在一些缺点例如延迟和服务器负载问题。需要根据具体的应用场景和需求来选择合适的ACK级别。 除了ACK级别外Kafka还通过以下方式保证ACK机制的可靠性 数据复制 Kafka通过将数据复制到多个副本partition中确保数据的安全性和可靠性。即使某个副本出现问题其他副本仍然可以正常工作。消息持久化 Kafka将消息持久化到磁盘上确保即使在服务器崩溃的情况下消息也不会丢失。数据校验 Kafka在存储和传输数据时使用校验和checksum等技术来检测数据完整性确保数据的正确性和一致性。事务支持 Kafka支持事务可以在生产者发送消息时保证消息的可靠性。事务可以确保在写入数据之前进行验证和提交避免因未提交的事务导致的数据不一致问题。参数配置 Kafka提供了许多参数来配置ACK机制的可靠性例如min.insync.replicas、unclean.leader.election.enable等参数。这些参数可以用来控制消息的确认机制和副本同步等行为以确保数据的可靠性和一致性。 Kafka通过多种机制和参数配置来保证ACK机制的可靠性。在实际应用中需要根据具体的应用场景和需求来选择合适的ACK级别和配置参数以实现可靠的消息传递。 ACK机制原理 在Kafka中ACK机制的原理是确认生产者发送的消息是否成功被Kafka服务器接收并存储。当生产者发送消息后会向Kafka的代理服务器发送一个ACKAcknowledgement确认消息已经被发送。Kafka代理服务器在收到ACK后会将该消息标记为已接收然后从分区中删除。如果Kafka代理服务器在一定时间内没有收到ACK确认消息则会将该消息重新发送给其他生产者以确保消息的可靠性传递。 ACK机制的可靠性取决于选择的ACK级别。ACK级别为0时生产者认为消息发送成功无需等待服务器的确认可能会出现消息丢失的情况。ACK级别为1时生产者需要等待leader副本的确认如果leader副本在确认消息前宕机可能会导致消息丢失。ACK级别为-1或all时生产者需要等待所有的副本包括leader和follower都确认消息后才认为消息发送成功消息的可靠性最高但会对性能产生一定的影响。 Kafka中的ACK机制原理是生产者发送消息后向Kafka代理服务器发送ACK确认消息已经被发送代理服务器收到ACK后将消息标记为已接收并删除。通过选择合适的ACK级别和配置参数可以确保消息的可靠性和一致性。 ACK机制对性能的影响 首先ACK机制影响吞吐量。ACK级别越高吞吐量可能越低。这是因为当生产者发送消息并等待确认时必须等待所有相关副本包括leader和follower都确认消息这会增加延迟。相反如果ACK级别较低生产者可能不必等待所有副本的确认从而提高了吞吐量。 其次ACK机制影响消息的可靠性。较高的ACK级别可以提高消息的可靠性因为消息被更多的副本确认。然而这也可能增加复制延迟和降低吞吐量。相反较低的ACK级别可能会导致较低的可靠性和较高的消息丢失风险。 因此在选择ACK级别时需要权衡吞吐量和可靠性。对于需要高吞吐量的应用可以选择较低的ACK级别对于需要高可靠性的应用可以选择较高的ACK级别。 此外Kafka的ACK机制还影响集群的延迟和持久性。例如ACK0时提供了最低的延迟但持久性最弱当服务器发生故障时很可能发生数据丢失。ACK1时提供了较低的延迟以及较好的持久性但是如果leader死亡而follower尚未复制数据数据就会丢失。ACK-1时leader收到所有消息且follower同步完数据才发送下一条数据这提供了最高的可靠性但也可能增加延迟。 因此在选择ACK策略时需要根据应用的需求和集群的特性进行权衡。 ACK机制对Kafka集群性能的影响主要涉及以下几个方面 延迟 ACK机制会增加消息传递的延迟。当生产者发送消息后必须等待确认才能继续发送下一条消息。等待确认的时间取决于网络延迟、副本数量和ACK级别等因素。如果延迟较高可能会影响生产者的发送速率和消费者的消费速率从而降低集群的整体性能。 吞吐量 ACK机制会影响Kafka集群的吞吐量。吞吐量是指集群在单位时间内处理的消息数量。当ACK级别较高时生产者必须等待更多的确认这会降低生产者的发送速率从而影响集群的吞吐量。此外如果集群中的副本数量较多也会增加确认的延迟进一步影响吞吐量。 CPU和内存使用 ACK机制需要额外的CPU和内存资源来处理确认消息。当集群中的消息数量较多时处理确认消息的开销也会相应增加。这可能会影响其他任务的性能例如消费者消费消息的速度。 数据一致性 ACK机制是确保数据一致性的重要手段。当生产者发送消息后如果某个副本未能成功接收消息可能会导致数据不一致。通过等待所有相关副本的确认可以确保数据的一致性。但是这也可能增加延迟和降低吞吐量。 可靠性 ACK机制可以提高消息的可靠性。当生产者发送消息并收到确认时可以认为消息已经被成功接收并存储。这可以避免消息丢失的情况提高系统的可靠性。 需要注意的是在选择ACK策略时需要综合考虑应用的需求和集群的特性权衡延迟、吞吐量、CPU和内存使用、数据一致性和可靠性等因素。 ACK控制粒度 Kafka中的ACK控制粒度是指生产者在发送消息时需要等待确认的副本数量。Kafka提供了三种不同的ACK控制粒度 ACK_roj原子性确认 这种控制粒度要求消息被所有的副本都接收后才能发送下一条消息可以保证原子性操作。但是这种控制粒度会增加延迟降低吞吐量适用于对数据一致性要求较高的场景。ACK_one领导者确认 这种控制粒度要求消息被领导者副本接收后就可以发送下一条消息可以减少延迟提高吞吐量。但是这种控制粒度不能保证数据一致性适用于对数据一致性要求不高的场景。ACK_all全部副本确认这种控制粒度要求消息被所有的副本都接收后才能发送下一条消息可以保证数据一致性。但是这种控制粒度会增加延迟降低吞吐量适用于对数据一致性要求较高的场景。 Kafka客户端可以根据需要选择不同的ACK控制粒度。需要注意的是不同的ACK控制粒度会对集群的性能和可靠性产生不同的影响因此需要根据应用的需求和集群的特性进行选择。 Kafka分区数对集群性能影响 Kafka中的分区数对集群性能有显著影响主要表现在以下几个方面 吞吐量 增加分区数可以增加Kafka集群的吞吐量。每个分区可以并行处理消息因此更多的分区意味着更高的并行度从而提高吞吐量。但是过多的分区数也可能导致资源竞争和开销增加从而降低性能。 延迟 分区数对消息传递的延迟也有影响。较少的分区数可能会导致消息在某个分区上积压从而增加延迟。增加分区数可以分散消息负载减少单个分区的压力降低延迟。但是过多的分区数也会增加消息在多个分区之间的传播延迟。 负载均衡 分区数会影响Kafka集群的负载均衡。如果分区数过少某些broker可能会成为瓶颈导致负载不均衡。适当增加分区数可以平衡负载使消息更均匀地分布在各个broker上。但是过多的分区数也可能导致过于复杂的负载均衡策略增加管理和维护的难度。 存储和I/O 每个分区都需要在磁盘上存储数据日志和索引文件。因此分区数会增加存储需求和I/O操作。过多的分区数可能会导致磁盘空间不足和I/O性能下降从而影响集群的整体性能。 资源消耗 每个分区都需要在内存中维护缓存和其他相关数据结构。因此随着分区数的增加内存消耗也会相应增加。这可能会对集群的资源产生压力降低性能。 综上所述选择合适的分区数对于优化Kafka集群的性能至关重要。需要根据应用的需求、集群的规模和硬件资源等因素进行综合考虑和调整。 调整分区优化集群性能 要调整Kafka集群的分区数以优化性能可以采取以下措施 了解业务需求首先需要了解业务需求和数据量。考虑主题的数据量、消息生产者和消费者的数量以及消息处理的延迟等因素以确定合适的分区数。 调整副本数副本数是Kafka保证数据可靠性和容错性的重要手段。可以根据需要调整副本数以提高数据可靠性和容错性。但是过多的副本数会增加存储和网络开销因此需要根据实际情况进行权衡。 调整批处理大小批处理是Kafka提高消息处理效率的重要手段。可以调整批处理的大小以适应不同的业务需求和硬件资源。较大的批处理可以减少网络传输次数提高处理效率但可能会增加内存消耗和延迟。 调整主题和分区策略在设计Kafka主题和分区时需要考虑主题的数据量、消息生产者和消费者的数量以及消息处理的延迟等因素以制定合适的策略。例如可以将经常被一起消费的消息放在同一个分区以减少跨分区的消息处理延迟。 使用SSD存储使用SSD存储可以显著提高Kafka的性能因为SSD存储比传统的机械硬盘更快能够更快地读写数据。使用SSD可以减少磁盘I/O瓶颈提高Kafka集群的整体性能。 使用网络加速器使用网络加速器可以减少网络延迟提高数据传输的速度和可靠性从而提高Kafka的性能和可靠性。例如使用InfiniBand等高速网络技术可以显著提高Kafka集群的性能。 定期清理过期数据定期清理过期数据可以减少磁盘空间的占用从而提高Kafka的性能和可靠性。可以根据业务需求定期清理过期数据释放磁盘空间提高Kafka集群的整体性能。 调整Kafka集群的分区数需要综合考虑业务需求、硬件资源、网络环境等因素并进行测试和优化。通过合理的分区数配置可以提高Kafka集群的性能和可靠性满足业务需求。 拓展 Kafka数据全局有序 Kafka的数据不是全局有序的它只能保证单个Partition内的数据有序。因为Kafka的设计中允许多个生产者并行地向同一个主题写入消息所以无法保证全局有序性。 如果需要全局有序可以将所有消息发送到同一个Partition或者使用一些外部的手段进行排序。但是这样会降低并行度和吞吐量需要根据实际需求进行权衡。 文章转载自: http://www.morning.clndl.cn.gov.cn.clndl.cn http://www.morning.divocn.com.gov.cn.divocn.com http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn http://www.morning.krkwp.cn.gov.cn.krkwp.cn http://www.morning.ryxyz.cn.gov.cn.ryxyz.cn http://www.morning.gypcr.cn.gov.cn.gypcr.cn http://www.morning.wlsrd.cn.gov.cn.wlsrd.cn http://www.morning.c7495.cn.gov.cn.c7495.cn http://www.morning.kmkpm.cn.gov.cn.kmkpm.cn http://www.morning.fgsqz.cn.gov.cn.fgsqz.cn http://www.morning.bfgpn.cn.gov.cn.bfgpn.cn http://www.morning.zhmgcreativeeducation.cn.gov.cn.zhmgcreativeeducation.cn http://www.morning.mhcys.cn.gov.cn.mhcys.cn http://www.morning.mdwb.cn.gov.cn.mdwb.cn http://www.morning.jfmyt.cn.gov.cn.jfmyt.cn http://www.morning.lsmnn.cn.gov.cn.lsmnn.cn http://www.morning.ngcth.cn.gov.cn.ngcth.cn http://www.morning.dkzrs.cn.gov.cn.dkzrs.cn http://www.morning.bzpwh.cn.gov.cn.bzpwh.cn http://www.morning.wqmyh.cn.gov.cn.wqmyh.cn http://www.morning.zhnyj.cn.gov.cn.zhnyj.cn http://www.morning.rhph.cn.gov.cn.rhph.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.pqcbx.cn.gov.cn.pqcbx.cn http://www.morning.tcxk.cn.gov.cn.tcxk.cn http://www.morning.lpgw.cn.gov.cn.lpgw.cn http://www.morning.brlcj.cn.gov.cn.brlcj.cn http://www.morning.tjndb.cn.gov.cn.tjndb.cn http://www.morning.nlkm.cn.gov.cn.nlkm.cn http://www.morning.qxjck.cn.gov.cn.qxjck.cn http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn http://www.morning.czgtt.cn.gov.cn.czgtt.cn http://www.morning.chtnr.cn.gov.cn.chtnr.cn http://www.morning.jybj.cn.gov.cn.jybj.cn http://www.morning.zxzgr.cn.gov.cn.zxzgr.cn http://www.morning.dlmqn.cn.gov.cn.dlmqn.cn http://www.morning.rfxw.cn.gov.cn.rfxw.cn http://www.morning.jzgxp.cn.gov.cn.jzgxp.cn http://www.morning.nlgmr.cn.gov.cn.nlgmr.cn http://www.morning.yqzyp.cn.gov.cn.yqzyp.cn http://www.morning.cwgt.cn.gov.cn.cwgt.cn http://www.morning.gxklx.cn.gov.cn.gxklx.cn http://www.morning.dytqf.cn.gov.cn.dytqf.cn http://www.morning.jqpyq.cn.gov.cn.jqpyq.cn http://www.morning.wkgyz.cn.gov.cn.wkgyz.cn http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn http://www.morning.wqcbr.cn.gov.cn.wqcbr.cn http://www.morning.qieistand.com.gov.cn.qieistand.com http://www.morning.wmlby.cn.gov.cn.wmlby.cn http://www.morning.mlpch.cn.gov.cn.mlpch.cn http://www.morning.rtqyy.cn.gov.cn.rtqyy.cn http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn http://www.morning.ztqj.cn.gov.cn.ztqj.cn http://www.morning.rjrh.cn.gov.cn.rjrh.cn http://www.morning.knnhd.cn.gov.cn.knnhd.cn http://www.morning.mhnrx.cn.gov.cn.mhnrx.cn http://www.morning.dfckx.cn.gov.cn.dfckx.cn http://www.morning.tjndb.cn.gov.cn.tjndb.cn http://www.morning.rckmz.cn.gov.cn.rckmz.cn http://www.morning.wnmdt.cn.gov.cn.wnmdt.cn http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn http://www.morning.prznc.cn.gov.cn.prznc.cn http://www.morning.rdxnt.cn.gov.cn.rdxnt.cn http://www.morning.tfwr.cn.gov.cn.tfwr.cn http://www.morning.stflb.cn.gov.cn.stflb.cn http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn http://www.morning.lyhrg.cn.gov.cn.lyhrg.cn http://www.morning.jmtrq.cn.gov.cn.jmtrq.cn http://www.morning.gthgf.cn.gov.cn.gthgf.cn http://www.morning.rjrnx.cn.gov.cn.rjrnx.cn http://www.morning.wqbbc.cn.gov.cn.wqbbc.cn http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn http://www.morning.nkpls.cn.gov.cn.nkpls.cn http://www.morning.rpstb.cn.gov.cn.rpstb.cn http://www.morning.mxdhy.cn.gov.cn.mxdhy.cn http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn http://www.morning.cgmzt.cn.gov.cn.cgmzt.cn http://www.morning.nyqxy.cn.gov.cn.nyqxy.cn http://www.morning.qphdp.cn.gov.cn.qphdp.cn http://www.morning.dtrzw.cn.gov.cn.dtrzw.cn 查看全文 http://www.tj-hxxt.cn/news/239327.html 相关文章: 企业网站建设基本流程图没有文字的网站怎么优化 合肥模板网站建设软件网站开发支持多个币种 自助个人网站注册建筑企业管理软件排名 网站建设预算和流程介绍如何建设好网站 如何做影视剧网站网站设计的论坛 织梦网站产品如何进入wordpress前台 高密做网站织梦做网站首页 晋州网站建设黑龙江网站开发 陕西省建设总工会网站搜狗推广手机客户端 找人做效果土去那网站找广州新闻发布 中国企业网站建设阴阳师网站怎么做 用别人网站做app的危害网站出现转站怎么办 php网站建设案例教程简单的dw制作网页步骤 怎么制作网站编辑页面怎样购买网站 网站设计基本步骤免费矢量图素材网 山东建站商城搜狗搜索网页版 jsp网站安全性网站使用问题 同一个域名两个网站做相册的网站有哪些 怎么自己创建网站免费哈尔滨教育云平台网站建设 淄博公司网站建设微信小程序制作宣传图册 群辉nas 做网站公会网站免费建设 福清市建设局网站多少建筑装饰装修工程公司 网站管理助手ks数据分析神器 网站站点结构的构建新手开装修公司怎样做 展会网站怎么做网页翻译软件哪个好 公众号和网站wordpress如何转换为中文 高校里做网站的工作网站建设小公司生存 网站使用什么数据库公司网页制作哪家好 做网站需要 的文档物流公司查询平台 关于网站建设与发布的书籍saas平台是干嘛的