RabbitMQ

Amqp与RabbitMQ使用

匆匆过客 提交于 2020-11-21 12:25:05
pom: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 配置: spring.rabbitmq.host=127.0.0.1 spring.rabbitmq.username = guest spring.rabbitmq.password =guest Main类,启动rabbitmq注释。 @EnableRabbit public class DemoApplication {} 监控类Service,必须@EnableRabbit与@RabbitListener一起使用。 才可以有其他写法,也可以指定监控配置等,官网有写法说明: https://docs.spring.io/spring-amqp/docs/2.0.2.RELEASE/api/org/springframework/amqp/rabbit/annotation/EnableRabbit.html @Service public class BookService { @RabbitListener(queues = "cw.news" ) public void receive(Book book){ System

分布式之MQ复习精讲

馋奶兔 提交于 2020-11-21 06:21:32
点击上方 蓝色字体 ,关注我们 作者:孤独烟 出处: http://rjzheng.cnblogs.com/ 声明:本文版权归作者和博客园共有) 引言 为什么写这篇文章? 博主有两位朋友分别是小A和小B: 1.小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。 2.小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点说,就是调调API。对为什么使用这些中间件啊?如何保证高可用啊?没有充分的认识。 庆幸的是两位朋友都很有上进心,于是博主写这篇文章,帮助他们复习一下关于消息队列中间件这块的要点 复习要点 本文大概围绕如下几点进行阐述: 1.为什么使用消息队列? 2.使用消息队列有什么缺点? 3.消息队列如何选型? 4.如何保证消息队列是高可用的? 5.如何保证消息不被重复消费? 6.如何保证消费的可靠性传输? 7.如何保证消息的顺序性? 我们围绕以上七点进行阐述。需要说明一下,本文不是《消息队列从入门到精通》这种课程,因此只是提供一个复习思路,而不是去教你们怎么调用消息队列的API。建议对消息队列不了解的人,去找点消息队列的博客看看,再看本文,收获更大 正文 1

RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)

我怕爱的太早我们不能终老 提交于 2020-11-21 04:07:06
RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs.com/wuzhiyuan/p/6856985.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4428122/blog/4731441

秒杀全网!SpringCloud微服务电商实战项目(整套源码+视频+文档)

强颜欢笑 提交于 2020-11-21 00:36:02
写文章很久了,听到粉丝问的最多的问题就是:有没有新的完整的项目,因为现在很多流传的项目都太老了,实战意义不是很强。很多程序员每项技术单独拿出来有可能很厉害,例如:springcloud、springboot、redis、nginx、mysql、rabbitMq等,但是普遍缺乏将所有的这些技术整合到一起,从前端到后端,从开发到部署上线,从每个知识点到整体的设计。 本次分享不是分享项目而是教你如何开发一个项目细节流程。 简介 项目技术栈 基于springBoot2.x、springCloud采用前后端分离的架构;利用FastDFS作为分布式文件存储系统,Canal实现数据同步,监控数据变化;Elasticsearch+IK+Kibana实现商品搜索功能;Spring Security Oauth2 JWT实现微服务统一认证和资源授权;利用RabbitMq实现异步解耦;Seata实现分布式事务等,从而打造一个高可用的分布式电商系统。 技术架构 系统架构 功能教程 模块说明 项目截图 资料介绍 项目源码 视频教程 工具清单 再次说明,本次分享不是分享项目!而是教你如何开发一个项目细节流程,希望你能够在实际开发中能够得心应手! 需要获取得话麻烦一键三连之后看下图小助理的微信:( vip1024x )添加即可免费获取到哦 来源: oschina 链接: https://my.oschina

支付系统高可用架构设计实战,可用性高达99.999!

