Kafka

Kafka 核心概念和操作示例

混江龙づ霸主 提交于 2020-08-17 03:46:30
前面写了篇《聊一聊高并发高可用那些事(一):Kafka 篇》算是二稿吧,本篇是第三稿收尾了。 在本场 Chat 中, 会讲到如下内容: 为什么需要消息队列 高吞吐、高可用 MQ 对比分析 Kafka 相关概念 分区, 副本, 消费组 偏移量的最大值, 消息的存储策略 Zookeeper 上存的 Kafka 数据 如何确保消息只被一个服务消费 重复消费和数据丢失问题 Linux Kafka 操作 Windows 可视化工具 Kafka Tool 生产者和消费者使用代码 阅读全文: http://gitbook.cn/gitchat/activity/5f0672fabdff462974330494 来源: oschina 链接: https://my.oschina.net/u/3778989/blog/4464230

如何使用 Spark 3.0 中新加的 Structured Streaming UI 来进行异常分析

狂风中的少年 提交于 2020-08-16 19:12:49
本文为阿里巴巴技术专家余根茂在社区发的一篇文章。 Structured Streaming 最初是在 Apache Spark 2.0 中引入的,它已被证明是构建分布式流处理应用程序的最佳平台。SQL/Dataset/DataFrame API 和 Spark 的内置函数的统一使得开发人员可以轻松实现复杂的需求,比如支持流聚合、流-流 Join 和窗口。自从 Structured Streaming 发布以来,社区的开发人员经常要求需要更好的方法来管理他们的流作业,就像我们在 Spark Streaming 中所做的那样。为此,Apache Spark 3.0 为 Structured Streaming 开发了一套全新的 UI。 新的 Structured Streaming UI 通过有用的信息和统计信息提供了一种简单的方法来监控所有流作业,从而使开发调试期间的故障排除变得更容易,在生产环境下通过实时度量更好的理解我们的作业瓶颈。新的 UI 提供了两组统计信息: 流查询作业的聚合信息; 流查询的详细统计信息,包括输入速率(Input Rate)、处理速率(Process Rate)、输入行数(Input Rows)、批处理持续时间(Batch Duration,)、操作持续时间等(Operation Duration)。 文章目录 1 流查询作业的聚合信息 2 详细统计信息 3

Kafka简介

帅比萌擦擦* 提交于 2020-08-16 19:10:51
Kafka Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。 1.介绍 消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一。下面将从Kafka文件存储机制和物理结构角度,分析Kafka是如何实现高效文件存储,及实际应用效果。 1.1 Kafka的特性: 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。 可扩展性:kafka集群支持热扩展 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败) 高并发:支持数千个客户端同时读写 1.2 Kafka的使用场景: 日志收集:一个公司可以用Kafka可以收集各种服务的log

首发:全面到难以置信的485页Java面试题整理,1000+真题赶紧收藏

╄→尐↘猪︶ㄣ 提交于 2020-08-16 17:26:47
本文是年更文章,是专门为了金九银十而整理的一套年度级面试题;以后每年都会以这个为基础更新内容。星光不问赶路人,时光不负有心人; 愿每位程序员朋友都能找到心仪的工作。 这份面试题内容涵盖: Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈。 收藏这份面试题,为你赢得更多机会。 篇幅有限,我会尽可能列出所有面试题,答案文末获取。 MyBatis 什么是MyBatis? MyBatis的优点 MyBatis框架的缺点 MyBatis框架适用场合 MyBatis与Hibernate有哪些不同? #{}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样,怎么办? 模糊查询like语句该怎么写? 通常一个Xml映射文件,都会写-个Dao接口与之对应,请问,这个Dao接口的工作原理是什么? MyBatis是如何进行分页的?分页插件的原理是什么? MyBatis:是如何将sq|执行结果封装为目标对象并返回的?都有哪些映射形式? 如何执行批量插入? 如何获取自动生成的(主)键值? 在mapper中如何传递多个参数? MyBatis动态SQL有什么用?执行原理?有哪些动态SQL? Xml映射文件中

