Author: admin

0

Kafka基础介绍之consumers

我们在前面的《Kafka基本架构和概述》中知道Kafka最基本的两个组成部分就是producer和Consumers,producer已经在之前的《Kafka基础介绍之Producer》中介绍过了,本文就来继续和大家详细聊一聊Consumers的概念。 Consumers和Consumer Groups 假如我们有一个应用需要从Kafka中读数据,并且把它写到一个data store中,我们首先就需要创建一个consumer的object,然后subscribe到对应的topic中,然后就可以开始接收数据了。这就是最基本的consumer形式,但是假如我们的数据写入的速度很快,而一个consumer处理不过来,这个时候就需要多个consumer一起来接收数据,我们把它称之为consumer...

0

Kafka基础介绍之Producer

我们在之前的《Kafka基本架构和概述》中提到了Kafka的几个重要的组成部分,本文就来深入聊一聊其中的Producer的概念。 简介 我们知道要想使用Kafka,其实最开始就是要创建一个Producer来往其中写消息,可以称之为消息源头吧,没有Producer来写,也就谈不上后面的consumer读了。 写消息粗听起来很简单,但是我们仔细思考一下这里就有很多问题需要确认。比如你的应用可以接受某些消息没有成功写进去吗?或者能够接受有重复的消息被写入吗?亦或是你的应用对写入的速度和延时有要求吗? 各种应用显然对我上面提到的问题有不同的答案,比如说一个log系统,丢一条或者少一条数据并不重要,延时一个几十秒甚至几分钟也不是什么大的问题。但假如是一个销售的系统,丢一条或者少一条销售数据可能就不行了。因此对于不同的应用,不同的要求,Kafka的producer可能都需要有不同的设置来进行匹配。...

TiDB的深入介绍 0

TiDB的深入介绍

本周我们很高兴再次邀请到Shihao给我们带来《TiDB的深入介绍》的讲座,相关总结如下: Slides Shihao使用的Slides见这里。 Q&A 感谢张程给我们做的详细笔记,相关的总结如下:...

0

LinkedIn直播系统是如何实现每秒百万点赞的

现如今直播领域非常火爆,而一个大V的直播很容易就会吸引上百万的用户同时在线。LinkedIn的直播领域专家Akhilesh Gupta在QCon London 2020上介绍了LinkedIn是如何实现百万点赞的架构,本文就根据Akhilesh在会议上的介绍总结了相关的实现方法供大家参考。 场景分析...

Flink的使用和介绍 0

Flink的使用和介绍

本周我们很高兴邀请到了Xin Zhao给我们带来《Flink的使用和介绍》,相关的内容总结如下: Slides Xin Zhao使用的Slides见这里。...

1

Kafka基本架构和概述

我想大家对Kafka或多或少都有所耳闻,那么它究竟是什么呢?其实说白了也很简单,它其实就是一个分布式的消息队列,也就是我们通常所说的消息的发布和订阅,只是它的目标更倾向于高吞吐和低延迟。那我们就从头开始来看看Kafka究竟是如何诞生的。 发布/订阅消息 在正式开始聊Kafka之前,我们来看看什么是消息的发布和订阅。我们先来看这样一个例子:系统中有两个应用程序,然后我们有一个metrics的dashboard,当这两个应用程序开始运行时,会把相关的metric数据发送到dashboard所在的server,然后就可以把它们的metric显示出来,简单的架构如下所示: 这种架构看起来还是很清晰的,但是当我们的系统变得稍微庞大起来,有了更多的应用,也需要有了不同的metric处理方式,比如我们既需要显示metrics的数据到一个UI上,又需要分析这个metric或者根据metric的数据来做一些monitor发送alerts之类的,那整个系统就可能变得复杂起来,甚至有时你会觉得有一些系统,比如monitor其实并不需要你一直把metric发送过去,最好是做个poll的形式,让monitor主动找application来拿数据,于是你的系统变成了下面这样: 这样一来整个系统看起来就很乱,程序员的特性让你蠢蠢欲动,捋起袖子来refactor一下呗,你想啊想,要是能在中间加一层,让所有的应用端把数据都发送给这一层,然后对这个数据感兴趣的server再统一到这一层来拿就完美了,于是你的想法就变成了下面这样的一个架构:...

0

ElasticSearch进阶之输入匹配

我们在日常使用搜索引擎的时候会发现随着我们的输入,会出现一些可以选择的提示,如下图所示,我们称之为即时搜索或者输入搜索。本文就来讨论一下,ElasticSearch在这个方面是如何实现的。 就像上图所示的,在我们输入了johnnie walker bl之后,可以立即显示一些建议,比如johnnie walker...

Cassandra的使用和介绍 1

Cassandra的使用和介绍

本周我们邀请到了Xiaoyu给大家带来了关于《Cassandra的使用和介绍》的讲座,相关的内容总结如下: Xiaoyu使用的slides。 一篇很不错的介绍Cassandra的过去,现在和未来的文章。 这篇文章总结了Cassandra在各大公司中使用的场景。 Wikipedia关于Dynamo的介绍,里面说明了和DynamoDB的关系。...

0

十小时写出一个活动通知的微信小程序

熟悉我的人都知道,我们每周都会举办一次分布式系统话题的讨论(对活动感兴趣的同学可以参考这个网址:https://donggeitnote.com/2021/07/24/topic-introduction/,当然这个不是我们今天讨论的重点),这个讨论的活动安排会发布到各个微信群,这样感兴趣的同学就可以来参加了。在上周五因为我个人的失误,没有更新活动通知中的时间,于是就导致这个活动的消息需要重新发布,这其实给帮忙发布活动的同学带来了很大的困扰。虽然最后也解决了问题,但是过程并不是很开心。所以我就想应该写个小程序来通知一下,这样一方面可以解决我们遇到的问题,比如哪次的时间再写错了,我们只要更新一下小程序内的内容就可以了。另外一方面也可以让一些主动想了解讨论话题的同学能够有一个统一的地方来发现话题。说做就做,一到周六我就开始来着手搞这件事情了。 需求分析 需求大概是我们第一步需要了解清楚的东西,在真正着手之前,我把最基本的需求简单列了一下,如下所示: 活动管理页面 这个页面是让活动发布者管理已经创建的活动以及发布新的活动,主要的功能包括以下几个方面:...