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

关于网站建设议案网站开发的目的意义

关于网站建设议案,网站开发的目的意义,外发加工网有什么软件,源码网站 怎么做目录 一、概述二、生产者1. 发送原理2. 生产者分区 Partition分区好处分区策略 3. 生产者如何提高吞吐量4. 数据可靠性ACK应答级别数据不丢失#xff1a;ACK ISR数据不重复#xff1a;幂等性数据有序 三、broker1. 工作流程2. 副本相关3. 底层存储4. 高效读写数据 四、消费者… 目录 一、概述二、生产者1. 发送原理2. 生产者分区 Partition分区好处分区策略 3. 生产者如何提高吞吐量4. 数据可靠性ACK应答级别数据不丢失ACK ISR数据不重复幂等性数据有序 三、broker1. 工作流程2. 副本相关3. 底层存储4. 高效读写数据 四、消费者1. 工作流程2. 分区分配和重平衡3. offset 位移 一、概述 定义是一个分布式的基于发布/订阅模式的消息队列MessageQueue主要应用于大数据实时处理领域 三大功能 削峰 高峰期的消息可以积压到消息队列中随后平滑地处理完成避免突发访问压力压垮系统解耦 消息队列避免模块之间的相互调用降低各个模块的耦合性提高系统的可扩展性异步 发送方把消息放在消息队列中接收方无需立即处理可以等待合适的时间处理 基础架构 组件作用Producer消息生产者就是向 Kafka broker 发消息的客户端Consumer消息消费者向 Kafka broker 取消息的客户端Consumer GroupCG消费者组由多个 consumer 组成。组内每个消费者负责消费不同分区的数据一个分区只能由一个组内消费者消费消费者组之间互不影响。消费者组是逻辑上的一个订阅者Broker一台 Kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个broker 可以容纳多个 topicTopic消息主题逻辑概念 生产者和消费者面向的都是一个 topicPartition一个 topic 可以分为多个 partition每个 partition 是一个有序的队列Replica副本。每个分区都有若干个副本一个 Leader 和若干个FollowerLeader一组副本中的“主”只有主和生产者消费者交互Follower一组副本中的“从”实时从 Leader 中同步数据保持和Leader 数据的同步SegmentPartition 物理上被分成多个 Segment每个 Segment 1个GZookeeper保存元信息现已废除 二、生产者 1. 发送原理 涉及到了两个线程——main 线程和 Sender 线程 在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给消息队列当消息队列内的消息达到一定大小或者达到时间限制会通知sender线程Sender 线程不断从消息队列中拉取消息发送到 Kafka Broker 可以选择是异步还是同步同步就是sender等待收到broker的ack后再去发送新消息 2. 生产者分区 Partition 分区好处 便于合理使用存储资源可以把海量的数据按照分区切割成一块一块数据存储在多台Broker上。合理控制分区的任务可以实现负载均衡的效果提高并行度生产者可以以分区为单位发送数据消费者可以以分区为单位进行消费数据 分区策略 生产者生产消息的时候 指明partition的情况下直接将指明的值作为partition值例如partition0所有数据写入分区0 没有指明partition值但有key的情况下将key的hash值与topic的partition数进行取余得到partition值 例如key1的hash值5 key2的hash值6 topic的partition数2那么key1 对应的value1写入1号分区key2对应的value2写入0号分区 既没有partition值又没有key值的情况下Kafka采用Sticky Partition黏性分区器会随机选择一个分区并尽可能一直使用该分区待该分区的batch已满或者已完成Kafka再随机一个分区进行使用和上一次的分区不同。 例如第一次随机选择0号分区等0号分区当前批次满了默认16k或者linger.ms设置的时间到 Kafka再随机一个分区进行使用如果还是0会继续随机 自定义分区定义类实现 Partitioner 接口重写 partition()方法方法返回分区号 3. 生产者如何提高吞吐量 提高main线程创建的消息队列大小缓存大一点提高batchsize大小多等一些数据再传调整等待时间双刃剑太短一次传的消息太少太长有延迟对传输数据做压缩能传更多的消息 4. 数据可靠性 ACK应答级别 0生产者发送过来的数据不需要等数据落盘应答 1生产者发送过来的数据Leader收到数据后应答 -1生产者发送过来的数据Leader和ISR队列里面的所有节点收齐数据后应答 单纯用0或1都会导致丢数而单纯用-1会导致多数重复 数据不丢失ACK ISR ACK -1 副本 2 ISR最小副本数量 2 数据不重复幂等性 数据语义 最多一次ACK 0至少一次ACK -1 副本 2 ISR最小副本数量 2精确一次幂等性 至少一次 重复数据的判断标准具有 PID, Partition, SeqNumber 相同主键的消息提交时Broker只会持久化一条 PID是Kafka每次重启都会分配一个新的Producer IDPartition 表示分区号Sequence Number是单调自增的 所以幂等性只能保证的是在单分区单会话内不重复 全局不重复需要开启事务 数据有序 生产者有序发送消息 一个一个消息的发一个 Topic 下的同一个 Partition 一定是有序的不是一个一个发需要开启幂等性且一次发不能超过5个这样如果乱序到达的话broker会自己排序 消费者有序消费 一个分区只让一个消费者来消费即能保证 三、broker 1. 工作流程 生产者将消息发送给分区 LeaderLeader 将消息写入本地文件对应的 Follower 从 Leader 拉取消息并写入本地文件Follower 向 Leader 发送 ACKLeader向生产者回复 leader的维护由保存在paitition内的Controller来做Controller也是分布式的他会监听brokers节点的变化在节点挂掉的时候辅助选举新leader选举规则在ids列表内按顺序选择 2. 副本相关 定义每个partition都有多份叫副本来提高可靠性 副本分为Leader和Follower只有Leader和生产者和消费者交互副本AR ISR OSR Leader 和 Follower 故障处理 Follower故障被踢出ISR恢复后再加入ISRLeader故障从ISR中选出一个新的Leader恢复后去除旧数据和新Leader进行同步只能保证副本之间的数据一致性并不能保证数据不丢失或者不重复 副本分区分配 尽可能的把Leader散开否则会对某一个broker产生很大的压力 3. 底层存储 partition下进一步将数据分为Segment每个1G Segment分为 log存具体数据以追加的方式index索引稀疏索引4KB记一条索引时间戳过期删除用的 删除方法 删除直接删除压缩相同key只保留最新的 4. 高效读写数据 Kafka 本身是分布式集群可以采用分区技术并行度高读数据采用稀疏索引可以快速定位要消费的数据顺序写磁盘页缓存 零拷贝技术 页缓存PageCache重度依赖底层操作系统提供的PageCache功能写的时候直接交给页缓存读的时候先读页缓存没有再读磁盘零拷贝消息从磁盘里读出来之后不走应用层代码直接走网卡不占用CPU 四、消费者 1. 工作流程 消费者可以分组一个分区只能由组内的一个消费者消费消费者组是逻辑上的一个订阅者用offset标识消费的位置由消费者提交保存在主题内由coordinator管理这也是个分布式 主要就是从broker里拉取数据 2. 分区分配和重平衡 分区分配问题一个consumer group中有多个consumer组成一个 topic有多个partition组成问题是到底由哪个consumer来消费哪个partition的数据 分区分配策略 Range对每个 topic 而言 partitions数/consumer数来决定会产生数据倾斜RoundRobin针对集群中所有Topic而言所有的 partition轮询分配Sticky尽量均匀地分配分区根据上次的分配结果尽量减少变动 3. offset 位移 位移保存方式存在__consumer_offsets里采用 key 和 value 的方式存储数据。key 是 group.idtopic分区号value 就是当前 offset 的值 位移的提交方式 自动提交可能造成重复消费 重复消费已经消费了数据但是 offset 没提交 比如每隔5s下一轮过了2s挂了会重复消费这2s的内容 手动提交可能造成漏消费 漏消费先提交 offset 后消费有可能会造成数据的漏消费 比如消费者取了还在内存里刚提交还没来得及落盘就挂了没落盘的就漏消费了 不管是重复消费还是漏消费都是提交和落盘的间隙出现宕机的情况可以开启事务把这两个动作原子绑定
http://www.dnsts.com.cn/news/275723.html

