消息队列
文章平均质量分 51
消息中间件
白小白的小白
你知道的越多,你不知道的越多!
展开
-
RabbitMQ如何保证消息可靠性
Rabbitmq 消息可靠原创 2021-04-29 14:45:41 · 685 阅读 · 0 评论 -
ubuntu安装kafka
ubuntu kafka原创 2022-09-22 15:09:31 · 3700 阅读 · 0 评论 -
高并发下如何设计秒杀系统
之前我做过一个卖布料的电商,里面经常会有秒杀活动,在这里总结一下秒杀活动的流程:1. 瞬间高并发一般秒杀活动都是在秒杀时间的前几分钟和秒杀后的后几分钟,这时候,用户请求会突然增加,这时候并发量就会很大,所以那,这并不是我们后端做一些操作就可以了,也是需要前端和后端共同努力的2. 前端页面静态化活动页面是用户流量的第一入口,所以是并发量最大的地方,但是那,活动页面绝大部分内容都是固定的,比如:商品名称、商品描述、图片等,这时候,这些数据就不要向后端要了,把这些东西写死就好了(页面静态化),图片实在不原创 2021-09-03 15:01:37 · 778 阅读 · 0 评论 -
window安装rocketmq
首先下载rocketmq,我这里下载的版本是v4.4.0, 下载地址:http://rocketmq.apache.org/dowloading/releases/ 然后解压到你指定的目录中:然后配置java maven rocketmq的环境变量,如果之前配置过java maven环境变量,这里可以只配置rocketmq的环境变量:java环境变量:maven环境变量:rocketmq环境变量(注意,就是readme.md的目录):启动 NameServer:使用cmd命令..原创 2021-07-06 10:26:38 · 333 阅读 · 0 评论 -
RocketMQ
转载于:链接地址转载 2020-12-24 13:55:48 · 716 阅读 · 0 评论 -
rabbitmq在python中实现延时队列(库存回滚)
RabbitMQ延时队列实现1.1 消息的TTL消息的TTL(Time To Live)就是消息的存活时间,单位是毫秒 RabbitMQ 可以对队列和消息分别设置TTL对队列设置就是队列没有消费者连着的保留时间,也可以对每一个单独的消息做单独的设置。超过了这个时间,我们认为这个消息就是死了,称之为死信如果队列设置了,消息也设置了,那么会取小的。所以一个消息如果被路由到不同的队列中,这个消息死亡的时间有可能不一样(不同的队列设置)。这里单讲单个消息的TTL,因为它才是实现延迟任务的关键。可以通过设..原创 2021-05-07 15:15:44 · 661 阅读 · 0 评论 -
rabbitmq在python中实现流量削峰
在电商项目中,一但有秒杀活动,一瞬间进来的请求较多,假设一秒中进来的请求2万,但是数据库的并发只有2000,那么如果不做限制的话,db一下就会被打死或者导致很卡,那么就可以利用rabbitmq的ack机制prefetch_count(限制未处理消息的最大值)来平缓的取出数据来进行数据库的操作import threading, timeimport pikaclass SingletonClass(object): """单例模式用来少创建连接""" # 加锁,防止并发较高时,同.原创 2021-04-29 14:26:58 · 470 阅读 · 0 评论 -
rabbitmq在python中的topic主题模式封装
主题模式和路由模式类似,不过主题模式支持模糊匹配(类似正则),但匹配规则又与常规的正则表达式不同,比如“#”是匹配全部,“*”是匹配一个词import threadingimport pikaclass SingletonClass(object): """单例模式用来少创建连接""" # 加锁,防止并发较高时,同时创建对象,导致创建多个对象 _singleton_lock = threading.Lock() def __init__(self, user.原创 2021-04-28 23:19:43 · 627 阅读 · 0 评论 -
rabbitmq在python中的routing路由模式封装
routing路由模式:消息生产者将消息发送给交换机按照路由判断,路由是字符串(info) 当前产生的消息携带路由字符(对象的方法),交换机根据路由的key,只能匹配上路由key对应的消息队列,对应的消费者才能消费消息;根据业务功能定义路由字符串从系统的代码逻辑中获取对应的功能字符串,将消息任务扔到对应的队列中业务场景:error 通知;EXCEPTION;错误通知的功能;传统意义的错误通知;客户通知;利用key路由,可以将程序中的错误封装成消息传入到消息队列中,开发者可以自定义消费者,实时接收错误原创 2021-04-28 21:40:47 · 192 阅读 · 0 评论 -
rabbitmq在python中的发布订阅模式封装
publish/subscribe发布订阅模式:消息产生者将消息放入交换机,交换机发布订阅把消息发送到所有消息队列中,对应消息队列的消费者拿到消息进行消费,代码的执行效率不高相关场景:邮件群发,群聊天,广播(广告)import threadingimport pikaclass SingletonClass(object): """单例模式用来少创建连接""" # 加锁,防止并发较高时,同时创建对象,导致创建多个对象 _singleton_lock = threa原创 2021-04-28 21:17:59 · 308 阅读 · 0 评论 -
rabbitmq在python中的work工作模式封装
import threadingimport pikaclass SingletonClass(object): """单例模式用来少创建连接""" # 加锁,防止并发较高时,同时创建对象,导致创建多个对象 _singleton_lock = threading.Lock() def __init__(self, username='baibing', password='123456', ip='ip', port=5672, data={}):原创 2021-04-28 17:05:35 · 386 阅读 · 0 评论 -
rabbitmq中的流量控制
1.流量控制的说明:开启客户端最大的未处理消息队列大小2. 在python中的应用:channel.basic_qos(prefetch_count=1)import pikacredentials = pika.PlainCredentials('baibing', '123456')connection = pika.BlockingConnection(pika.ConnectionParameters(host='47.111.87.61', port=5672, credentials原创 2021-04-28 11:54:58 · 667 阅读 · 0 评论 -
rabbitmq在python中的应用
文章参考地址:地址下载pika,python 连接操作rabbitMQ 主要是使用pika库:pip install pika==1.0.1编写生产者代码:import pikaimport base64, timecredentials = pika.PlainCredentials('用户名', '密码')# 1、连接rabbitmq服务器connection = pika.BlockingConnection(pika.ConnectionParameters(host='ip',原创 2021-04-28 11:28:45 · 354 阅读 · 1 评论 -
rabbitMQ配置外网连接
由于rabbitmq3.0以后的版本默认guest只能从localhost连接不能使用远程连接,所以我们要设置外网连接找到rabbitmq的安装位置,cd进去然后在里面找到etc/rabbitmq,进入后,在etc/rabbitmq/下面新建文件:touch rabbitmq.config 然后将[{rabbit, [{loopback_users, []}]}].放到里面cd rabbitmq/sbin 重新进入你rabbitmq安装目录,然后进入sbin文件中,执行命令重新启动rabbitmq即原创 2021-04-28 09:43:24 · 2189 阅读 · 0 评论 -
centos 安装rabbitMQ
先安装依赖:yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang:yum install erlang -y查看是否安装成功:erl如果出现以下页面则表示安装成功:...原创 2021-04-27 17:53:11 · 143 阅读 · 0 评论