RabbitMQ

一口气说出 6种 延时队列的实现方案,面试稳稳的

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

RabbitMQ(二、消息模型)

爱⌒轻易说出口 提交于 2020-10-02 22:01:50
1、消息模型概述   RabbitMQ提供几种消息模型,如下图      其中最后一种是RPC,不是MQ。此处不予讨论。下面用例子说明每种模式。 2、Demo准备工作   首先新建一个springboot项目,引入依赖。 <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> </dependencies>   为了方便操作,先写一个连接MQ的工具类 public class ConnectionUtil { /** * 建立与RabbitMQ的连接 * @return *

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

和自甴很熟 提交于 2020-10-02 13:41:35
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者 | 悟空聊架构 来源 | 悟空聊架构(ID:PassJava666) 转载请联系授权(微信ID:PassJava) 本篇主要内容如下: 主要内容 前言 我们都在讨论分布式,特别是面试的时候,不管是招初级软件工程师还是高级,都会要求懂分布式,甚至要求用过。传得沸沸扬扬的分布式到底是什么东东,有什么优势? 借用火影忍术 风遁 ·螺旋手里剑 看过 火影 的同学肯定知道 漩涡鸣人 的招牌忍术: 多重影分身之术 。 这个术有一个特别厉害的地方, 过程和心得 :多个分身的感受和经历都是相通的。比如 A 分身去找卡卡西(鸣人的老师)请教问题,那么其他分身也会知道 A 分身问的什么问题。 漩涡鸣人 有另外一个超级厉害的忍术,需要由几个影分身完成: 风遁·螺旋手里剑。 这个忍术是靠三个鸣人一起协作完成的。 这两个忍术和分布式有什么关系? 分布在不同地方的系统或服务,是彼此相互关联的。 分布式系统是分工合作的。 案例: 比如 Redis 的 哨兵机制 ,可以知道集群环境下哪台 Redis 节点挂了。 Kafka的 Leader 选举机制 ,如果某个节点挂了,会从 follower 中重新选举一个 leader 出来。(leader

springcloud开发的电子商务小程序平台

ε祈祈猫儿з 提交于 2020-10-02 11:55:59
核心架构:Spring Cloud、Spring Boot、Mybatis、Redis、Rabbit MQ、微服务、分布式、电子商务 核心思想:产品微服务、模块化、原子化、持续集成、分布式、集群部署 开发模式:代码生成工具、驱动式开发模式、提高开发效率 微信扫码可以体验~ 来源: oschina 链接: https://my.oschina.net/u/3613013/blog/4298239

【招聘(深圳)】轻岁 诚聘.NET Core开发

烂漫一生 提交于 2020-09-30 23:55:39
招聘简介 为了支撑公司互联网的战略转型,我们将基于.NET Core + K8S/TKE + 腾讯云云函数的微服务架构,打造高性能、高并发、高扩展的基础平台,同时基于该平台进行应用开发,包括Web端,移动端(微信公众号、小程序、支付宝应用号)的开发。 如果你对【IOT + .NET Core + K8S + 无服务计算/微服务 + 轻应用】感兴趣,有冲劲,肯学习,想往互联网、云原生等新技术方向发展,那这里将是你保持技术领先和成长的好地方。 招聘岗位1:.NET 研发工程师(18k-20k) 任职资格: 1、全日制本科及以上学历,计算机或其他相关专业,3年以上相关工作经验,有独立负责项目经验者优先; 2、.NET 基础扎实,精通C#编程,有丰富的MVC、WebApi开发经验,掌握ASP.NET Core应用开发和ORM框架; 3、掌握面向对象编程思想,掌握常用的设计模式,良好的编程素养; 4、掌握数据库编程;掌握Web前端开发技术; 5、熟悉.NET Core 容器化和基于Kubernetes 的云原生应用开发经验优先; 6、了解MongoDB、Redis、RabbitMQ等技术。 7、有ABP 框架开发经验者优先; 8、自我驱动,热爱学习和总结; 福利: 五险一金;绩效奖金;带薪年假;弹性工作;员工旅游;餐费补贴;节日福利。(没有的我们一起去努力!) 轻岁团队

膜拜!腾讯顶配SpringBoot进阶宝典,完美贴合开发实际

旧巷老猫 提交于 2020-09-30 16:07:44
前言 在过去的几年时间里,最让人兴奋、回头率最高、最能改变游戏规则的东西,大概就是SpringBoot了。它基于约定大于配置原则,甚至有望能够在蓬勃发展的快速应用开发领域成为其领导者。 目前JAVAEE应用体系中繁重的配置、低下的开发效率、高难度的三方集成, 复杂的部署流程等等一直被开发人员所诟病。随着整个架构体系的变化,企业对技术的要求也在变化,现在的企业更注重技术的开箱即用,更注重技术在生态圈中的深度融合,更注重轻量级的运维。因而Springboot这个技术显得尤为重要。 能学好Springboot肯定是能在自己的求职简历上添上一个亮点。学习的过程中有一本好的工具书作为参考其实也是尤为重要的。下面我要介绍的这份 腾讯内部Springboot进阶文档 就用大量的篇幅对比讲解多种同类技术的知识点、使用和区别,大家可以根据自己的喜好进行技术选型;还 讲解了时下流行的接口架构风格RESTful,以及用来实现高并发的Redis和系统间通信的中间件RabbitMQ 最后更是融合了所讲的全部知识点,讲解了两个常用又实用的实战项目。 篇幅限制只能将重点内容展示出来了,需要这份腾讯SpringBoot文档的朋友,获取方式在文末!!! 入门篇 初识Spring Boot 准备开发环境 搭建环境 熟悉Maven 使用开发工具 安装开发工具IDEA及插件 比较IDEA与Eclipse 基础篇