RabbitMQ

未读消息(小红点),前端 与 RabbitMQ 实时消息推送实践,贼简单~

自闭症网瘾萝莉.ら 提交于 2020-11-07 17:10:59
前几天粉丝群里有个小伙伴问过: web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢。 之前在 《springboot + rabbitmq 做智能家居》 中说过可以用 rabbitmq 的 MQTT 协议做智能家居的指令推送,里边还提到过能用 MQTT 协议做 web 的消息推送,而未读消息( 小红点 )功能刚好应用到实时消息推送了。 MQTT 协议就不再赘述了,没接触过的同学翻翻前边的文章温习一下吧,今天还是主要以实践为主! web 端实时消息推送,常用的实现方式比较多,但万变不离其宗,底层基本上还是依赖于 websocket , MQTT 协议也不例外。 RabbitMQ 搭建 RabbitMQ 的基础搭建就不详细说了,自行百度一步一步搞问题不大,这里主要说一下两个比较重要的配置。 1、开启 mqtt 协议 默认情况下 RabbitMQ 是不开启 MQTT 协议的,所以需要我们手动的开启相关的插件,而 RabbitMQ 的 MQTT 协议分为两种。 第一种 rabbitmq_mqtt 提供与后端服务交互使用,对应端口 1883 。 rabbitmq-plugins enable rabbitmq_mqtt 第二种 rabbitmq_web_mqtt 提供与前端交互使用,对应端口 15675 。

阿里工作6年,熬到P7就剩这份学习笔记了,已助朋友拿到7个Offer

只谈情不闲聊 提交于 2020-11-07 12:40:28
在阿里工作了6年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的系统的时候,熬到P7也费了不少心思,小编也是个爱学习的人,把这几年的工作经验整理成了一份完整的笔记。此笔记已助朋友拿到腾讯,阿里,美团等7个offer。 由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 大致内容包括了: Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈! 笔记目录展示: 部分内容截图: 需要文中全部资料 来源: oschina 链接: https://my.oschina.net/u/4326852/blog/4707288

腾讯内容首发:分布式核心原理解析笔记+分布式消息中间件实践笔记PDF版

ε祈祈猫儿з 提交于 2020-11-07 09:56:41
分布式消息中间件实践笔记 首先,这份分布式消息中间件实践笔记是以Java语言编写。 消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。 目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、 Kafka、 RocketMQ、 ZeroMQ、 MetaMQ 等。 这份笔记结合作者近年来在实际项目中使用消息中间件的经历和踩过的一些坑总结整理而成,主要介绍消息中间件使用的背景、基本概念,以及常用的四种消息中间件产品在各个业务场景中的使用案例。作为案例介绍,虽然不能对各种消息中间件产品的所有特性做详细说明,但是希望读者可以通过每章中的案例讨论和实践建议得到启发,为在实际工作中进行产品选型、业务场景方案制定、性能调整等提供思路。 下面会为大家分享分布式消息中间件实践笔记+分布式核心原理解析笔记,为了不影响大家的阅读体验,免费的获取方式放在了文末! 消息队列 系统间通信技术介绍 为何要用消息队列 消息队列的功能特点 设计一个简单的消息队列 消息处理中心 客户端访问 消息协议 AMQP MQTT STOMP XMPP JMS RabbitMQ 简介 工程实例 Java 访问RabbitMQ实例 Spring 整合RabbitMQ 基于RabbitMQ的异步处理

Prometheus监控告警浅析

ぃ、小莉子 提交于 2020-11-07 00:45:15
前言 最近有个新项目需要搞一套完整的监控告警系统,我们使用了开源监控告警系统Prometheus;其功能强大,可以很方便对其进行扩展,并且可以安装和使用简单;本文首先介绍Prometheus的整个监控流程;然后介绍如何收集监控数据,如何展示监控数据,如何触发告警;最后展示一个业务系统监控的demo。 监控架构 Prometheus的整个架构流程可以参考如下图片: 整个流程大致分为收集数据,存储数据,展示监控数据,监控告警;核心组件包括:Exporters,Prometheus Server,AlertManager,PushGateway; Exporters :监控数据采集器,将数据通过Http的方式暴露给Prometheus Server; Prometheus Server :负责对监控数据的获取,存储以及查询;获取的监控数据需要是指定的 Metrics 格式,这样才能处理监控数据;对于查询Prometheus提供了 PromQL 方便对数据进行查询汇总,当然Prometheus本身也提供了Web UI; AlertManager :Prometheus支持通过 PromQL 来创建告警规则,如果满足规则则创建一条告警,后续的告警流程就交给AlertManager,其提供了多种告警方式包括email,webhook等方式; PushGateway

一口气说出 6种 延时队列的实现方法,面试官也得服

