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

如何做网站的教程河南省城市建设网站

如何做网站的教程,河南省城市建设网站,wordpress中文版 乱码,wordpress登录才能查看文章目录 概要应用场景消息队列两种模式kafka的基础架构分区常见问题小结 概要 kafka的传统定义#xff1a;kafka是一个分布式的基于发布\订阅模式的消息队列#xff0c;主要用于大数据实时处理领域。 kafka的最新概念#xff1a;kafka是一个开源的分布式事件流平台#x… 文章目录 概要应用场景消息队列两种模式kafka的基础架构分区常见问题小结 概要 kafka的传统定义kafka是一个分布式的基于发布\订阅模式的消息队列主要用于大数据实时处理领域。 kafka的最新概念kafka是一个开源的分布式事件流平台80%的公司都在用用于高性能数据管道、流分析、数据集成和关键任务应用。 在大数据场景主要采用Kafka作为消息队列。在JavaEE开发中主要采用ActiveMQ、RabbitMQ、RocketMQ。 应用场景 传统的消息队列的主要应用场景包括缓存/消峰、解耦和异步通信。 缓冲\消峰这时候的消息队列相当于有一个缓冲区将请求先写入消息队列消息队列内的请求遵循先进先出原则从而不会因为高并发而导致系统崩溃毕竟服务器的资源有限场景以前双十一没有消息队列在高并发时可能会系统崩溃现在有了消息队列会直接返回你下单成功或者其他然后服务器慢慢从消息队列中处理这些任务解耦耦合性就是两个模块之间的依赖性越高呢维护成本越高比如说就Producer和Consumer直接连接时一个发生变化另一个要做出比较大的调整有了消息对接在中间就能降低之间耦合性也就是解耦异步通讯允许用户将消息写入消息队列并不立即去处理 消息队列两种模式 kafka的基础架构 1Producer生产者可能是flume、MySQL等其实就是向kafka发送数据的 2Consumer消费者可能是MySQL、Hadoop、spark、flink就是向kafka取数据的 3Consumer Group就是消费者组由一个或者多个consumer组成在kafka中消费者都是有组的即使是在consumer创建时没有没有设置组但是kafka会默认一个有一个组是组直接从kafka中的leader中拉取数据消费者组内每个消费者负责消费不同分区的数据一个分区只能由一个组内消费者消费消费者组之间互不影响。所有的消费者都属于某个消费者组即消费者组是逻辑上的一个订阅者 4Brokerkafka代理即kafka代理服务器一个集群由多个broker组成一个broker可以容纳多个topic 5topic主题可以理解成队列但是和点对点队列不同的是不同的消费者组都可以从topic拉去相同的消息 分区 因为不同的分区分布在不同的节点上所以便于合理使用资源实现负载均衡 并且在不同节点上可以提高并行度。 Kafka将消息以topic的方式进行组织和管理一个topic包含多个分区partition每个分区可以理解为一个独立的日志文件。 消息生产者可以选择将消息发送到指定分区或让Kafka根据一定的负载均衡策略自动选择分区。同时消息生产者也可以指定消息的key这样Kafka会根据key的hash值将消息发送到对应的分区中确保同一key的消息被发送到同一分区中保证消息的有序性 常见问题 1、kafka的消费者是pull(拉)还是push(推)模式这种模式有什么好处 Kafka 遵循了一种大部分消息系统共同的传统的设计producer 将消息推送到 brokerconsumer 从broker 拉取消息。 优点pull模式消费者自主决定是否批量从broker拉取数据而push模式在无法知道消费者消费能力情况下不易控制推送速度太快可能造成消费者崩溃太慢又可能造成浪费。 缺点如果 broker 没有可供消费的消息将导致 consumer 不断在循环中轮询直到新消息到到达。为了避免这点Kafka 有个参数可以让 consumer阻塞知道新消息到达(当然也可以阻塞知道消息的数量达到某个特定的量这样就可以批量发送)。 2、kafka维护消息状态的跟踪方法 Kafka中的Topic 被分成了若干分区每个分区在同一时间只被一个 consumer 消费。然后再通过offset进行消息位置标记通过位置偏移来跟踪消费状态。相比其他一些消息队列使用“一个消息被分发到consumer 后 broker 就马上进行标记或者等待 customer 的通知后进行标记”的优点是避免了通信消息发送后可能出现的程序奔溃而出现消息丢失或者重复消费的情况。同时也无需维护消息的状态不用加锁提高了吞吐量。 3、zookeeper对于kafka的作用是什么? Zookeeper 主要用于在集群中不同节点之间进行通信在 Kafka 中它被用于提交偏移量因此如果节点在任何情况下都失败了它都可以从之前提交的偏移量中获取除此之外它还执行其他活动如: leader 检测、分布式同步、配置管理、识别新节点何时离开或连接、集群、节点实时状态等等。 4、kafka判断一个节点还活着的有那两个条件 1节点必须维护和 ZooKeeper 的连接Zookeeper 通过心跳机制检查每个节点的连接 2如果节点是个 follower,他必须能及时的同步 leader 的写操作延时不能太久 5、讲一讲 kafka 的 ack 的三种机制 Kafka 生产者的 ACK 机制指的是生产者在发送消息后对消息副本的确认机制。ACK 机制可以帮助生产者确保消息被成功写入 Kafka 集群中的多个副本并在需要时获取确认信息。 request.required.acks 有三个值 0 1 -1(all)具体如下 0生产者不会等待 broker 的 ack这个延迟最低但是存储的保证最弱当 server 挂掉的时候就会丢数据。 1服务端会等待 ack 值 leader 副本确认接收到消息后发送 ack 但是如果 leader挂掉后他不确保是否复制完成新 leader 也会导致数据丢失。 -1(all)服务端会等所有的 follower 的副本受到数据后才会受到 leader 发出的ack这样数据不会丢失。 6、kafka 分布式不是单机的情况下如何保证消息的顺序消费? Kafka 中发送 1 条消息的时候可以指定(topic, partition, key) 3 个参数partiton 和 key 是可选的。 Kafka 分布式的单位是 partition同一个 partition 用一个 write ahead log 组织所以可以保证FIFO 的顺序。不同 partition 之间不能保证顺序。因此你可以指定 partition将相应的消息发往同 1个 partition并且在消费端Kafka 保证1 个 partition 只能被1 个 consumer 消费就可以实现这些消息的顺序消费。 另外你也可以指定 key比如 order id具有同 1 个 key 的所有消息会发往同 1 个partition那这样也实现了消息的顺序消息。 7、kafka 如何不消费重复数据比如扣款我们不能重复的扣。 这个问题换种问法就是kafka如何保证消息的幂等性。对于消息队列来说出现重复消息的概率还是挺大的不能完全依赖消息队列而是应该在业务层进行数据的一致性幂等校验。 比如你处理的数据要写库mysqlredis等你先根据主键查一下如果这数据都有了你就别插入了进行一些消息登记或者update等其他操作。另外数据库层面也可以设置唯一健确保数据不要重复插入等 。一般这里要求生产者在发送消息的时候携带全局的唯一id。 8、partition的数据文件offffsetMessageSizedata partition中的每条Message包含了以下三个属性 offsetMessageSizedata其中offset表示Message在这个partition中的偏移量offset不是该Message在partition数据文件中的实际存储位置而是逻辑上一个值它唯一确定了partition中的一条Message可以认为offset是partition中Message的 id MessageSize表示消息内容data的大小data为Message的具体内容。 9、kafka如何实现数据的高效读取顺序读写、分段命令、二分查找 Kafka为每个分段后的数据文件建立了索引文件文件名与数据文件的名字是一样的只是文件扩展名为index。 index文件中并没有为数据文件中的每条Message建立索引而是采用了稀疏存储的方式每隔一定字节的数据建立一条索引。这样避免了索引文件占用过多的空间从而可以将索引文件保留在内存中 10、Kafka的那些设计让它有如此高的性能? 1.kafka是分布式的消息队列 2.对log文件进行了segment,并对segment创建了索引 3.(对于单节点)使用了顺序读写,速度能够达到600M/s 4.引用了zero拷贝,在os系统就完成了读写操做 11、Kafka为什么不支持读写分离 1、 这其实是分布式场景下的通用问题因为我们知道CAP理论下我们只能保证C一致性和A可用性取其一如果支持读写分离那其实对于一致性的要求可能就会有一定折扣因为通常的场景下副本之间都是通过同步来实现副本数据一致的那同步过程中肯定会有时间的消耗如果支持了读写分离就意味着可能的数据不一致或数据滞后。 2、 Leader/Follower模型并没有规定Follower副本不可以对外提供读服务。很多框架都是允许这么做的只是 Kafka最初为了避免不一致性的问题而采用了让Leader统一提供服务的方式。 3、 不过自Kafka 2.4之后Kafka提供了有限度的读写分离也就是说Follower副本能够对外提供读服务。 12、分区Leader选举策略有几种 分区的Leader副本选举对用户是完全透明的它是由Controller独立完成的。你需要回答的是在哪些场景下需要执行分区Leader选举。每一种场景对应于一种选举策略。 1、 OfflinePartition Leader选举每当有分区上线时就需要执行Leader选举。所谓的分区上线可能是创建了新分区也可能是之前的下线分区重新上线。这是最常见的分区Leader选举场景。 2、 ReassignPartition Leader选举当你手动运行Kafka-reassign-partitions命令或者是调用Admin的alterPartitionReassignments方法执行分区副本重分配时可能触发此类选举。假设原来的AR是[123]Leader是1当执行副本重分配后副本集合AR被设置成[456]显然Leader必须要变更此时会发生Reassign Partition Leader选举。 3、 PreferredReplicaPartition Leader选举当你手动运行Kafka-preferred-replica-election命令或自动触发了Preferred Leader选举时该类策略被激活。所谓的Preferred Leader指的是AR中的第一个副本。比如AR是[321]那么Preferred Leader就是3。 4、 ControlledShutdownPartition Leader选举当Broker正常关闭时该Broker上的所有Leader副本都会下线因此需要为受影响的分区执行相应的Leader选举。 这4类选举策略的大致思想是类似的即从AR中挑选首个在ISR中的副本作为新Leader。 13、请简述下你在哪些场景下会选择 Kafka •日志收集一个公司可以用Kafka可以收集各种服务的log通过kafka以统一接口服务的方式开放给各种consumer例如hadoop、HBase、Solr等。 •消息系统解耦和生产者和消费者、缓存消息等。 •用户活动跟踪Kafka经常被用来记录web用户或者app用户的各种活动如浏览网页、搜索、点击等活动这些活动信息被各个服务器发布到kafka的topic中然后订阅者通过订阅这些topic来做实时的监控分析或者装载到hadoop、数据仓库中做离线分析和挖掘。 •运营指标Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据生产各种操作的集中反馈比如报警和报告。 •流式处理比如spark streaming和 Flink 14、请谈一谈 Kafka 数据一致性原理 一致性就是说不论是老的 Leader 还是新选举的 LeaderConsumer 都能读到一样的数据。 假设分区的副本为3其中副本0是 Leader副本1和副本2是 follower并且在 ISR 列表里面。虽然副本0已经写入了 Message4但是 Consumer 只能读取到 Message2。因为所有的 ISR 都同步了 Message2只有 High Water Mark 以上的消息才支持 Consumer 读取而 High Water Mark 取决于 ISR 列表里面偏移量最小的分区对应于上图的副本2这个很类似于木桶原理。 这样做的原因是还没有被足够多副本复制的消息被认为是“不安全”的如果 Leader 发生崩溃另一个副本成为新 Leader那么这些消息很可能丢失了。如果我们允许消费者读取这些消息可能就会破坏一致性。试想一个消费者从当前 Leader副本0 读取并处理了 Message4这个时候 Leader 挂掉了选举了副本1为新的 Leader这时候另一个消费者再去从新的 Leader 读取消息发现这个消息其实并不存在这就导致了数据不一致性问题。 当然引入了 High Water Mark 机制会导致 Broker 间的消息复制因为某些原因变慢那么消息到达消费者的时间也会随之变长因为我们会先等待消息复制完毕。延迟时间可以通过参数 replica.lag.time.max.ms 参数配置它指定了副本在复制消息时可被允许的最大延迟时间。 小结 每日一小结进步一大节。 以上图片均自于网络如有侵权请联系删除。
http://www.pierceye.com/news/39111/

