RabbitMQ

仅仅一夜之间我竟秒杀各大面试官

一个人想着一个人 提交于 2020-12-04 08:25:48
最近写博客比较多,有些同学就会请教面试相关的知识,这里专门开一章,专门讲如何秒杀面试官,通关各大公司的面试,因为我之前在上海就是第一天去面试就搞定,一周频繁的收到offer,现在在北京也是只面试了一周,然后在一堆offer中进行选择。各位同学也不要羡慕,看完本章博客你就能学会如何秒杀面试官,轻松应对一系列的面试。 面试前奏 首先我们面试之前一定要梳理好自己的技术知识体系,然后在书写到简历上,写的技术自己一定要能讲出自己的理解。 项目部分将自己做过的项目罗列到简历上后,不能就不管了,要想秒杀面试官,一定要让他在你的回合里走不出来,在项目这一关一定要梳理好一个核心的项目进行讲解,对该项目的整体流程,业务点,技术点以及最重要的实际场景中遇到的技术难点如何解决的都要去复盘。 通过第二点讲到的如何解决难点,再联系到第一点的技术知识体系去,开始讲述关于这个难点所牵扯到的你技术知识体系中的技术。 最重要的两点技术和项目我们都解决了以后,一定也要将自己在上家公司的工作内容梳理清楚,具体涉及了哪些方法的工作内容,eg.开发,测试,文档,设计等 下面是我关于Java技术点的一些梳理,大家可以学习后扩展自己的技术栈,方便秒杀面试官。 有一些知识点没漏写的话,也可以去看下的文章和书籍,但是记得告知博主漏掉了什么知识点呀。 秒杀系列之Spring 这部分的内容可以直接在我的Spring专栏查阅, 链接:

springboot + rabbitmq 用了消息确认机制,感觉掉坑里了

懵懂的女人 提交于 2020-12-04 01:52:23
今日福利 :扫描上方二维码,回复【黑马】 黑马Java Springboot2(1).0开发头条项目(资料、代码、讲义)14天完整版 最近部门号召大伙多组织一些技术分享会,说是要活跃公司的技术氛围,但早就看穿一切的我知道,这 T M 就是为了刷 KPI 。不过,话说回来这的确是件好事,与其开那些没味的扯皮会,多做技术交流还是很有助于个人成长的。 于是乎我主动报名参加了分享,咳咳咳~ ,真的不是为了那点 KPI ,就是想和大伙一起学习学习! 在这里插入图片描述 这次我分享的是 springboot + rabbitmq 如何实现消息确认机制,以及在实际开发中的一点踩坑经验,其实整体的内容比较简单,有时候事情就是这么神奇,越是简单的东西就越容易出错。 可以看到使用了 RabbitMQ 以后,我们的业务链路明显变长了,虽然做到了系统间的解耦,但可能造成消息丢失的场景也增加了。例如: 消息生产者 - > rabbitmq服务器(消息发送失败) rabbitmq服务器自身故障导致消息丢失 消息消费者 - > rabbitmq服务(消费消息失败) 所以说能不使用中间件就尽量不要用,如果为了用而用只会徒增烦恼。开启消息确认机制以后,尽管很大程度上保证了消息的准确送达,但由于频繁的确认交互, rabbitmq 整体效率变低,吞吐量下降严重,不是非常重要的消息真心不建议你用消息确认机制。

Why does celery needs a message broker?

瘦欲@ 提交于 2020-12-01 09:38:09
问题 As celery is a job queue/task queue, name illustrates that it can maintain its tasks and process them. Then why does it needs a message broker like rabbitmq or redis? 回答1: Celery is a Distributed Task Queue that means that the system can reside across multiple computers across multiple locations the basic architecture is as follows: workers - processes that can take jobs from the bus (task queue) and process the data, it can put the result in the bus for farther processing by a different

补习系列(13)-springboot redis 与发布订阅