☆樱花仙子☆ 提交于 2020-11-06 08:50:51
五一期间原计划是写两篇文章,看一本技术类书籍,结果这五天由于自律性过于差,禁不住各种诱惑,我连电脑都没打开过,计划完美宣告失败。所以在这能看出和大佬之间的差距,人家没白没夜的更文,比你优秀的人比你更努力,难以望其项背,真是让我自愧不如。 知耻而后勇,这不逼着自己又学起来了,个人比较喜欢一些实践类的东西,既学习到知识又能让技术落地,能搞出个 demo 最好,本来不知道该分享什么主题,好在最近项目紧急招人中,而我有幸做了回面试官,就给大家整理分享一道面试题:“ 如何实现延时队列? ”。 下边会介绍多种实现延时队列的思路,文末提供有几种实现方式的 github 地址。其实哪种方式都没有绝对的好与坏,只是看把它用在什么业务场景中,技术这东西没有最好的只有最合适的。 一、延时队列的应用 什么是延时队列?顾名思义:首先它要具有队列的特性,再给它附加一个延迟消费队列消息的功能,也就是说可以指定队列中的消息在哪个时间点被消费。 延时队列在项目中的应用还是比较多的,尤其像电商类平台: 1、订单成功后,在30分钟内没有支付,自动取消订单 2、外卖平台发送订餐通知,下单成功后60s给用户推送短信。 3、如果订单一直处于某一个未完结状态时,及时处理关单,并退还库存 4、淘宝新建商户一个月内还没上传商品信息,将冻结商铺等 。。。。 上边的这些场景都可以应用延时队列解决。 二、延时队列的实现

每天2小时,奋战31天,我凭这份PDF拿下腾讯、阿里、京东等offer

人走茶凉 提交于 2020-11-05 10:08:01
如果像我一样错过暑期return offer,那就不得不加入秋招大军,去经历残酷的海量网申、笔试、面试,在明白找工作的痛苦和不易同时身心俱疲…… 为了最大化求职血泪史的意义,助力大家在招聘季生存下来,我总结了经历的面试经验和心得,重在实用(学弟学妹们都可以参考)。 希望给大家带来一点干货,消除一点迷茫,增加一点把握,求职不易,大家加油! 因为疫情影响,很多大学生非常焦虑,对求职抱有悲观态度。 很多小伙伴抱怨 “2021届也太惨了吧”。 没办法呀,这就是人生吧。 之后的人生中永远会有意外,永远会有困难。 我们别无他法,只有去面对。 除非时间停止,否则我们只能前行。 保持初心,继续努力 想知道我是如何拿下腾讯等大厂的offer的吗?今天分享我的武功秘籍: 资深架构师整理的Java核心技术,面试时面试官必问的知识点。 篇章包括了很多知识点,其中包括了有: Java. MyBatis. ZooKeeper. Dubbo. Elasticsearch. Memcached.Redis. MySQL Spring. Spring Boot. Spring Cloud. RabbitMQ. Kafka.Linux等技术栈等多个知识点! 由于整个文档比较全面,内容比较多,所以我分享的知识里面可能会有一些疏漏整个核心知识点都整理好了,可以关注我, 设计模式技术文档 观察者模式 工厂模式 命令链模式

《吊打面试官》系列-消息队列基础

这一生的挚爱 提交于 2020-11-03 15:42:06
你知道的越多,你不知道的越多 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚(请允许我使用一下夸张的修辞手法)。 于是在一个寂寞难耐的夜晚,暖男我痛定思痛,决定开始写《吊打面试官》系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂Offer! 絮叨 这期本来是准备大家投票出来的哈,然后在Java基础和消息队列选一个写的,但是我一想,Java基础光是集合每种集合我都可以写好几篇了,基础都得写几个月了,那是不是可以先把短的这个消息队列写了? 我脑子灵光一闪,拍了下桌子,那就这么决定了吧! 所以就有这期了哈哈。 重要!在开始之前我想问一下,大家是喜欢我直接怼知识点用自己的语言组织的方式讲,还是这样面试场景的方式讲? 因为我发现一个很严肃的问题,我的开场和结尾要是几百篇都差不多,最后你们会不会厌倦呀? 总之这个建议对我很有用,或者你有什么写作的建议都可以加我微信悄悄跟我说。 面试开始 一个风度翩翩,穿着格子衬衣的中年男子,拿着一个满是划痕的mac向你走来,看着铮亮的头,心想着肯定是尼玛顶级架构师吧

从面试官的角度谈"面试"

馋奶兔 提交于 2020-11-03 07:22:05
最近加入了一家创业型公司,做技术架构,坐标武汉,因为公司是新组建,所以研发团队也是自己来组建,我这边负责JAVA以及前端的二面(最后一面是人事),其中初级的名额是4个,中级的名额是两个,高级一个,这篇文章总结一下我遇到的面试者的问题,希望对读者有一些启发。   做为一名程序员在面试不同岗位和行业时,往往会有不同的面试内容以及方式,不同的企业对于程序员的技能要求和提升空间也有所不同,这就导致各家企业在面试时往往对程序员的考核点各有侧重。   首先是筛选出实在不合适的那一部分。第一面流程也很简单,问一问简单的,只要是感觉还可以的,在这一轮都不会被淘汰。 我们公司的面试流程是只有四面,第一面的基本就是你未来的同事。   第二面是我面,因为基本上过完我这一面,只要价值观或者薪资距离公司的划线差距不是太大,就算是过了。首先,如果来面试的是初级程序员,我往往更加注重基础知识结构,包括计算机基础知识和开发的基础知识,毕竟是初级程序员,我不会去纠结你的技术有多深入,他需要的是一名能够快速学习,像海绵一样吸收知识的人才。而中高级程序员面试则会更注重开发经验和行业经验。不过面到特别好的也会稍微面一些深入一点的问题。会把你当成一个中高级的来面,但是答不上来也不用紧张,实际上这个时候已经是认可你的了,你要是全答上来我才没面子呢。中高级的我在这里就不讲了,对于中高级,技术方面会更看重一些。