- 博客(11)
- 收藏
- 关注
原创 left join 被驱动表关联字段加索引了还是很慢 问题分析
早上跑线上sql的时候,发现跑得很慢,于是就去定位问题场景表 score_detail_temp(驱动表,5k的数据量)表 order_offline_info(被驱动表,1kw的数据量,被关联字段order_id已经加了索引)分析使用explain来解析sqlEXPLAIN select * from crm.score_detail_temp as sd left join `order`.order_offline_info as oi on sd.order_no =
2021-03-15 10:59:20
1022
原创 Kafka生产者的幂等性和事务性
Kafka生产者的幂等性和事务性Kafka消息交付可靠性定义消息交付可靠性保证,即指Kafka对Producer和Consumer要处理的信息的保证。最多一次:消息可能会丢失,但绝对不会重复 至少一次:消息不会丢失,但可能重复 精确一次:消息不会丢失,也不会重复发送Kafka默认对消息的保证是 至少一次 当然我们都希望精确一次。Kafka同样也提供了对精确一次的实现。主要有两种分别是幂等生产者和事务型生产者幂等生产者若开启首先需要配置enable.idempotence = .
2020-12-17 22:55:31
282
原创 Kafka Producer对连接的管理
Kafka Producer对连接的管理使用TCP连接Kafka Producer连接Broker采用TCP连接。 是基于以下几点考虑可以使用TCP本身提供的某些高级特性,比如多路复用请求,同时轮询多个连接的能力 一般语言类库对TCP封装都较好,对HTTP封装比较简陋如何使用Producer构造生产者对象所需的参数对象 创建KafkaProducer对象实例 调用send()方法 调用KafkaProducer的close方法释放资源生产者建立与节点的连接的时机是在创建Ka.
2020-12-17 22:30:24
996
原创 Kafka消息丢失
Kafka消息丢失Kafka服务端Kafka只对已提交消息做有限度持久化保证已提交消息,收到消息并成功写入Broker,该消息为已提交消息。若ack设置为-1则成功写入broker的意思是leader节点+副本节点都需要写入成功,kafka默认只用leader节点写入成功即可 有限度持久化,即当kafka集群出现故障时,起码有一台broker是活着的。Kafka生产者消息丢失使用了producer.send(msg),这个方法是异步的,不保证消息发送成功,因此应该使用producer.s
2020-12-15 17:57:55
375
原创 Kafka压缩算法学习
Kafka压缩算法何时压缩在producer端发送消息时压缩 broker端在特殊情况也会压缩(应该尽量避免broker端的压缩) broker端和producer端配置的压缩算法不一样 消息的格式不一样 开启压缩需要在producer端配置compression.type参数何时解压缩在consumer端解压缩,Kafka会将使用的压缩算法封装进消息集合当中 broker端也会进行解压缩,用来校验消息的可靠性Producer端压缩,Broker端保持,Consume.
2020-12-15 17:56:56
419
原创 Kafka分区原理机制
分区结构kafka的消息总共是三层结构Topic(第一层结构,表示一个主题)-> Partition(分区,每个消息可以有多个分区) -> 消息实例(具体的消息文本等等,一个消息实例只可能在一个分区里面,不会出现在多个分区中)分区优点分区其实是一个负载均衡的思想。如此设计能使每一个分区独自处理单独的读写请求,提高吞吐量。分区策略轮询策略Round-robin(未指定key新版本默认策略)随机策略Randomness(老版本默认策略)消息键排序策略Key-ordering(指定
2020-12-14 12:34:00
291
原创 Kafka选型
版本kafka经历了 0.7,0.8,0.9,0.10,0.11,1.0,2.0等大版本,1.0以上的版本一般上是升级优化了kafka的流处理。若将kafka当做消息队列差别不大。目前我司使用的是kafka2.0版本一般上我们使用的kafka都是Apache Kafka即社区版的操作系统操作系统无脑选Linux磁盘磁盘分为机械硬盘和固态硬盘,当然固态硬盘性能比机械好很多,但是kafka是追加写,所以一般使用机械硬盘其实也够用。但是具体问题具体分析磁盘容量需要根据公司业务进行实
2020-12-14 12:27:04
503
原创 联结表学习
联结表数据库设计:相同数据不应出现多次.#等值联结select vend_name,prod_name,prod_pricefrom vendors,productswhere vendors.vend_id = products.vend_idorder by vend_name,prod_name;联结实际上做的事是将第一张表的每一行与第二张进行匹配,若不加where则相...
2019-02-28 15:17:57
118
原创 Arrays.asList() 返回的List 进行add() 和remove()操作报错
java.util下面的Arrays和Collections两个类不能产生对象,但是却有很多实用的方法。Array.toString()可以快速打印数组对象Arrays.asList()方法可以接受一个数组,并将其转换为List对象。这里要注意,返回的对象java.util.Arrays$ArrayList对象,而不是java.util.ArrayList对象。这两个对象均继承了AbstractL...
2018-06-19 22:17:52
711
原创 jsp简单原理
从表面上看,jsp页面已经不再需要java类,似乎完全脱离了Java面向对象的特征.事实上,JSP的本质依然是Servlet(一个Java类),每个JSP页面就是一个Servlet实例-JSP页面由系统编译成Servlet,Servlet在负责响应用户请求。具体信息可以在启动Tomcat后随便运行一个Demo,可以再Tomcat的work\Catalina\localhost\jspPrincip...
2018-02-09 14:07:01
150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人