雨燕双飞 提交于 2020-12-01 01:48:14
一、订阅发布 订阅发布 是一种常见的设计模式,常见于消息系统的场景。 如下面的图: [来自百科] 消息发布者是消息载体的生产者,其通过某些主题来向 调度中心 发送消息; 而消息订阅者会事先向 调度中心 订阅其 "感兴趣" 的主题,随后会获得新消息。 在这里, 调度中心 是一个负责消息控制中转的逻辑实体,可以是消息队列如ActiveMQ,也可以是Web服务等等。 常见应用 微博,每个用户的粉丝都是该用户的订阅者,当用户发完微博,所有粉丝都将收到他的动态; 新闻,资讯站点通常有多个频道,每个频道就是一个主题,用户可以通过主题来做订阅(如RSS),这样当新闻发布时,订阅者可以获得更新。 二、Redis 与订阅发布 Redis 支持 (pub/sub) 的订阅发布能力,客户端可以通过channel(频道)来实现消息的发布及接收。 1. 客户端通过 SUBSCRIBE 命令订阅 channel 2. 客户端通过PUBLISH 命令向channel 发送消息; 而后,订阅 channel的客户端可实时收到消息。 除了简单的SUBSCRIBE/PUBLISH命令之外,Redis还支持订阅某一个模式的主题(正则表达式), 如下: PSUBSCRIBE / topic / cars /* 于是,我们可以利用这点实现相对复杂的订阅能力,比如: 在电商平台中订阅多个品类的商品促销信息; 智能家居场景

美团架构师总结整理的这份GitHub标星150K+的神仙笔记,我花了两个月肝完成功面进了阿里定级P7,现在分享出来希望大家也能有所提升!

白昼怎懂夜的黑 提交于 2020-11-29 11:23:14
俗话说:不想进大厂的程序员不是好程序员 楼主14年小本毕业。离职也有一段时间了,因为一些原因,休整了一段时间。然后3月初开始准备面试(在上家公司工作之余心里一直有着进大厂的执念)。上家公司是智能家居互联网行业的,使用的技术框架有dubbo、zookeeper、mybatis、springMVC、redis等,数据库是用的mysql。我们主要是java后端开发的,感觉上家公司没啥发展前景了就想着在 金三银四 之际把握机会。但是自身的知识范围不是很广泛,在数据库原理性的知识和sql语句(比如存储过程、触发器)、并发框架dubbo原理性的东西、各个流行框架原理性的东西都比较薄弱和网络编程这块完全抓瞎,主要平时太关注业务了,没有去及时充充电。在面试屡屡碰壁后,沉下心来恶补了一遍java后端的全栈知识,目前还算幸运成功面进阿里。 本着好东西就要拿出来分享的原则,下面我就把我几个月一直在用的PDF文档分享出来给大家,希望对大家有所帮助。 这本PDF总共有30章涵盖了JVM、多线程并发、Spring原理、微服务、Zookeeper、Kafka、算法、RabbitMQ、设计模式、数据结构、Hadoop、Spark、Netty 与RPC等核心知识点。 一键三连+评论,然后添加VX(tkzl6666)即可免费领取这份神仙笔记 主要内容: 目录总述 JVM JVM 是可运行 Java 代码的假想计算机

RabbitMQ erlang "topics"

蓝咒 提交于 2020-11-29 00:41:55
原文链接: http://www.rabbitmq.com/tutorials/tutorial-five-python.html 在前面的例子中我们改进了我们的日志系统。使用 fanout 类型的exchage 只能广播消息。我们使用 direct 来代替,获得了选择性接收消息的可能。 虽然使用direct类型的exchange改善了我们的系统,但它仍然有缺陷,它不能基于多种条件 进行routing。 在我们的日志系统中,我们可能想要订阅日志不仅基于严重性程度,而且基于发布日志的源码。你可能知道 syslog unix tool 中的概念, 那个基于 严格的(info/warning/crit...)和灵巧的(auth/cron/kern)。 这将给我们许多灵活性——我们可能想听仅来自于 'corn'日志中的 严重的错误和kern 里面的所有日志。 在我们的日志系统为了实现那个,我们需要学习更复杂的 topic exchange. Topic exchange 发送给topic exchange的消息不能随便定义一个routing key——routing key 必须是一个由”.”号分隔的单词列表。单词可以是任意的,但是一般情况下它应该代表消息的一些特征。比如下面一些routing key : “stock.usd.nyse” “nyse.vmw” “quick.orange

卸载RabbitMQ和Erlang

这一生的挚爱 提交于 2020-11-29 00:41:42
如何把RabbitMQ卸载干净 原文转载至:https://blog.csdn.net/w893932747/article/details/81018191 To uninstall RabbitMQ and Erlang from the machine completely, do the following: Open the Windows Control Panel. Double-click Programs and Features. In the list of currently installed programs, right-click RabbitMQ Server, and then click Uninstall. In the list of currently installed programs, right-click Erlang OTP, and then click Uninstall. Open the Windows Task Manager. In the Task Manager, look for the process epmd.exe. If this process is still running, right-click it and then click End Process. Delete all the

RabbitMQ问题解决:TCP connection succeeded but Erlang distribution failed

非 Y 不嫁゛ 提交于 2020-11-28 23:55:26
RabbitMQ问题解决:TCP connection succeeded but Erlang distribution failed 参考文章: (1)RabbitMQ问题解决:TCP connection succeeded but Erlang distribution failed (2)https://www.cnblogs.com/hellxz/p/9104028.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/3797416/blog/4758110

RabbitMQ学习笔记(六、RabbitMQ进阶)

大憨熊 提交于 2020-11-28 09:37:20
目录: 性能 存储机制 内存及磁盘告警 性能: 影响RabbitMQ性能的因素有很多,主要的分为硬件性能与软件性能。 ) 硬件性能 :如网络、内存、CPU等等。 ) 软件性能 :消息持久化、消息确认、路由算法与绑定规则、投递消息等等。 1、消息持久化:持久化会写入磁盘,多一次IO操作,设置非持久化可提升性能。 2、消息确认:消费者订阅队列时,设置自动确认也可以提升性能。 3、路由算法与绑定规则:fanout,只要绑定了交换器就可以匹配到,匹配规则少,性能肯定是绑定规则中最佳的;direct,除了交换器还需要匹配路由键,性能次之;topic,最复杂的匹配规则,相对其它两个性能最差。 4、投递消息 存储机制: ) 队列结构 : 消息通常由两部分组成,rabbit_amqqueue_process和backing_queue。 1、rabbit_amqqueue_process:负责协议相关的消息处理,即 接受生产者发布的消息、消息的投递、处理消息的确认 等等。 2、backing_queue:消息存储的具体形式和引擎,并向rabbit_amqqueue_process提供相关接口。 ) 消息在队列中的状态 : 1、alpha:消息内容、索引 全在内存中 。 2、beta:内容在磁盘,索引在内存。 3、gamma:内容在磁盘,索引在内存和磁盘都有( 只有持久化的消息才会处理此状态 )。