• 凉了!张三同学没答好“进程间通信”,被面试官挂了

    (给程序员的那些事加星标)作者:小林Coding前言开场小故事炎炎夏日,张三骑着单车去面试花了 1 小时,一路上汗流浃背。结果面试过程只花了 5 分钟就结束了,面完的时候,天还是依然是亮的,还得在烈日下奔波 1 小时回去。面试五分钟,骑车两小时。你看,张三因面试没准备好,吹空调的时间只有 5 分钟,来回路上花了 2 小时晒太阳,你说惨不惨?所以啊,炎炎夏日,为了能延长吹空调的时间,我们应该在面试前准备得更充分些,吹空调时间是要自己争取的。很明显,在这一场面试中, 张三在进程间通信这一块没复习好,虽然列出了进...
  • 图文:知乎千万级高性能长连接网关是如何搭建的?

    实时的响应总是让人兴奋的,就如你在微信里看到对方正在输入,如你在王者峡谷里一呼百应,如你们在直播弹幕里不约而同的 666,它们的背后都离不开长连接技术的加持。每个互联网公司里几乎都有一套长连接系统,它们被应用在消息提醒、即时通讯、推送、直播弹幕、游戏、共享定位、股票行情等等场景。而当公司发展到一定规模,业务场景变得更复杂后,更有可能是多个业务都需要同时使用长连接系统。业务间分开设计长连接会导致研发和维护成本陡增、浪费基础设施、增加客户端耗电、无法复用已有经验等等问题。共享长连接系统又需要协调好不同系统间的认...
  • 选型必看:RabbitMQ 七战 Kafka,差异立现

    “应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,最后我们会说明一下怎样选择这两种技术。一、异步消息模式异步消息可以作...
  • 选型必看:RabbitMQ 七战 Kafka,差异立现

    点击上方 "zhisheng"关注, 星标或置顶一起成长Flink 从入门到精通 系列文章作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实...
  • 这些MQ概念你都懂吗:死信队列、重试队列、消息回溯等

    消息队列(MQ)的基本概念,很多时候都要了解清楚,这样在学消息队列中间件就比较能够游刃有余,遇到不清楚的也可以重新翻来看看,加深理解。这里有关于:优先级队列、延迟队列、死信队列、重试队列、消息回溯、消息堆积、消息追踪/消息轨迹、消息过滤、消息审计、消息路由等的介绍。01优先级队列优先级队列不同于先进先出队列,优先级高的消息具备优先被消费的特权,这样可以为下游提供不同消息级别的保证。不过这个优先级也是需要有一个前提的:如果消费者的消费速度大于生产者的速度,并且消息中间件服务器(一般简单的称之为Broker)中...
  • 亿级 ELK 日志平台构建实践

    本篇主要讲工作中的真实经历,我们怎么打造亿级日志平台,同时手把手教大家建立起这样一套亿级 ELK 系统。日志平台具体发展历程可以参考上篇 「从 ELK 到 EFK 演进」废话不多说,老司机们座好了,我们准备发车了。整体架构整体架构主要分为 4 个模块,分别提供不同的功能Filebeat:轻量级数据收集引擎。基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择。Kafka:...
  • 消息队列探秘 – RabbitMQ 消息队列介绍

    1. 历史RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。Rabbi...
  • SpringBoot +RabbitMQ 做智能家居,居然如此简单!

    公众号后台回复“面试”,获取精品学习资料扫描下方二维码了解详情,试听课程本文来源:程序员内点事前一段有幸参与到一个智能家居项目的开发,由于之前都没有过这方面的开发经验,所以对智能硬件的开发模式和技术栈都颇为好奇。智能可燃气体报警器产品是一款可燃气体报警器,如果家中燃气泄露浓度到达一定阈值,报警器检测到并上传气体浓度值给后台,后台以电话、短信、微信等方式,提醒用户家中可能有气体泄漏。用户还可能向报警器发一些关闭报警、调整音量的指令等。整体功能还是比较简单的,大致的逻辑如下图所示:但当我真正的参与其中开发时,其...
  • 再见,RabbitMQ,你好,Kafka!

    成熟的消息队列产品很多,说到海量数据下高吞吐高并发,Kafka不是针对谁,毋庸置疑的首选!因为Kafka在这里有极为优秀和出色的设计!为了保证数据的写入性能,Kafka是基于操作系统的页缓存来实现文件写入的。Kafka高性能写入的再一个设计是磁盘顺序写。Kafka作为海量数据大并发高吞吐的消息队列首选,在底层架构设计上有太多的技术点,要想驾驭Kafka队列,要想在高端笔试面试中占据优势,你需要一波硬核训练营!
  • 半吊子架构师,一来就想干掉RabbitMQ ...

    点击上方蓝色字体,选择“设为星标”回复”666“获取面试宝典作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这
  • 非常强悍的 RabbitMQ 总结,写得真好

    Toptic Exchange,是指发送到Topic Exchange的消息被转发到所有关心的Routing key中指定topic的Queue上。Exchange 将routing key和某Topic进行模糊匹配,此时队列需要绑定一个topic。confirm 确认消息、Return返回消息理解confirm消息确认机制消息的确认,指生产者收到投递消息后,如果Broker收到消息就会给我们 的生产者一个应答,生产者接受应答来确认broker是否收到消息。如果设置为false,broker将会自动删除该消息。rabbitMQ提供了一种qos的功能,即非自动确认消息的前提下,如果有一定数目的消息未被确认,不进行新的消费。
  • 基于Kafka Connect的流数据同步服务实现和监控体系搭建

    Kafka Connect 可以将完整的存储系统中的数据注入到 Kafka 的 Topic 中,或者将服务器的系统监控指标注入到 Kafka,然后像正常的 Kafka 流处理机制一样进行数据流处理。Kafka Connnect 有两个核心概念:Source 和 Sink。Source 负责导入数据到 Kafka,Sink 负责从 Kafka 导出数据,它们都被称为 Connector。Connectors 的发布和开发可以参照官方文档。当 Connector 首次提交到集群时,Worker 将重新平衡集群中的全部 Connectors 及其 Tasks,以便每个 Worker 具有大致相同的工作量。
  • 选型必看:RabbitMQ 七战 Kafka,差异立现

    的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。不同于基于队列和交换器的RabbitMQ,Kafka的存储层是使用分区事务日志来实现的。相应的,Kafka按照类别存储记录集,并且把这种类别称为主题。当消息到达时,Kafka就会把他们追加到分区尾部。尽管有时候RabbitMQ和Kafka可以当做等价来看,但是他们的实现是非常不同的。
  • RabbitMQ的六种工作模式

    一.基于erlang语言:是一种支持高并发的语言RabbitMQ的六种工作模式:1.1 simple简单模式消息产生着§将消息放入队列消息的消费者 监听 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除应用场景:聊天1.2 work工作模式消息产生者将消息放入队列消费者可以有多个,消费者1,消费者2,同时监听同一个队列,消息被消费?
  • 一篇小文带你走进RabbitMQ的世界

    对了还有重要的一点,RabbitMQ支持事务,而Kafka不支持。这也是很多金融系统选择RabbitMQ作为消息中间件的原因。而RabbitMQ是基于AMQP协议实现的。所以RabbitMQ提出了信道的概念,一个TCP链接里面可以支持多个信道同时通信,以提高通信效率。broker一个启动的RabbitMQ实例,代表一个broker。交换器向RabbitMQ发送消息时,先把消息先发到交换器,再由交换器根据相关路由规则发到特定队列上。目前 RabbitMQ的交换器共四种类型:direct、fanout、topic、headers。先来看一下典型的RabbitMQ集群架构图。另外RabbitMQ集群分为内存节点和磁盘节点,集群当中必须存在磁盘节点。
  • 选型必看:RabbitMQ 七战 Kafka,差异立现

    点击上方“服务端思维”,选择“设为星标”回复”669“获取独家整理的精选资料集回复”加群“加入全国服务端高端社群「后端圈」作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ
  • 面试官:说说Kafka处理请求的全流程

    在源码分析之前我先总结性的说了说Kafka底层的通信模型。应对面试官询问Kafka请求全过程已经够了。还有个 IO 线程池,即KafkaRequestHandlerPool,执行真正的处理,对应的参数是num.io.threads,默认值是 8。源码级别剖析网络通信模型Kafka 网络通信组件主要由两大部分构成:SocketServer 和 KafkaRequestHandlerPool。KafkaRequestHandlerPoolIO线程池,实际处理请求的线程。handle方法是位于KafkaApis类中,可以理解为通过switch,根据请求头里面不同的apikey调用不同的handle来处理请求。表明处理完请求之后是塞给对应的Processor的。而通知它leader已经变更的请求
  • RabbitMQ 七战 Kafka,差异立现!

    的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。不同于基于队列和交换器的RabbitMQ,Kafka的存储层是使用分区事务日志来实现的。相应的,Kafka按照类别存储记录集,并且把这种类别称为主题。尽管有时候RabbitMQ和Kafka可以当做等价来看,但是他们的实现是非常不同的。
  • 选型必看:RabbitMQ 七战 Kafka,差异立现

    作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。不同于基于队列和交换器的RabbitMQ,Kafka的存储层是使用分区事务日志来实现的。相应的,Kafka按照类别存储记录集,并且把这种类别称为主题。尽管有时候RabbitMQ和Kafka可以当做等价来看,但是他们的实现是非常不同的。
公告

《从零开始开发BBS》课程上线啦,快来跟着我一步步搭建属于你的BBS吧。

课程地址:https://www.shiyanlou.com/courses/1436
9折优惠邀请码: ZHwfIjb1

该课程会带领大家一步步的了解并熟悉Go语言开发,如果你是一个Go语言初学者,或者正准备学习Go语言,那么这个课程非常适合你。如果你熟练掌握了本课程中的知识点,相信你就已经入门Go语言开发,并能胜任日常的开发工作了。