Kubernetes 容灾解决方案的关键能力

最后都变了- 提交于 2020-08-16 14:09:06
Kubernetes 容灾解决方案关键能力 我们面临着不断地需要实施和部署新的软件应用、发展新的商业模式、以及吸引新的客户。通过Kubernetes,我们可以采用云原生方式来进行软件的开发、部署和运维。 基于Kubernetes开发和运行的应用,对于我们实现我们的商业目标,非常重要。但新技术的导入,也会要求我们考虑更多:新的开发方法、新的团队、新的工程师、新的技术、新的合作伙伴、新的供应商、新的挑战。 对CIO们来说,将关键应用转移到Kubernetes上的最大挑战之一,就是容灾恢复能力。 在投入大量资金开发了Kubernetes上的应用后,我们最担心的就是:一旦出现我们无法控制的意外事件,我们的应用变得无法访问。如:云供应商服务意外停止、数据中心电力中断、云服务中断、网络连接中断等。导致用户无法访问应用后,用户满意度大幅下降。 根据著名研究机构Uptime Institute的报告,通常发生服务中断,一般我们会归因到第三方服务上,如托管服务供应商或云服务供应商。31%的服务中断是由由我们无法控制的因素导致的,如:网络错误(30%),IT/软件错误(28%)。对于Kubernetes上的应用,我们需要一个可靠的容灾恢复方案。 根据451 Research的报告,对于关键性应用来说,57%的应用要求RPO<1小时,48%要求RTO<1小时。即使是非关键应用,也有容灾恢复的需求

深入浅出从根上理解 HTTP 缓存机制及原理!

北战南征 提交于 2020-08-16 13:03:06
本文转载自微信公众号「小鹿动画学编程 」,作者小鹿 。转载本文请联系小鹿动画学编程公众号。 HTTP 缓存,对于前端的性能优化方面来讲,是非常关键的,从缓存中读取数据和直接向服务器请求数据,完全就是一个在天上,一个在地下。 我们最熟悉的是 HTTP 服务器响应返回状态码 304,304 代表表示告诉浏览器,本地有缓存数据,可直接从本地获取,无需从服务器获取浪费时间。 至于为什么被缓存,如何命中缓存以及缓存什么时候生效的,我们却很少在实际开发中去了解。今天小鹿借助动画形式来从根上理解 HTTP 缓存机制及原理。 为什么会有缓存? 单纯的从计算机角度去说,比较抽象,咱们看一个实际的例子。比如,我们通常喜欢把没看完的书放在书架上,而看完以及没有看的书放在箱子中保存。 如果我们把所有的书保存在箱子中,每次看书都要去箱子中找,所以非常麻烦和耗时(这里的箱子,可以想象成服务器)。 当我们开始看新书时,第一次从箱子中取出,看了一半,然后我们直接放到书架上,当下次再看书的时候,直接从书架中取出,这里的书架,就是我们下边要讲到的缓存(一个缓存仓库)。 缓存的“龟”则 当浏览器发出请求到数据请求回来的过程,就像是上述中的取书过程。 浏览器在加载资源时,根据请求头的Expires 和 Cache-control 判断是否命中强缓存,是则直接从缓存读取资源,不会发请求到服务器。 如果没有命中强缓存

2020年的秋招已经开始了!最新Java面试题大全(文末附参考答案)送给大家

我与影子孤独终老i 提交于 2020-08-16 11:27:09
包含的模块 本文分为十九个模块,分别是:Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM 共包含 208 道面试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下面一起进入主题吧。 一. Java 基础模块 1.JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。 2.== 和 equals 的区别是什么? == 解读: 对于基本类型和引用类型 == 的作用效果是不同的,如下所示: 基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同; 代码示例

每天花2小时复习Java面试指南,高级架构视频,我进了阿里定级P7

