我都10阿根廷进级了吗,怎么还进不去kfq

海岛奇兵为什么有人48级司令部就二十级了_百度知道
海岛奇兵为什么有人48级司令部就二十级了
我有更好的答案
最高21。后来出22本,47级升20本之前的,证明这个人没玩了,59级升21本。以前46级升19本
采纳率:45%
好久前是四十七级就可以升,之后更新的就变成五十级才行了
楼下说的是对的
为您推荐:
其他类似问题
勃兰兑斯的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。我家电脑win10,不知道是电脑原因还是系统原因,重启后的电脑显示未连_百度知道
我家电脑win10,不知道是电脑原因还是系统原因,重启后的电脑显示未连
重启后的电脑显示未连接到internet,而且点开后什么都没显示无法登陆也无法退回刚才界面,没发重装,着该咋办,我尝试强制关机3次后进行重装系统,结果重装时老是显示有问题我家电脑win10,不知道是电脑原因还是系统原因
我有更好的答案
如果他的正常,则证明你本本无线网卡有问题,带去电脑维修店检测。3.以上两点不行的话就得重装系统,你把无限路由器恢复出厂设置重新设置。2。原因就不一一解释,系统出故障不稳定各方面你懂的,再连接登入.用同学的笔记本跟你放同样的位置试试三点排除法:1.无限路由器的原因
我家是台式机而且路由器完全正常
采纳率:76%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。【写在前面的话】西康宾馆我是比较熟悉的,因为我们的单位开会基本上不是在西康宾馆就是在江苏省会议中心。所以西康宾馆我来过很多次,而每次都是在1号楼开会,最多也是在对面那号楼吃过饭,唯独没有在5号楼参加过婚宴。这次正好跟菜菜来参加他同学的婚礼,顺便探探这家老牌星级酒店的婚宴情况。
【西康宾馆简介】西康宾馆建造于一九四六年,进入西康宾馆正门要去任何一栋楼都要爬坡,因为他是依照山坡地势而建造的。像我们敬爱的毛主席啊刘少奇、朱德、陈云、邓颖超、蔡畅、叶剑英、聂荣臻等老一辈无产阶级革命家,以及党内外政客名流,大领导都到此下塌过呢。听听都觉得震撼呢,记得我第一次来西康宾馆开会,周围绿树成荫,西康路两边全是南京高官的住宅,我还在想我们单位牛逼嘛,居然能到这种地方来给我们开会,我还以为这种地方专门只接待领导呢。事实上,南京西康宾馆是江苏省委办公厅下属的一个单位,主要是负责接待省委、省政府以及省委办公厅交办的各种政治接待。在一九四九年解放前,这里还是美国驻中国的大使馆哦。这个历史底蕴杠杠的啊。具体地址为南京市西康路33号。
【图文并茂】
这个是西康宾馆的门口,晚上照的,看上去还是比较古色古韵,看着就有历史使命感的赶脚。
门口是签到台,地方挺大的。整个婚礼的颜色是天蓝色和银色,这种搭配比较常见呢。
这个厅层高还可以,但是两边各有一根柱子,这是我不喜欢的地方。像我那个角落看司仪那块,完全就被挡住了呢~
音响不是放在主台边上,而是对着放在门口四角亭边上的角落里呢,还有硕大的大灯。四角亭的布置比较普通的说。
屋顶上的水晶灯,不是很闪,但是放出来的光还是比较柔和的。
服务小姐基本上都站在最后面,我们这个角落摆放的音响、灯光。
司仪上场了,这个司仪我看到好多次了,是一千多,两千不到的标准。主持的比较有经验,但是见多了,所以感觉一般般了。
新娘先出场,后面有两个花童一直在撒花,花童被挡着了,高的那个是伴娘呢。全场最亮的地方就是新娘。开场白太一般了,“每个女孩都有个梦想,小时候的梦想是神马神马,长大的梦想是神马神马,现在的梦想是等待那个白马王子的出现。。。。。。”我可千万不要这种开场白呢,每场婚礼都这样说,我都快背出来了啦~
现在是看VCR,这个VCR不要告诉我是花钱做的,做的一塌糊涂啊,最后剪辑各大影片男女主人公说“I&&LOVE&&YOU”听了近五分钟,我还以为最后是本场婚礼的男女主人公对说“I&&LOVE&&YOU”呢,结果没有啊,就结束了。我感觉司仪也愣了半天。
正常婚礼的主题,多啦A梦,新郎居然扮成机器猫出现了,好可爱,还捧束鲜花。口袋里装的是什么呢?哈哈,你猜对了,是钻戒哦~
这个西康宾馆婚宴菜肴的冷盘,口味还可以的说。
这个是给每个顾客上的个菜,里面是海参、鹌鹑蛋、鸡爪还有肉呢~
已经上了一大半的菜,有螃蟹、基围虾、排骨、鸽子、盐水鸭、牛排等等,非常丰富呢,这才两千多的价格哦,比较经济实惠吧~
最后发的喜糖,两粒巧克力,现在喜糖是两粒巧克力的也比较常见啦~
【综合点评】
一、酒店的位置和交通:三星半
西康宾馆具体地址为南京市西康路33号,周围有江苏省委,南京大学、宁海中学、华东饭店等等。可以坐公交来,也可以驾车和打车来,地铁不是很方面,离得比较远。公交来的话,有11路、24路、302路、56路等等,在江苏省委下。然后下来要步行哦,向北走,一直走到一个转盘那里,然后在左手第二个口进入走到底右拐。如果不认识的话最好问人,因为我经常走错的说。
周围可以拍的外景我觉得有五台山体育场、边上的南京大学和东南大学(当然新人有一位是那两所大学毕业的拍的才有意义)、清凉山公园等等。
二、酒店的环境和服务:四星半
酒店里面绿树成荫,整个西康路就是民国建筑群,非常安静和漂亮。酒店内部是个山坡呢,内部的建筑是西式的。里面的服务员的接待经验都比较丰富,毕竟是要经常接待大领导和服务各种高级会议的。
三、酒店的性价比:四星半
2013年起步价是2288起订,一个四星级这么便宜还是比较少见的,可以容纳23桌左右,厅内有两根柱子,不是很多。性价比我认为比较高呢。
婚宴酒店:华东饭店
婚纱摄影:米兰婚纱摄影
婚庆策划:聆心婚庆
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:
楼主邀你扫码
参与上面帖子讨论
发表于:13-10-10 13:49
这新郎服真特别哈哈
婚宴酒店:古南都饭店
婚纱摄影:米兰尊荣
婚庆策划:已定聆心
结婚钻戒:未定
婚纱礼服:宝娜
婚房装设:简约现代小清新
蜜月旅行:可能去澳洲,也有可能是巴厘岛
发表于:13-10-10 13:53
真人版哆啦A梦啊,有意思~
婚期:待定
婚宴酒店:待定
婚纱摄影:今生有约
婚庆策划:已定聆心
结婚钻戒:珂兰
婚纱礼服:待定
婚房装设:待定
蜜月旅行:待定
发表于:13-10-10 13:53
看到哆啦A梦了,好有趣的,呵呵
婚期:2014年XX月XX日
婚宴酒店:待定
婚纱摄影:待定
婚庆策划:待定
结婚钻戒:待定
婚纱礼服:待定
婚房装设:待定
蜜月旅行:待定
发表于:13-10-10 13:55
还不错吧,可以作为备选 之一
婚期:2014年正月
婚宴酒店:搜索
婚纱摄影:今生有约
婚庆策划:寻找中
结婚钻戒:定制中
婚纱礼服:租用
婚房装设:已初步完成
蜜月旅行:有时间有钱可以
发表于:13-10-10 14:00
很洋气的酒店 有空去看看
发表于:13-10-10 14:08
哆啦A梦蛮可爱的
婚期:2014年5月
婚宴酒店:钟山宾馆
婚纱摄影:今生有约
婚庆策划:已定聆心婚庆
结婚钻戒:BLOVES
婚纱礼服:未定
婚房装设:未定
蜜月旅行:未定
发表于:13-10-10 14:14
原来新郎是扮成了哆啦A梦的造型 不错
婚期:2014年XX月XX日
婚宴酒店:
婚纱摄影:
婚庆策划:
结婚钻戒:
婚纱礼服:
婚房装设:装修ing
蜜月旅行:
发表于:13-10-10 14:25
还不错 还不错
婚期:2013年XX月XX日
婚宴酒店:待定
婚纱摄影:待定
婚庆策划:待定
结婚钻戒:待定
婚纱礼服:待定
婚房装设:待定
蜜月旅行:待定
发表于:13-10-10 14:36
这新郎服真特别哈哈
婚期:XX年XX月XX日
&婚宴酒店:
&婚纱摄影:
&婚庆策划:
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:
发表于:13-10-10 14:41
本来以为的是哆啦a梦的现场布置呢,没想到哆啦a梦出场啦
发表于:13-10-10 14:44
新郎真有才啊
婚期:2014年02月XX日
婚宴酒店:xx
婚纱摄影:今生有约
婚庆策划:xx
婚纱礼服:xx
结婚钻戒:xx
婚房装设:简约风格
蜜月旅行:海南
发表于:13-10-10 14:45
新郎官好热啊,哈哈哈
婚宴酒店:老家
婚纱摄影:今生有约
婚庆策划:老家
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:
发表于:13-10-10 14:50
好玩,哈哈
发表于:13-10-10 15:04
看样子新娘肯定是多啦A梦的粉丝,我也是哆啦a梦的粉丝啊。
婚期:2014年X月X日
婚宴酒店:待定
婚纱摄影:今生有约
婚庆策划:待定
结婚钻戒:待定
婚纱礼服:待定
婚房装设:正在装修
蜜月旅行:待定
发表于:13-10-10 15:08
不错的婚礼哦
婚期:2014年10月XX日
婚宴酒店:待定
婚纱摄影:今生有约
婚庆策划:待定
结婚钻戒:待定
婚纱礼服:宝娜
婚房装设:自己
蜜月旅行:待定
发表于:13-10-10 15:18
新浪很有创意
婚期:2014年3月or5月
婚宴酒店:瑞迪大酒店
婚纱摄影:今生有约世纪城(第二十期霸王餐)
婚庆策划:蓝剑婚礼企划(征文)
结婚钻戒:珂兰(第二十二期霸王餐)+宝庆
婚纱礼服:罗蒂莎国际婚纱尊荣会馆&+&蒂凡(活动)
婚房装设:自己设计
蜜月旅行:巴厘岛&+&欧洲
发表于:13-10-10 15:38
哈哈,机器猫,寓意老公是百宝箱嘛?
发表于:13-10-10 16:05
卡通加梦幻蓝~不错
婚期:2014年1月X日
婚宴酒店:未定
婚庆策划:未定
婚纱摄影:今生有约
结婚钻戒:通灵
婚纱礼服:未定
婚房装设:未定
蜜月旅行:未定
发表于:13-10-10 16:26
这新郎服真特别哈哈
发表于:13-10-10 16:36
真人版哆啦A梦啊,有意思~
婚期:2014年XX月XX日
婚宴酒店:待定
婚纱摄影:待定
婚庆策划:待定
结婚钻戒:待定
婚纱礼服:待定
婚房装修:待定
蜜月旅行:待定
发表于:13-10-10 16:37
那个玩偶穿的可热了
发表于:13-10-10 16:38
很有个性哦
婚宴酒店:曙光国际大酒店
婚纱摄影:今生有约
婚庆策划:聆心
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:
发表于:13-10-10 16:43
我想问问哆啦A梦里面穿的是西装么,要不然来不及换怎么办啊。。。
婚期:14年XX月XX日
婚宴酒店:
婚纱摄影:今生有约
婚庆策划:聆心
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:
发表于:13-10-10 16:45
看上去还不错哦,性价比很高
婚宴酒店:华东饭店
婚纱摄影:米兰尊荣
婚庆策划:已定聆心
结婚钻戒:未定
婚纱礼服:未定
婚房装设:面对面
蜜月旅行:未定
发表于:13-10-10 16:48
哆啦A梦,你是通过任意门来到的现场么?
婚宴酒店:待定
婚纱摄影:米兰尊荣
婚庆策划:待定
结婚钻戒:待定
婚纱礼服:宝娜
婚房装设:待定
蜜月旅行:待定
发表于:13-10-10 17:27
喜糖挺好玩的,和我姐结婚的时候用的很像
婚期:2014年XX月XX日
婚宴酒店:未定
婚纱摄影:米兰尊荣
婚庆策划:已定聆心
结婚钻戒:未定
婚纱礼服:宝娜嫁衣
婚房装设:未定
蜜月旅行:未定
发表于:13-10-10 17:31
挺有创意的
发表于:13-10-10 17:44
好可爱的婚礼!
婚期:14年03月16日
婚宴酒店:待定
婚纱摄影:圣蒂娅
婚庆策划:待定
结婚钻戒:千年
婚纱礼服:待定
婚房装设:简欧DIY
蜜月旅行:找个海岛躺几天
发表于:13-10-10 17:45
看到真人大小的多啦A梦的衣服了
婚期:2014年XX月XX日
婚宴酒店:待定
婚纱摄影:今生有约
婚庆策划:待定
结婚钻戒:Bloves
婚纱礼服:待定
婚房装设:待定
蜜月旅行:待定
发表于:13-10-10 19:15
多啦A梦,好可爱
发表于:13-10-10 20:00
菜品一般啊,不过作为星级酒店,这个价位真心不贵了
婚宴酒店:向阳渔港
婚纱摄影:圣蒂娅
婚庆策划:
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:三亚、九寨沟等
发表于:13-10-10 20:04
多啦A梦& 我还是第一次听说呢& 学习了
婚宴酒店:
婚纱摄影:今生有约
婚庆策划:
结婚钻戒:珂兰尊荣
婚纱礼服:施华蔻
婚房装设:
蜜月旅行:海南三亚
发表于:13-10-10 20:06
新郎有心了,谢谢楼主的介绍。
婚宴酒店:虹桥
婚纱摄影:雪中彩影
婚庆策划:
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:
婚车租赁:
婚房地址:三牌楼
发表于:13-10-10 20:10
好特别的造型啊
婚宴酒店:待定
婚纱摄影:圣蒂娅
婚庆策划:待定
结婚钻戒:老凤祥
婚纱礼服:维纳缇
婚房装设:待定
蜜月旅行:海南
发表于:13-10-10 20:39
不错,酒店布置的很大气噢
婚期:201X年X月XX日
婚宴酒店:烟波
婚纱摄影:今生
婚庆策划:
结婚钻戒:
婚纱礼服:
婚房装设:已完成
蜜月旅行:计划中
发表于:13-10-10 20:40
感觉和别人发的比起来感觉场景不是很用心啊
婚期:XX年XX月XX日
婚宴酒店:
婚纱摄影:
婚庆策划:
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:
发表于:13-10-10 20:45
喜糖看着不错
发表于:13-10-10 21:16
那边的菜品还不错
婚期:2014年XX月XX日
婚宴酒店:华世博纪
婚纱摄影:米兰尊荣
婚庆策划:美雯
结婚钻戒:通灵+钻石小鸟+珂兰+BLOVES
婚纱礼服:宝娜+斐梵+妃娜+昊+吉婚坊+维纳缇+自购
婚房装设:景悠
蜜月旅行:意大利+德国自助
发表于:13-10-10 21:22
看到哆啦A梦了
婚宴酒店:&
婚纱摄影:今生有约&
婚庆策划:待定
结婚钻戒:周大福+&钻石小鸟&
婚纱礼服:待定
婚房装设:待定
蜜月旅行:待定
婚车租赁:待定
婚房地址:待定
发表于:13-10-10 21:35
好特别的造型啊
婚期:14年01月20日
婚宴酒店:未定
婚纱摄影:今生有约
婚庆策划:未定
结婚钻戒:珂兰钻戒
婚纱礼服:未定
婚房装设:装修中
蜜月旅行:未定
发表于:13-10-10 22:17
还挺喜欢这个喜糖的
婚宴酒店:金陵晶元
婚纱摄影:
婚庆策划:未定
结婚钻戒:珂兰
婚纱礼服:未定
婚房装设:未定
蜜月旅行:未定
发表于:13-10-10 22:46
看起来很不错呢
婚期:14年5月1日
婚宴酒店:待定
婚纱摄影:今生有约
婚庆策划:待定
结婚钻戒:待定
婚纱礼服:待定
婚房装设:待定
蜜月旅行:待定
发表于:13-10-10 22:50
还是很有创意的呢&
发表于:13-10-10 23:12
多拉爱梦好可爱哦
婚宴酒店:华东饭店
婚纱摄影:米兰尊荣
婚庆策划:聆心婚庆
结婚钻戒:珂兰
婚纱礼服:
婚房装设:欧美风
蜜月旅行:西藏
发表于:13-10-10 23:22
婚礼布置的不错哦
婚期:2014年XX月XX日
婚宴酒店:
婚纱摄影:
婚庆策划:
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:
发表于:13-10-10 23:47
这个进场的方式特别啊
婚期:2014年XX月XX日
婚宴酒店:
婚纱摄影:
婚庆策划:
结婚钻戒:
婚纱礼服:
婚房装设:
蜜月旅行:
你尚未登录或可能已退出账号:(请先或者
【敬请阅读】
亲爱的网友们,、有更新哦!
请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款、法律适用和争议解决条款。免除或者限制责任将以粗体标识,您应重点阅读。
【特别提示】
如您继续使用我们的服务,表示您已充分阅读、理解并接受《西祠站规》、《西祠胡同用户隐私保护政策》的全部内容。阅读《西祠站规》、《西祠胡同用户隐私保护政策》的过程中,如果您有任何疑问,可向平台客服咨询。如您不同意《西祠站规》、《西祠胡同用户隐私保护政策》的任何条款,可立即停止使用服务。
南京西祠信息技术股份有限公司
我已阅读并同意、中的全部内容!站内搜索:
讲文明树新风公益广告作品展播20159人阅读
kafka(3)
此文章来自于我司高磊童靴
kafka作为时下最流行的开源消息系统,被广泛地应用在数据缓冲、异步通信、汇集日志、系统解耦等方面。相比较于RocketMQ等其他常见消息系统,Kafka在保障了大部分功能特性的同时,还提供了超一流的读写性能。
本文将针对Kafka性能方面进行简单分析,首先简单介绍一下Kafka的架构和涉及到的名词:
1. Topic:用于划分Message的逻辑概念,一个Topic可以分布在多个Broker上。
2. Partition:是Kafka中横向扩展和一切并行化的基础,每个Topic都至少被切分为1个Partition。
3. Offset:消息在Partition中的编号,编号顺序不跨Partition。
4. Consumer:用于从Broker中取出/消费Message。
5. Producer:用于往Broker中发送/生产Message。
6. Replication:Kafka支持以Partition为单位对Message进行冗余备份,每个Partition都可以配置至少1个Replication(当仅1个Replication时即仅该Partition本身)。
7. Leader:每个Replication集合中的Partition都会选出一个唯一的Leader,所有的读写请求都由Leader处理。其他Replicas从Leader处把数据更新同步到本地,过程类似大家熟悉的MySQL中的Binlog同步。
8. Broker:Kafka中使用Broker来接受Producer和Consumer的请求,并把Message持久化到本地磁盘。每个Cluster当中会选举出一个Broker来担任Controller,负责处理Partition的Leader选举,协调Partition迁移等工作。
9. ISR(In-Sync Replica):是Replicas的一个子集,表示目前Alive且与Leader能够“Catch-up”的Replicas集合。由于读写都是首先落到Leader上,所以一般来说通过同步机制从Leader上拉取数据的Replica都会和Leader有一些延迟(包括了延迟时间和延迟条数两个维度),任意一个超过阈值都会把该Replica踢出ISR。每个Partition都有它自己独立的ISR。
以上几乎是我们在使用Kafka的过程中可能遇到的所有名词,同时也无一不是最核心的概念或组件,感觉到从设计本身来说,Kafka还是足够简洁的。这次本文围绕Kafka优异的吞吐性能,逐个介绍一下其设计与实现当中所使用的各项“黑科技”。Broker不同于Redis和MemcacheQ等内存消息队列,Kafka的设计是把所有的Message都要写入速度低容量大的硬盘,以此来换取更强的存储能力。实际上,Kafka使用硬盘并没有带来过多的性能损失,“规规矩矩”的抄了一条“近道”。
首先,说“规规矩矩”是因为Kafka在磁盘上只做Sequence I/O,由于消息系统读写的特殊性,这并不存在什么问题。关于磁盘I/O的性能,引用一组Kafka官方给出的测试数据(Raid-5,7200rpm):
Sequence I/O: 600MB/s
Random I/O: 100KB/s
所以通过只做Sequence I/O的限制,规避了磁盘访问速度低下对性能可能造成的影响。
接下来我们再聊一聊kafka是如何“抄近道的”。
首先,Kafka重度依赖底层操作系统提供的PageCache功能。当上层有写操作时,操作系统只是将数据写入PageCache,同时标记Page属性为Dirty。当读操作发生时,先从PageCache中查找,如果发生缺页才进行磁盘调度,最终返回需要的数据。实际上PageCache是把尽可能多的空闲内存都当做了磁盘缓存来使用。同时如果有其他进程申请内存,回收PageCache的代价又很小,所以现代的OS都支持PageCache。
使用PageCache功能同时可以避免在JVM内部缓存数据,JVM为我们提供了强大的GC能力,同时也引入了一些问题不适用与Kafka的设计。
o 如果在Heap内管理缓存,JVM的GC线程会频繁扫描Heap空间,带来不必要的开销。如果Heap过大,执行一次Full GC对系统的可用性来说将是极大的挑战。
o 所有在在JVM内的对象都不免带有一个Object Overhead(千万不可小视),内存的有效空间利用率会因此降低。
o 所有的In-Process Cache在OS中都有一份同样的PageCache。所以通过只在PageCache中做缓存至少可以提高一倍的缓存空间。
o 如果Kafka重启,所有的In-Process Cache都会失效,而OS管理的PageCache依然可以继续使用。
PageCache还只是第一步,Kafka为了进一步的优化性能还采用了Sendfile技术。在解释Sendfile之前,首先介绍一下传统的网络I/O操作流程,大体上分为以下4步。
1. OS从硬盘把数据读到内核区的PageCache。
2. 用户进程把数据从内核区Copy到用户区。
3. 然后用户进程再把数据写入到Socket,数据流入内核区的Socket Buffer上。
4. OS再把数据从Buffer中Copy到网卡的Buffer上,这样完成一次发送。
整个过程共经历两次Context Switch,四次System Call。同一份数据在内核Buffer与用户Buffer之间重复拷贝,效率低下。其中2、3两步没有必要,完全可以直接在内核区完成数据拷贝。这也正是Sendfile所解决的问题,经过Sendfile优化后,整个I/O过程就变成了下面这个样子。
通过以上的介绍不难看出,Kafka的设计初衷是尽一切努力在内存中完成数据交换,无论是对外作为一整个消息系统,或是内部同底层操作系统的交互。如果Producer和Consumer之间生产和消费进度上配合得当,完全可以实现数据交换零I/O。这也就是我为什么说Kafka使用“硬盘”并没有带来过多性能损失的原因。下面是我在生产环境中采到的一些指标。
(20 Brokers, 75 Partitions per Broker, 110k msg/s)
此时的集群只有写,没有读操作。10M/s左右的Send的流量是Partition之间进行Replicate而产生的。从recv和writ的速率比较可以看出,写盘是使用Asynchronous+Batch的方式,底层OS可能还会进行磁盘写顺序优化。而在有Read Request进来的时候分为两种情况,第一种是内存中完成数据交换。
Send流量从平均10M/s增加到了到平均60M/s,而磁盘Read只有不超过50KB/s。PageCache降低磁盘I/O效果非常明显。
接下来是读一些收到了一段时间,已经从内存中被换出刷写到磁盘上的老数据。
其他指标还是老样子,而磁盘Read已经飚高到40+MB/s。此时全部的数据都已经是走硬盘了(对硬盘的顺序读取OS层会进行Prefill PageCache的优化)。依然没有任何性能问题。Tips1. Kafka官方并不建议通过Broker端的log.flush.interval.messages和来强制写盘,认为数据的可靠性应该通过Replica来保证,而强制Flush数据到磁盘会对整体性能产生影响。
2. 可以通过调整/proc/sys/vm/dirty_background_ratio和/proc/sys/vm/dirty_ratio来调优性能。
a. 脏页率超过第一个指标会启动pdflush开始Flush Dirty PageCache。
b. 脏页率超过第二个指标会阻塞所有的写操作来进行Flush。
c. 根据不同的业务需求可以适当的降低dirty_background_ratio和提高dirty_ratio。PartitionPartition是Kafka可以很好的横向扩展和提供高并发处理以及实现Replication的基础。
扩展性方面。首先,Kafka允许Partition在集群内的Broker之间任意移动,以此来均衡可能存在的数据倾斜问题。其次,Partition支持自定义的分区算法,例如可以将同一个Key的所有消息都路由到同一个Partition上去。 同时Leader也可以在In-Sync的Replica中迁移。由于针对某一个Partition的所有读写请求都是只由Leader来处理,所以Kafka会尽量把Leader均匀的分散到集群的各个节点上,以免造成网络流量过于集中。
并发方面。任意Partition在某一个时刻只能被一个Consumer Group内的一个Consumer消费(反过来一个Consumer则可以同时消费多个Partition),Kafka非常简洁的Offset机制最小化了Broker和Consumer之间的交互,这使Kafka并不会像同类其他消息队列一样,随着下游Consumer数目的增加而成比例的降低性能。此外,如果多个Consumer恰巧都是消费时间序上很相近的数据,可以达到很高的PageCache命中率,因而Kafka可以非常高效的支持高并发读操作,实践中基本可以达到单机网卡上限。
不过,Partition的数量并不是越多越好,Partition的数量越多,平均到每一个Broker上的数量也就越多。考虑到Broker宕机(Network Failure, Full GC)的情况下,需要由Controller来为所有宕机的Broker上的所有Partition重新选举Leader,假设每个Partition的选举消耗10ms,如果Broker上有500个Partition,那么在进行选举的5s的时间里,对上述Partition的读写操作都会触发LeaderNotAvailableException。
再进一步,如果挂掉的Broker是整个集群的Controller,那么首先要进行的是重新任命一个Broker作为Controller。新任命的Controller要从Zookeeper上获取所有Partition的Meta信息,获取每个信息大概3-5ms,那么如果有10000个Partition这个时间就会达到30s-50s。而且不要忘记这只是重新启动一个Controller花费的时间,在这基础上还要再加上前面说的选举Leader的时间 -_-!!!!!!
此外,在Broker端,对Producer和Consumer都使用了Buffer机制。其中Buffer的大小是统一配置的,数量则与Partition个数相同。如果Partition个数过多,会导致Producer和Consumer的Buffer内存占用过大。tips1. Partition的数量尽量提前预分配,虽然可以在后期动态增加Partition,但是会冒着可能破坏Message Key和Partition之间对应关系的风险。
2. Replica的数量不要过多,如果条件允许尽量把Replica集合内的Partition分别调整到不同的Rack。
3. 尽一切努力保证每次停Broker时都可以Clean Shutdown,否则问题就不仅仅是恢复服务所需时间长,还可能出现数据损坏或其他很诡异的问题。ProducerKafka的研发团队表示在0.8版本里用Java重写了整个Producer,据说性能有了很大提升。我还没有亲自对比试用过,这里就不做数据对比了。本文结尾的扩展阅读里提到了一套我认为比较好的对照组,有兴趣的同学可以尝试一下。
其实在Producer端的优化大部分消息系统采取的方式都比较单一,无非也就化零为整、同步变异步这么几种。
Kafka系统默认支持MessageSet,把多条Message自动地打成一个Group后发送出去,均摊后拉低了每次通信的RTT。而且在组织MessageSet的同时,还可以把数据重新排序,从爆发流式的随机写入优化成较为平稳的线性写入。
此外,还要着重介绍的一点是,Producer支持End-to-End的压缩。数据在本地压缩后放到网络上传输,在Broker一般不解压(除非指定要Deep-Iteration),直至消息被Consume之后在客户端解压。
当然用户也可以选择自己在应用层上做压缩和解压的工作(毕竟Kafka目前支持的压缩算法有限,只有GZIP和Snappy),不过这样做反而会意外的降低效率!!!! Kafka的End-to-End压缩与MessageSet配合在一起工作效果最佳,上面的做法直接割裂了两者间联系。至于道理其实很简单,压缩算法中一条基本的原理“重复的数据量越多,压缩比越高”。无关于消息体的内容,无关于消息体的数量,大多数情况下输入数据量大一些会取得更好的压缩比。
不过Kafka采用MessageSet也导致在可用性上一定程度的妥协。每次发送数据时,Producer都是send()之后就认为已经发送出去了,但其实大多数情况下消息还在内存的MessageSet当中,尚未发送到网络,这时候如果Producer挂掉,那就会出现丢数据的情况。
为了解决这个问题,Kafka在0.8版本的设计借鉴了网络当中的ack机制。如果对性能要求较高,又能在一定程度上允许Message的丢失,那就可以设置request.required.acks=0 来关闭ack,以全速发送。如果需要对发送的消息进行确认,就需要设置request.required.acks为1或-1,那么1和-1又有什么区别呢?这里又要提到前面聊的有关Replica数量问题。如果配置为1,表示消息只需要被Leader接收并确认即可,其他的Replica可以进行异步拉取无需立即进行确认,在保证可靠性的同时又不会把效率拉得很低。如果设置为-1,表示消息要Commit到该Partition的ISR集合中的所有Replica后,才可以返回ack,消息的发送会更安全,而整个过程的延迟会随着Replica的数量正比增长,这里就需要根据不同的需求做相应的优化。tips1. Producer的线程不要配置过多,尤其是在Mirror或者Migration中使用的时候,会加剧目标集群Partition消息乱序的情况(如果你的应用场景对消息顺序很敏感的话)。
2. 0.8版本的request.required.acks默认是0(同0.7)。ConsumerConsumer端的设计大体上还算是比较常规的。
o 通过Consumer Group,可以支持生产者消费者和队列访问两种模式。
o Consumer API分为High level和Low level两种。前一种重度依赖Zookeeper,所以性能差一些且不自由,但是超省心。第二种不依赖Zookeeper服务,无论从自由度和性能上都有更好的表现,但是所有的异常(Leader迁移、Offset越界、Broker宕机等)和Offset的维护都需要自行处理。
o 大家可以关注下不日发布的0.9 Release。这帮货又用Java重写了一套Consumer。把两套API合并在一起,同时去掉了对Zookeeper的依赖。据说性能有大幅度提升哦~~tips强烈推荐使用Low level API,虽然繁琐一些,但是目前只有这个API可以对Error数据进行自定义处理,尤其是处理Broker异常或由于Unclean Shutdown导致的Corrupted Data时,否则无法Skip只能等着“坏消息”在Broker上被Rotate掉,在此期间该Replica将会一直处于不可用状态。扩展阅读Sendfile: So what’s wrong with 1975 programming:
Benchmarking:
本博客内容,由本人精心整理
欢迎交流,欢迎转载,大家转载注明出处,禁止用于商业目的。}

我要回帖

更多关于 级进和跳进 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信