Kafka

我敢打赌!这绝对是10月整理的最全的《高频Java面试题集合》

核能气质少年 提交于 2020-10-14 11:51:25
周末,天气放晴,玩的还挺开心, 过后,我像往常一样坐在窗台,看着电脑“发呆”,就不给大家分享技术干货了。 给大家整理一份面试清单总结吧, 都是一些基础的题, 但是IT公司就喜欢考这些基础的东西,所以为了能进大公司就~当复习期末考吧。 花了不少时间整理,在整理过程中也学到了很多东西,请大家认真对待每一题! 面试题模块介绍: 一、Java 基础 JDK 和 JRE 有什么区别? == 和 equals 的区别是什么? 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java 中有什么作用? java 中的 Math.round(-1.5) 等于多少? String 属于基础的数据类型吗? java 中操作字符串都有哪些类?它们之间有什么区别? String str="i"与 String str=new String("i")一样吗? 如何将字符串反转? String 类的常用方法都有那些? 抽象类必须要有抽象方法吗? 普通类和抽象类有哪些区别? 抽象类能使用 final 修饰吗? 接口和抽象类有什么区别? java 中 IO 流分为几种? BIO、NIO、AIO 有什么区别? Files的常用方法都有哪些? 二、容器 java 容器都有哪些? Collection 和 Collections 有什么区别? List、Set、Map

Java Storm 消费kafka数据即KafkaSpout的消费实例,还有 为啥要input.getString(4),这个4怎么来的。