大憨熊 提交于 2020-08-16 10:23:07
2020年Java进阶架构师必备 基础 容器 并发 JVM Java8 计算机网络 计算机操作系统 Linux 数据结构 算法 mysql (优化思路) 系统设计 分布式 线上问题调优(虚拟机,tomcat) 面试指南 工具 Java面试指南宝典感兴趣的可以转发此文关注我私信回复【马士兵】领取 上面这份全套的进阶面试文档学习资料,适合小白入门到高级架构,同时适合工作-两年的同学,因为整套架构体系全程通过项目演变的过程,从传统单机到整合分布式缓存,高井发负载均衡技术数据一致性方案,再到微服务,注册发现,路由熔断,统一配置管理,服务质量管理,中间件技术选型,底层原理源码分析,课程覆盖JAVA、spring全家桶、kafka、 多种MQ、缓存数据库技术,docker容器k8s部署,只要跟着学、不只会操作,还能领悟技术发展的因果关系让您面试先人一 步! 这份完整体系导图感兴趣的转发关注我私信回复【马士兵】免费领取 进阶高级架构师必备全集视频 包括内容有:设计模式、数据结构与算法、高并发多线程、Spring源码设计、JVM调优、Redis 抽丝剥茧设计模式 数据结构与算法 多线程与高并发 Spring源码设计,从入门到精通 JVM调优 Redis 扫码领取 来源: oschina 链接: https://my.oschina.net/u/4383327/blog/4292000

PHP-Swoole操作多进程步骤

爱⌒轻易说出口 提交于 2020-08-16 10:17:48
在以往的开发项目中,要操作进程就会使用PHP自带的 pcntl拓展。但是pcntl存在着许多的不足: pcntl没有提供进程间通信的功能 pcntl不支持重定向标准输入和输出 pcntl只提供了fork这样原始的接口,容易使用错误 这边我们使用swoole进程管理模块,用来替代 PHP 的 pcntl ; 场景:日常任务中,有时需要通过php脚本执行一些日志分析,队列处理等任务,当数据量比较大时,可以使用多进程来处理。 准备: 安装PHP_swoole拓展; write($data)   向管道内写入数据。 $data 的长度在 Linux 系统下最大不超过 8K , MacOS/FreeBSD 下最大不超过 2K start():    执行fork调用,启动子进程。 /** 创建子进程,将数据写入管道,然后启动子进程 */ $process = new \swoole_process([$this, 'sonProcessWork']); $process->write(json_encode($data_pop)); $pid = $process->start(); swoole_event_add():  将一个socket加入到底层的 reactor 事件监听中;在子进程中处理一些耗时的计算或者操作; /** 获取管道的业务数据,进行相关的操作 */ public

K8S(15)监控实战-ELK收集K8S内应用日志

佐手、 提交于 2020-08-16 09:58:13
K8S监控实战-ELK收集K8S内应用日志 目录 K8S监控实战-ELK收集K8S内应用日志 1 收集K8S日志方案 1.1 传统ELk模型缺点: 1.2 K8s容器日志收集模型 2 制作tomcat底包 2.1 准备tomcat底包 2.1.1 下载tomcat8 2.1.2 简单配置tomcat 2.2 准备docker镜像 2.2.1 创建dockerfile 2.2.2 准备dockerfile所需文件 2.2.3 构建docker 3 部署ElasticSearch 3.1 安装ElasticSearch 3.1.1 下载二进制包 3.1.2 配置elasticsearch.yml 3.2 优化其他设置 3.2.1 设置jvm参数 3.2.2 创建普通用户 3.2.3 调整文件描述符 3.2.4 调整内核参数 3.3 启动ES 3.3.1 启动es服务 3.3.1 调整ES日志模板 4 部署kafka和kafka-manager 4.1 但节点安装kafka 4.1.1 下载包 4.1.2 修改配置 4.1.3 启动kafka 4.2 获取kafka-manager的docker镜像 4.2.1 方法一 通过dockerfile获取 4.2.2 直接下载docker镜像 4.3 部署kafka-manager 4.3.1 准备dp清单 4.3.2 准备svc资源清单 4