相关文章:

  • 网站开发与网站制作贵安新区网站建设推广
  • jsp编写网站网站建设网站制作需要多少钱
  • 做我的奴隶 good网站最好的wordpress
  • 张家界商城网站建设网站类网站建设
  • 湘潭网站建设 搜搜磐石网络.net个人网站开发视频
  • 崔各庄地区网站建设临沂国际外贸网站建设
  • 做公司网站麻烦吗做电影网站需要什么软件
  • 自己做的网站怎么发布做百度推广得用网站是吗
  • 网站5g空间python 网站开发 普及
  • 优秀材料写作网站东莞寮步网站设计
  • 制作网页类型一般分为什么沈阳做网站seo
  • 备案个人网站做淘宝客招聘模板图片
  • 网站服务器买了后怎么做的wordpress同步头条
  • 凡科建站登录入口在线制作网站源码
  • 红安建设局网站免费h5制作软件
  • 滁州市建设工程质量检测协会网站使用element做的网站
  • 东营做网站优化的公司汕头百度关键词优化
  • 岱山建设局网站办公室装修图
  • 最新网站开发需求文档织梦免费企业网站
  • 杭州做企业网站公司建设企业网站源码
  • 吉林北京网站建设wordpress镜像教程
  • 水墨背景风格企业网站模板网站建设的论文的参考文献
  • 地方网站运营方案网站设计收费
  • 平台型网站建设方案网站建设 方案下载
  • 潍坊高端网站建设微信公众平台一定要找网站做吗
  • 单页网站优化大兴网站开发公司
  • 建网站的地址猎头公司前十名
  • 青海网站推广策划方案淄博seo培训
  • 连云港做网站的公司游戏开发需要学多久
  • 上海专业网站建设公司排名宁波专业网站公司