相关文章:

  • 帮客户做网站挣钱吗郑州电商网站开发
  • 织梦网络公司网站源码免费模板的软件
  • 外贸网站 cms住房城乡建设部官网站
  • 做网站什么程序中山网站定制公司
  • 中国苏州网站wordpress中国主题
  • 成都高端模板建站网站开发和程序开发的却别
  • 做网站排名费用网站开发合同注意事项
  • 网站建设亿码酷适合5做网站需要哪类商标
  • 爱情网站设计高端品牌男鞋有哪些
  • 统一手机网站电影网站建设教程下载
  • 上海网站设计公司中文网站建设和英文网站建设的区别
  • 做网站要通过网信办备案吗企业做电商网站有哪些内容
  • 成都哪里有做网站建设的百度贴吧鞍山
  • vs做网站头部的代码网站中文字内容左右切换的js代码
  • 美容行业网站建设方案产品营销活动策划方案
  • 管理咨询有限公司的经营范围googleseo是什么
  • 网站开发的背景知识成都门户网站建设
  • 楚雄市住房和城乡建设局网站怎么成立自己的网站
  • 网站建设维护的职位怎样才能建设一歌网站
  • 怎样保证网站的安全在国内怎么做国外网站
  • 龙象建设集团有限公司网站网上开店的流程
  • 深圳网站搭建哪里好做基因互作的网站
  • 我想做个网站怎么弄如何快速建立网站
  • wordpress非常吃cpuseo简介
  • 鞋子网站建设策划书南昌网站seo厂家
  • 查询工程建设项目的网站无锡名气大的网页设计
  • wordpress上传目录seo1短视频网页入口营销
  • 点卡网站怎么做wordpress uc点赞
  • 重庆整合网络营销之整站优化找网页模板的网站
  • 网站制作青岛江苏网站建设电话