断了今生、忘了曾经 提交于 2020-10-14 11:00:46
使用kafka作为数据源,给storm的后续bolt提供数据的例子,还有 为啥要input.getString(4),这个4怎么来的。 先看main方法,步骤很清新的。 package com.lxk.storm; import com.lxk.storm.bolt.OutInfoBolt; import org.apache.kafka.common.utils.Utils; import org.apache.storm.Config; import org.apache.storm.LocalCluster; import org.apache.storm.kafka.spout.KafkaSpout; import org.apache.storm.kafka.spout.KafkaSpoutConfig; import org.apache.storm.topology.TopologyBuilder; import org.junit.Test; /** * 就测试一下从kafka消费数据,然后在bolt里面可以看到数据。 * * @author LiXuekai on 2020/10/13 */ public class TestKafkaSpout { private static final String TOPOLOGY_NAME = "kafka-spout

java8中parallelStream提升数倍查询效率是怎样实现的,来看看这篇文章

橙三吉。 提交于 2020-10-14 03:33:14
作者:我恰芙蓉王 原文: https://www.cnblogs.com/-tang/p/13283216.html 业务场景 在很多项目中,都有类似数据汇总的业务场景,查询今日注册会员数,在线会员数,订单总金额,支出总金额等。。。这些业务通常都不是存在同一张表中,我们需要依次查询出来然后封装成所需要的对象返回给前端。那么在此过程中,就可以把这个接口中“大任务”拆分成N个小任务,异步执行这些小任务,等到最后一个小任务执行完,把所有任务的执行结果封装到返回结果中,统一返回到前端展示。 同步执行 首先看看同步执行的代码 public class Test { @Data @NoArgsConstructor @AllArgsConstructor @ToString class Result { /** * 在线人数 */ Integer onlineUser; /** * 注册人数 */ Integer registered; /** * 订单总额 */ BigDecimal orderAmount; /** * 支出总额 */ BigDecimal outlayAmount; } @org.junit.Test public void collect() { System.out.println("数据汇总开始"); long startTime = System

基于flink和drools的实时日志处理

橙三吉。 提交于 2020-10-14 01:01:25
1、背景 日志系统接入的日志种类多、格式复杂多样,主流的有以下几种日志: filebeat采集到的文本日志,格式多样 winbeat采集到的操作系统日志 设备上报到logstash的syslog日志 接入到kafka的业务日志 以上通过各种渠道接入的日志,存在2个主要的问题: 格式不统一、不规范、标准化不够 如何从各类日志中提取出用户关心的指标,挖掘更多的业务价值 为了解决上面2个问题,我们基于flink和drools规则引擎做了实时的日志处理服务。 2、系统架构 架构比较简单,架构图如下: 各类日志都是通过kafka汇总,做日志中转。 flink消费kafka的数据,同时通过API调用拉取drools规则引擎,对日志做解析处理后,将解析后的数据存储到Elasticsearch中,用于日志的搜索和分析等业务。 为了监控日志解析的实时状态,flink会将日志处理的统计数据,如每分钟处理的日志量,每种日志从各个机器IP来的日志量写到Redis中,用于监控统计。 3、模块介绍 系统项目命名为eagle。 eagle-api:基于springboot,作为drools规则引擎的写入和读取API服务。 eagle-common:通用类模块。 eagle-log:基于flink的日志处理服务。 重点讲一下eagle-log: 对接kafka、ES和Redis 对接kafka和ES都比较简单

MQ之对比

こ雲淡風輕ζ 提交于 2020-10-13 23:58:01
activeMQ:高效、可扩展、稳定安全企业级消息通信 rabbitMQ:分布式系统可靠、可扩展、功能丰富,内存式堆积,某些条件下触发换页动作将内存中消息换页到磁盘;支持多租户 不支持重试队列,二次封装延迟队列实现呢 拉模式,不回溯,支持消息追踪 多租户 kafka:高吞吐量分布式发布订阅消息系统,可水平扩展,磁盘式堆积,冗余功能 过滤:consumerInterceptor接口或kafka stream的filter消息过滤 不支持优先级、延迟、死信、重试队列 拉模式+推模式 按offset和timestamp维度消息回溯 通插件支持消息追踪(性能) rocketMQ:高吞吐、高可用、适合大规模分布式系统 rabiitMQ一致性丢失问题 https://www.jianshu.com/p/8f7ebbcbeee5 https://blog.csdn.net/u013256816/article/details/79147591 来源: oschina 链接: https://my.oschina.net/u/4410837/blog/4671566

超值!分布式系统架构精讲篇:知识图谱+主流技术体系(专题集合资料附赠)

点点圈 提交于 2020-10-12 11:23:29
如果你期待对分布式系统有一个更全面的认识,想要了解各个技术在分布式系统中如何应用、分别解决哪些问题、有怎样优秀的实现,推荐阅读、收藏本篇。 前言 分布式系统涉及到的理论知识及技术点比较多,以致于很多童鞋都说,分布式系统的学习是入门容易、深入难,通过网络搜索到的知识点较为零散,难以系统化学习、融会贯通。本篇Mike将从以下几个方面分享,带着大家先窥探分布式的全貌,希望为大家厘清分布式学习之路的方向与具体路径。 以上专题资料及学习图谱,获取方式:添加下方小助手VX即可 本篇主题 分布式系统的概念 分布式系统的作用 分布式系统的特性 分布式系统主流技术 分布式系统专题合集及知识图谱 分布式系统的概念 分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。有一种说法:分布式系统是若干独立计算机的组合共同对用户提供服务,但对于用户来说,这些计算机就像是单个相关系统。 布式系统的作用 分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。 分布式系统的特性 布式系统特性主要有透明性、可扩展性、可用性、可靠性、高性能、一致性等。这几个特性是分布式系统的主要衡量指标,开始分布式系统的学习,从了解分布式系统的特性开始。 1、透明性 分布式的特征之一是向用户隐藏系统的内部组织结构,各种计算机之间的差别

远程面试阿里、蚂蚁、京东、美团后整理份283页Java核心面试宝典

懵懂的女人 提交于 2020-10-12 00:23:39
本文整理了一些面试时面试官必问的知识点,其中包括了有基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等。 由于知识点比较全面,内容比较多,所以我将这些Java面试中的核心知识点汇总整理成了一份文档。文档已经上传到了百度云网盘,文末提供获取方式~ 以下是文档涉及的主要内容: JVM 线程 JVM内存区域 JVM运行时内存 垃圾回收与算法 JAVA 四种引用类型 GC分代收集算法 VS 分区收集算法 GC垃圾收集器 JAVA IO/NIO JVM 类加载机制 JAVA集合 接口继承关系和实现 List ArrayList(数组) Vector(数组实现、线程同步) LinkList(链表) Set HashSet(Hash表) TreeSet(二叉树) JAVA多线程并发 JAVA并发知识库 JAVA线程实现/创建方式 4种线程池 线程生命周期(状态) 终止线程4种方式 sleep与wait 区别 start与run区别 JAVA后台线程 JAVA锁 编程基本方法4.1.11. 线程上下文切换 同步锁与死锁 线程池原理 JAVA阻塞队列原理 CyclicBarrier、CountDownLatch、Semaphore的用法

如何正确、高效地阅读源代码?

二次信任 提交于 2020-10-11 18:06:08
十一假期抽空看了看 Kafka 源码,顺便总结了一些高效读源码的方法,用一句话概括:用最高效的方式,读最核心的源码。 先说说怎样才算是高效的方式吧,通常来说,阅读大型项目源码的方法有 2 种: 自上而下(Top-Down) :从 main 函数向下深入,直到最底层的代码。好处在于,你可以遍历完整的顶层功能路径,进而了解各个功能的整体流程。 自下而上(Bottom-Up) :与自上而下相反,先搞懂每个组件的代码和实现机制,然后向上延展,并将其组装,有助于你掌握底层的基础组件代码。 这 2 种方法各有千秋,但我发现,两者相结合可以实现 1+1>2 的效果,具体怎么做呢? 首先, 确认最小单位的组件 ——主要看 Kafka 源码中的包结构,比如 controller、log、server 等,这些基本是按组件划分的,优先级顺序是“log-->network-->controller-->server-->coordinator-->……”,因为后面的组件会频繁调用前面的。 在了解单个组件的源码结构后,就可以 切换成自上而下的方式 ,从一个大的功能点入手,逐步深入到各个底层组件的源码。得益于前面的积累,你会对下沉过程中碰到的各层基础代码非常熟悉,成就感很大。 关于如何选择大的功能点 ,可以从 Kafka 的命令行工具开始,搞明白每一步是如何实现的,在向下钻取的过程中不断复习单个组件的原理

基于 Flink 的典型 ETL 场景实现

北慕城南 提交于 2020-10-10 14:07:36
简介: 本文将从数仓诞生的背景、数仓架构、离线与实时数仓的对比着手,综述数仓发展演进,然后分享基于 Flink 实现典型 ETL 场景的几个方案。 作者:买蓉 · 美团点评高级技术专家 整理:赵阳(Flink 社区志愿者) 校对:苗浩冲(Flink 社区志愿者) 本文将从数仓诞生的背景、数仓架构、离线与实时数仓的对比着手,综述数仓发展演进,然后分享基于 Flink 实现典型 ETL 场景的几个方案。 1.实时数仓的相关概述 1.1 实时数仓产生背景 我们先来回顾一下数据仓库的概念。 数据仓库的概念是于90年代由 Bill Inmon 提出, 当时的背景是传统的 OLTP 数据库无法很好的支持长周期分析决策场景,所以数据仓库概念的4个核心点,我们要结合着 OLTP 数据库当时的状态来对比理解。 面向主题的:数据仓库的数据组织方式与 OLTP 面向事务处理不同。因为数据仓库是面向分析决策的,所以数据经常按分析场景或者是分析对象等主题形式来组织。 集成的:对于数据仓库来说,经常需要去集合多个分散的、异构的数据源,做一些数据清洗等 ETL 处理,整合成一块数据仓库,OLTP 则不需要做类似的集成操作。 相对稳定的:OLTP 数据库一般都是面向业务的,它主要的作用是把当前的业务状态精准的反映出来,所以 OLTP 数据库需要支持大量的增、删、改的操作。但是对于数据仓库来说

干货!一文看Doris在作业帮实时数仓中的应用&实践

牧云@^-^@ 提交于 2020-10-10 04:18:37
数据驱动未来。在大数据生态中,数据分析系统在数据创造价值过程中起着非常关键的作用,直接影响业务决策效率以及决策质量。Apache Doris作为一款支持对海量大数据进行快速分析的MPP数据库,在数据分析领域有着简单易用、高性能等优点。 9月20日,Apache Doris组织了一场线上Meetup,作业帮受邀参加,并带来了一场《Doris在作业帮实时数仓中的应用&实践》的主题分享。 现场分享精华 大家下午好。下面我来介绍下Doris在作业帮实时数仓中的应用与实践。 这次的分享主要分三个主题 1、首先是所在团队的业务与背景介绍 2、其次会介绍下基于Doris,作业帮的查询系统是如何构建的,以及主要解决的问题 3、未来的规划 我所在团队是作业帮大数据团队,主要负责建设公司级数仓,向各个产品线提供面向业务的数据信息,如到课时长、答题情况等业务数据以及如pv、uv、活跃等流量类数据,服务于拉新、教学、BI等多个重要业务线。 在数仓体系中,大数据团队主要负责到ODS-DWS的建设,从DWS到ADS一般是数仓系统和业务线系统的边界。 在过去,由于缺失有效、统一的查询系统,我们探索了很多模式来支持各个业务线发展。 有些业务线对大数据相关技术比较了解,熟悉spark等计算系统,可以自己处理计算。因此会选用kafka 接收数据后使用spark计算的模式来对接大数据团队