情到浓时终转凉″ 提交于 2020-11-20 00:23:38
作者:冯忠旗 juejin.im/post/5cfde01bf265da1bba58f863 一、背景 对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全不间断运行可以说“难于上青天”。为此,对应用可用性程度的衡量标准一般有3个9到5个9。 对于一个功能和数据量不断增加的应用,要保持比较高的可用性并非易事。为了实现高可用,「付钱拉」从避免单点故障、保证应用自身的高可用、解决交易量增长等方面做了许多探索和实践。 在不考虑外部依赖系统突发故障,如网络问题、三方支付和银行的大面积不可用等情况下,「付钱拉」的服务能力可以达到99.999%。 本文重点讨论如何提高应用自身的可用性,关于如何避免单点故障和解决交易量增长问题会在其他系列讨论。 为了提高应用的可用性,首先要做的就是尽可能避免应用出现故障,但要完全做到不出故障是不可能的。互联网是个容易产生“蝴蝶效应”的地方,任何一个看似很小的、发生概率为0的事故都可能出现,然后被无限放大。 大家都知道RabbitMQ本身是非常稳定可靠的,「付钱拉」最开始也一直在使用单点RabbitMQ,并且从未出现运行故障,所以大家在心理上都认为这个东西不太可能出问题。 直到某天,这台节点所在的物理主机硬件因为年久失修坏掉了,当时这台RabbitMQ就无法提供服务,导致系统服务瞬间不可用。 故障发生了也不可怕

互联网公司的面试官是如何360°无死角考察候选人的?

淺唱寂寞╮ 提交于 2020-11-18 18:27:15
作者: 石杉的架构笔记 一、写在前面 最近收到不少读者反馈,说自己在应聘一些中大型互联网公司的Java工程师岗位时遇到了不少困惑。 这些同学说自己也做了精心准备,网上搜集了不少Java面试题,然而实际去互联网公司面试才发现,人家问的,和你准备的对不上号,这就很尴尬了。 二、先来体验一个真实的面试连环炮 好,闲话不多说,我们进入正题! 本系列文章,我们将会从消息中间件、分布式缓存、分布式搜索、分布式架构、海量数据、NoSQL、高并发、高可用、高性能、数据库、JVM虚拟机等各方面聊一下面试中的高频技术问题。 现在一些中大型互联网公司的面试官,在面试候选人时,一般都会采取连环炮的策略来深挖一个候选人的技术水平。 举个例子,比如说看你简历上写了熟悉消息中间件(MQ技术)。那么可能我们就会有一个类似下面这样的连环炮式发问: 说说你们公司线上生产环境用的是什么消息中间件? 那你们线上系统是有哪些技术挑战,为什么必须要在系统里引入消息中间件? 你们的消息中间件技术选型为什么是RabbitMQ? 为什么不用RocketMQ或者是Kafka?技术选型的依据是什么? 你们怎么保证消息中间件的高可用性?避免消息中间件故障后引发系统整体故障? 使用消息中间件技术的时候,你们怎么保证投递出去的消息一定不会丢失? 你们怎么保证投递出去的消息只有一条且仅仅一条,不会出现重复的数据?

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

六眼飞鱼酱① 提交于 2020-11-18 14:39:26
本文收录在 GitHub 地址 https://github.com/chengxy-nds/Springboot-Notebook 最近部门号召大伙多组织一些技术分享会,说是要活跃公司的技术氛围,但早就看穿一切的我知道,这 T M 就是为了刷 KPI 。不过,话说回来这的确是件好事,与其开那些没味的扯皮会,多做技术交流还是很有助于个人成长的。 于是乎我主动报名参加了分享,咳咳咳~ ,真的不是为了那点 KPI ,就是想和大伙一起学习学习! 这次我分享的是 springboot + rabbitmq 如何实现消息确认机制,以及在实际开发中的一点踩坑经验,其实整体的内容比较简单,有时候事情就是这么神奇,越是简单的东西就越容易出错。 可以看到使用了 RabbitMQ 以后,我们的业务链路明显变长了,虽然做到了系统间的解耦,但可能造成消息丢失的场景也增加了。例如: 消息生产者 - > rabbitmq服务器(消息发送失败) rabbitmq服务器自身故障导致消息丢失 消息消费者 - > rabbitmq服务(消费消息失败) 所以说能不使用中间件就尽量不要用,如果为了用而用只会徒增烦恼。开启消息确认机制以后,尽管很大程度上保证了消息的准确送达,但由于频繁的确认交互, rabbitmq 整体效率变低,吞吐量下降严重,不是非常重要的消息真心不建议你用消息确认机制。 下边我们先来实现

