范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

第二章kafka

  引入依赖 	org.apache.kafka     kafka_2.13     3.1.0 发送消息异步发送/**      * 异步发送消息      * @param msg      */     @RequestMapping("/send")     public void send(String msg){         log.info("msg[{}]", msg);         //设置生产者属性         Properties properties = new Properties();         properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "master11.bbx.com:9092");         //设置序列化         properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());         properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());         //创建生产者         KafkaProducer producer = new KafkaProducer(properties);         //创建发送的内容         ProducerRecord producerRecord = new ProducerRecord("bbx-first-topic",msg+"--"+System.currentTimeMillis());         //发送数据         producer.send(producerRecord);         //关闭资源         producer.close();     }回调发送/**      * 发送消息  并且回调      * @param msg      */     @RequestMapping("/sendAndCall")     public void sendAndCall(String msg){         log.info("msg[{}]", msg);         //设置生产者属性         Properties properties = new Properties();         properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "master11.bbx.com:9092");         //设置序列化         properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());         properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());         //创建生产者         KafkaProducer producer = new KafkaProducer(properties);         //创建发送的内容         ProducerRecord producerRecord = new ProducerRecord("bbx-first-topic",msg+"--"+System.currentTimeMillis());         //发送数据         producer.send(producerRecord,new sendMsgCallback());         //关闭资源         producer.close();     }  /**  * 回调类  */ @Slf4j class sendMsgCallback implements Callback{      @Override     public void onCompletion(RecordMetadata metadata, Exception exception) {         if(exception == null){             log.info("topic[{}],partition[{}]", metadata.topic(), metadata.partition());         }else{             log.error("发送消息出现错误[{}]", exception);         }     } }同步发送    /**      * 同步发送消息      * @param msg      */     @RequestMapping("/sendSync")     public void sendSync(String msg) throws ExecutionException, InterruptedException {         log.info("msg[{}]", msg);         //设置生产者属性         Properties properties = new Properties();         properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "master11.bbx.com:9092");         //设置序列化         properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());         properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());         //创建生产者         KafkaProducer producer = new KafkaProducer(properties);         //创建发送的内容         ProducerRecord producerRecord = new ProducerRecord("bbx-first-topic",msg+"--"+System.currentTimeMillis());           //发送数据----调用get() 获取结果         RecordMetadata o = (RecordMetadata)producer.send(producerRecord).get();         log.info("sendSync result topic[{}]", o.topic());         //关闭资源         producer.close();      }分区分区策略/**  *DefaultPartitioner  * 
  • If a partition is specified in the record, use it *
  • If no partition is specified but a key is present choose a partition based on a hash of the key *
  • If no partition or key is present choose the sticky partition that changes when the batch is full. * kafka 默认分区相关策略 * 1、指定分区,使用指定分区 * 2、不指定分区,指定key ,按照key 的hashcode 对分区数 取模 * 例: key的hashcode 为11 ,集群的分区设定为2 , 11%2=1 ,测数据会发送到1号分区 * 3、既不指定分区,有不指定key,kafka 采用 Sticky Partition 会随机选择一个分区, * 并尽可能的使用该分区,直到改分区的 batch 满或者以完成(时间到), * kafka 再随机选择一个与上次不同的分区 * */ /** * 指定分区 异步发送消息 * @param msg */ @RequestMapping("/has") public void has(String msg){ log.info("msg[{}]", msg); //设置生产者属性 Properties properties = new Properties(); properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "master11.bbx.com:9092"); //设置序列化 properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); //创建生产者 KafkaProducer producer = new KafkaProducer(properties); //创建发送的内容 --指定分区 ProducerRecord producerRecord = new ProducerRecord("bbx-first-topic",0,"",msg+"--"+System.currentTimeMillis()); //发送数据 producer.send(producerRecord); //关闭资源 producer.close(); }自定义分区 /** * 自定义分区 异步发送消息 * @param msg */ @RequestMapping("/myPartitioner") public void myPartitioner(String msg){ log.info("msg[{}]", msg); //设置生产者属性 Properties properties = new Properties(); properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "master11.bbx.com:9092"); //设置自定义分区 properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, new MyPartitioner().getClass().getName()); //设置序列化 properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); //创建生产者 KafkaProducer producer = new KafkaProducer(properties); //创建发送的内容 ProducerRecord producerRecord = new ProducerRecord("bbx-first-topic",msg+"--"+System.currentTimeMillis()); //发送数据 producer.send(producerRecord); //关闭资源 producer.close(); } package com.bbxdemo.kafka.config; import org.apache.kafka.clients.producer.Partitioner; import org.apache.kafka.common.Cluster; import java.util.Map; /** * 自定义分区策略 */ public class MyPartitioner implements Partitioner { /** * * @param topic * @param key * @param keyBytes * @param value * @param valueBytes * @param cluster * @return */ @Override public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) { String valueStr = value.toString(); if(valueStr.contains("bbx")){ return 0; }else{ return 1; } } @Override public void close() { } @Override public void configure(Map configs) { } }

  • 理直气壮做懒人这份懒人秘籍最低54元起冬日来临气候逐渐变冷,人们也进入了犯懒的季节。尤其是上班族,一天劳累过后回家只想躺在床上休息,但是犯懒的时光其它事情怎么办呢?现今的懒人最明显的标志就是花钱买时间,顾名思义就是除了小米有品结束独立运营背后,小米加速整合线上线下渠道中国商报(记者焦立坤见习记者赵熠如)小米有品结束独立运营,并入小米中国区零售业务板块,在线下一年开出8000家门店的背景下,小米此举何意?小米有品并入中国区零售业务近日小米宣布旗下简单一步绕过TPM安装Windows11Windows11已经推送了两个月,各种补丁没停过,系统也趋于稳定,所以各位有所顾虑的伙伴可以尝试升级了。可是有些稍老的机器是没办法直接安装Windows11,官方检测工具有很多限最近大火的华为手环6怎么样值得买吗,深度分析告诉你答案华为手环6作为华为近期发布的一款定位旗舰的智能手环,其配置了1。47英寸屏幕拥有多达200表盘全天候对我们人体的血压血氧心率等方面进行实时监测,售价为349。这款和智能手表一样的智新疆一企业入选国家级服务型制造示范名单天山网讯(记者马伊宁报道)近日,工业和信息化部公布了第三批服务型制造示范名单,88家示范企业48家示范平台8家共享制造类示范平台25个共享制造示范项目和9个示范城市入选,其中,新疆OLED和LCD屏有啥区别?拿苹果这两部手机对比,原来差距在这里OLED和LCD屏有啥区别?拿苹果这两部手机对比,原来差距这么大现在苹果全系都在用OLED屏,不再使用LCD屏,许多人大为遗憾,认为LCD屏是优于OLED的。甚至喊出了LCD永不为元宇宙与金钱游戏元宇宙这个概念,最近比较火。尤其是Facebook的小扎,把公司名称都改了,并且宣布allin,以后不干别的,要全力搞元宇宙,把这个概念进一步推向火热。有些朋友可能不一定完全了解,想要顶级处理器,想要大电池,这三款旗舰手机堪称到顶旗舰机除了堆料硬核以外,还要具备优秀的用户体验,所以旗舰机大多不会配备大电池,其目的便是为用户提供一个优秀的手感。不过,并不是所有人的需求一样,可能有人喜欢轻薄手感,对续航要求不高联想的成功不是个人的成功最近联想事件沸沸扬扬,有说对的,但也说错的,首先本人要为司马先生点赞,全国人民代表大会是我国的核心政治基础,让一切权力接受人民的监督,这无可厚非,这不是管闲事,也不是所谓吃饱撑得,拿下NBA独家转播权的腾讯,为什么没有和CBA继续合作呢?不知不觉中,CBA新赛季已经默默的开启,为了让球员尽快进入比赛状态,联赛制定了季前赛,让各支球队率先热热身。当球迷按照往常习惯打开腾讯APP的时候,却发现没有了直播。原来通过仔细查华为Mate50核心配置曝光,Mate40低至百元机,买早的花粉心碎11月22日,知情人士爆料称,华为Mate50系列将于明年初加入。新机将采用麒麟990骁龙898混合方案,全4G网络,首发搭载鸿蒙OS3。0。值得一提的是,由于华为Mate50新机
    业内人士5。7英寸大屏iPhoneSE最早将于2023年推出显示屏行业顾问公司DSCC创始人兼CEORossYoung在社交媒体发文称,苹果计划最早在2023年发布配备5。7英寸显示屏的第四代iPhoneSE,此前推测的发布时间是2024年这些iPhone官方配件平替真是越用越香第三方配件新年推荐随着新年越来越近,相信绝大部分同学在经历了iPhone的发布以后随着市场逐渐的正常化以后,已经拿到了相对优惠的iPhone13系列。但是由于苹果公司出的环保政策导致了我们现在在苹果手机App适老化改造当用情走心胡立彪为保障老龄用户权益,工信部自2021年1月起开展为期一年的互联网应用适老化及无障碍改造专项行动,着力解决老年人等群体在使用互联网等技术时遇到的困难。媒体调查显示,一年的专项行二手手机交易平台靠谱吗?不要买二手的手机,现在买个新手机也不要多少钱,二手的手机硬件方面肯定不如全新的,软件还有可能被绑定病毒程序,售后也没保障二手平台还真不知道,如果是去现场买比较好像华强北啊,或者是别对标华为!小米第一款竖向折叠屏手机已在路上今天,博主数码闲聊站爆料,小米研发的竖向折叠屏手机已在路上,有望在今年跟消费者见面。在去年上半年,小米推出了旗下第一款量产折叠屏旗舰MIXFOLD,它采用了类似三星GalaxyZF智慧微课全面学习华为,再读任正非狭路相逢勇者生前程艰险,不能开怀畅饮今天我们开庆祝会,嘴张开我就哑口无言,不知说什么。历史已成过去,未来将面临什么。前程的艰险使我们始终不能有一次开怀畅饮。我国将加入信息技术协定,意味着中国信息Python学习(4)python主要应用领域当下全栈工程师的概念很火,而Python是一种全栈的开发语言,你如果能学好Python,那么前端,后端,测试,大数据分析,爬虫等这些工作你都能胜任。Python主要有以下五大主要应高中生造无人自行车获奖争议续组委会称符合获奖标准近日,有关高中生造出无人自行车获丘成桐奖的报道引发了社会舆论高度关注。有网友指出,这辆被媒体称为自行车版的特斯拉,与网售的2万元左右的无人自行车一模一样。还有网友认为这个自行车版的2021多款旗舰机开始清仓,现在买不吃亏,带你捡漏四款好手机时间过得很快,转眼间离2022年春节还有半个月的时间,在这期间相信很多用户都有计划更换新手机,或者是送给家里的老人。其实现在伴随着多款骁龙8gen1发布以后,去年的老旗舰机型的价格欧瑞博宣布完成新一轮十亿元融资来源人民网近日,深圳市欧瑞博科技股份有限公司(欧瑞博ORVIBO)宣布正式完成新一轮融资,总投资金额十亿。欧瑞博相关负责人介绍,该公司定位以精益创新的产品路线和科技美学的设计能力,中国宝力科技(00164)与宇龙计算机通信科技订立和解协议智通财经APP讯,中国宝力科技(00164)公布,于2017年9月28日,该公司的间接全资附属公司悦眺投资有限公司(买方)宇龙计算机通信科技(深圳)有限公司(卖方)宝力优特科技(深