这三年被分布式坑惨了,曝光十大坑

丶灬走出姿态 提交于 2020-11-15 19:25:28
点击蓝色“ Java建设者 ”关注我哟 加个“ 星标 ”,及时阅读最新技术文章 本篇主要内容如下: 主要内容 前言 我们都在讨论分布式,特别是面试的时候,不管是招初级软件工程师还是高级,都会要求懂分布式,甚至要求用过。传得沸沸扬扬的分布式到底是什么东东,有什么优势? 借用火影忍术 风遁 · 螺旋手里剑 看过 火影 的同学肯定知道 漩涡鸣人 的招牌忍术: 多重影分身之术 。 这个术有一个特别厉害的地方, 过程和心得 :多个分身的感受和经历都是相通的。比如 A 分身去找卡卡西(鸣人的老师)请教问题,那么其他分身也会知道 A 分身问的什么问题。 漩涡鸣人 有另外一个超级厉害的忍术,需要由几个影分身完成: 风遁·螺旋手里剑。 这个忍术是 靠三个鸣人一起协作完成的。 这两个忍术和分布式有什么关系? 分布在不同地方的系统或服务,是彼此相互关联的。 分布式系统是分工合作的。 案例: 比如 Redis 的 哨兵机制 ,可以知道集群环境下哪台 Redis 节点挂了。 Kafka的 Leader 选举机制 ,如果某个节点挂了,会从 follower 中重新选举一个 leader 出来。(leader 作为写数据的入口,follower 作为读的入口) 那 多重影分身之术 有什么缺点? 会消耗大量的查克拉。分布式系统同样具有这个问题,需要几倍的资源来支持。 对分布式的通俗理解 是一种工作方式

这三年被分布式坑惨了,曝光十大坑

≡放荡痞女 提交于 2020-11-15 08:00:00
这是我的第 60 篇原创文章 作者 | 悟空聊架构 来源 | 悟空聊架构 (ID:PassJava666) 转载请联系授权(微信ID:PassJava) 本篇主要内容如下: 主要内容 前言 我们都在讨论分布式,特别是面试的时候,不管是招初级软件工程师还是高级,都会要求懂分布式,甚至要求用过。传得沸沸扬扬的分布式到底是什么东东,有什么优势? 借用火影忍术 风遁 · 螺旋手里剑 看过 火影 的同学肯定知道 漩涡鸣人 的招牌忍术: 多重影分身之术 。 这个术有一个特别厉害的地方, 过程和心得 :多个分身的感受和经历都是相通的。比如 A 分身去找卡卡西(鸣人的老师)请教问题,那么其他分身也会知道 A 分身问的什么问题。 漩涡鸣人 有另外一个超级厉害的忍术,需要由几个影分身完成: 风遁·螺旋手里剑。 这个忍术是 靠三个鸣人一起协作完成的。 这两个忍术和分布式有什么关系? 分布在不同地方的系统或服务,是彼此相互关联的。 分布式系统是分工合作的。 案例: 比如 Redis 的 哨兵机制 ,可以知道集群环境下哪台 Redis 节点挂了。 Kafka的 Leader 选举机制 ,如果某个节点挂了,会从 follower 中重新选举一个 leader 出来。(leader 作为写数据的入口,follower 作为读的入口) 那 多重影分身之术 有什么缺点? 会消耗大量的查克拉