首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
Redis MQ实现
2024-09-01
手把手教你用redis实现一个简单的mq消息队列(java)
众所周知,消息队列是应用系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构.目前使用较多的消息队列有 ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ. 但是如果你不想为你的系统引入一个重量级(相对 redis 来说)的 mq,但是想要享受解耦.异步消息等特性,通过本文你就 get 到了,通过 redis 实现一个简单版的 mq. 为什么是 redis redis 通常作为缓存服务引入,因此大部分系
关于JMS和MQ
2.1 什么是JMS? JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输. 2.2 什么是消息模型 ○ Point-to-Point(P2P) --- 点对点 ○ Publish/Subscribe(Pub/Sub)--- 发布订阅 即点对点和发布订阅模型 2.2.1 P2P (点对点) 1.P2P 2.涉及到的概念 消息队列(Queue) 发送者(Sender) 接收者(Receiver) 每个消息都被发送到一个特定的队列,接收者从队列中获取消息.队列保留着
一次误用CSRedisCore引发的redis故障排除经历
前导 上次Redis MQ分布式改造完成之后, 编排的容器稳定运行了一个多月,昨天突然收到ETL端同事通知,没有采集到解析日志了. 赶紧进服务器看了一下,用于数据接收的receiver容器挂掉了, 尝试docker container start [containerid], 几分钟后该容器再次崩溃. 初步排查: redis连接超限 docker log [containerid] 查看了容器日志: Microsoft.AspNetCore.Mvc.Internal.ControllerAc
Redis基础知识、命令以及java操作Redis
1 nosql的概念 sql:操作(关系型)数据库的标准查询语言 关系型数据库(rdbms):以关系(由行和列组成的二维表)模型为核心数据库,有表的储存系统.(mysql.oracle.sqlserver...) nosql:针对非关系型数据库的语言,弥补关系型数据库的一些缺点,主要用到大的数据量或者高并发的场景下. 非关系型数据库分类: 2 Redis 2.1 Redis是什么 (1) Redis 是一个高性能的 开源的.C语言写的Nosql(非关系型数据库),数据保存可以存储在内存中或者磁盘
记一个Redis分布式事务锁
package com.mall.common; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.Sh
使用EventBus + Redis发布订阅模式提升业务执行性能(下)
前言 上一篇博客上已经实现了使用EventBus对具体事件行为的分发处理,某种程度上也算是基于事件驱动思想编程了.但是如上篇博客结尾处一样,我们源码的执行效率依然达不到心里预期.在下单流程里我们明显可以将部分行为进行异步处理,提升下单操作的执行效率. Redis基础命令 Redis有两种方式可支持我们实现MQ功能,1.使用列表(List)相关命令特性:2.使用publish.subscribe命令特性: 这里我是采取列表相关命令实现. 使用列表(List)相关命令的特性实现 压入数据(发布消息)
ZeroC Ice 暂记
摘自: http://weibo.com/p/1001603869896789339575 原文地址: http://www.oschina.net/question/865233_242146 吴治辉,@mycat,拥有超过 15 年的软件研发经验,精通 Java 编程,专注于电信软件和云计算方面的软件研发,参与过众多与分布式.云计算相关的大型项目的架构设计和编程,具备丰富的大型项目架构设计经验,是业界少有的具备很强编程能力的S级资深架构师,目前就职于惠普.此外,他还是国内知名开源分布式数据库
Flume日志采集系统——初体验(Logstash对比版)
这两天看了一下Flume的开发文档,并且体验了下Flume的使用. 本文就从如下的几个方面讲述下我的使用心得: 初体验--与Logstash的对比 安装部署 启动教程 参数与实例分析 Flume初体验 Flume的配置是真繁琐,source,channel,sink的关系在配置文件里面交织在一起,没有Logstash那么简单明了. Flume与Logstash相比,我个人的体会如下: Logstash比较偏重于字段的预处理:而Flume偏重数据的传输: Logstash有几十个插件,配置灵活:F
单点登录与消息队列以及在J2EE中的实现方案
前言 这次为大家简单介绍两个在WEB开发中经常使用的概念——单点登录和消息队列以及具体到J2EE中的一些实现方案.本文原创性的工作比较少,主要是一些总结概括和自己的理解. 单点登录SSO SSO的业务场景 所谓单点登录就是在一个站点登录之后可以授信给其他站点,这样就可以做到一次登录,到处操作.单点登录的实质就是安全上下文(Security Context)或凭证(Credential)在多个应用系统之间的传递或共享. 大部分的网站采用Cookie作为登录的一种简单实现方案,在同一个一级域名下面,
docker运行dubbo-admin
一:简介 dubbo-admin是dubbo框架的管理平台. 二: 创建继续镜像 Dockerfile FROM fangjipu/jdk8:8 RUN yum -y install epel-release RUN mkdir /app ADD tomcat8 /app/tomcat8 ADD docker-entrypoint.sh /app EXPOSE 8080 8443 WORKDIR /app ENTRYPOINT ["sh", "docker-entrypoin
基于 SOA 概念 RPC 框架 的 消息中心 云部署 设计 漫谈
一.背景 假设有一个系统的最大并发量有2000TPS左右.同时该系统有闲时和忙时,希望可以随时进行拓展和削减服务能力,以节省服务器费用开销. 该系统能提供站内消息.短信.app消息.邮箱的一个消息系统,并可实现通用化. 二.需求分析 1.该系统最大并发有2000TPS左右. 处理这么大并发,可以通过负载均衡.水平拓展机器数来暴力解决.但我们可以找寻一种可在业务层面进行水平扩展或缩容的架构. 2. 同时该系统有闲时和忙时,希望可以随时进行水平拓展和削减服务能力. 这个需求可以解读为需要对业务服务器
spring boot 概念
最近新版本迭代,一直在弄框架替换和新技术实现的事儿. 本来想仔细介绍一下Spring Boot的各种东西,后来发现没啥写的,Spring Boot 说白了就是把你开发过程中用到的各种框架给你封装了一下,给你结合了一下. 比如说,你开发过程中肯定要用到中间件,比如:Tomcat,jetty常用的,在Spring Boot中就给你封装进去了,你在本地开发的过程中就不需要再弄一个Tomcat,然后将你的代码再部署到Tomcat中,再去启动Tomcat.而是加上一个注解,在他就会自动扫描该类所在的同级包
工作log
整理电脑, 发现这么个文档, 留个纪念... 1. 2016-11-17 ================================ 3.采集任务编制页面,表格表头点击实现升序/降序排列 5.socket编程 6.多线程 7.webservice 8.读写分离 9.定时任务 10.报文解析 13.webservice 14.accept方法是一种阻塞方法?什么意思? 2. 2016-11-18 2.kafka broker服务器(kafka的节点) protobuf 安装,使用.2个作用:
Flume与Logstash比较
Flume与Logstash相比,个人的体会如下: Logstash比较偏重于字段的预处理:而Flume偏重数据的传输: Logstash有几十个插件,配置灵活:FLume则是强调用户的自定义开发(source和sink的种类也有一二十个吧,channel就比较少了). Logstash的input和filter还有output之间都存在buffer,进行缓冲:Flume直接使用channel做持久化(可以理解为没有filter) 一.Logstash浅谈: input负责数据的输入(产生或者说
SpringBoot RedisMQ消息队列与发布订阅
SpringBoot简单整合RedisMQ消息队列和发布订阅 注:RedisMq消息队列使用redis数组实现,leftpush存一,rightpop取一. 1.application.properties server.port=8080 #thymeleaf配置 #是否启用模板缓存. spring.thymeleaf.cache=false #是否为Web框架启用Thymeleaf视图解析. spring.thymeleaf.enabled=true #在SpringEL表达式中启用Spri
2,理解JVM
一.内存管理: 1,内存结构: 栈和堆区别,栈是连续内存区,一般是2M单位,堆是不连续的链表.受限于虚拟内存,new时分配 PC寄存器.java栈.堆.方法区.本地方法区.运行常量池 java栈:对应一个线程,每个栈中的栈帧关联每个方法,运行一个方法创建一个栈帧,执行完就弹出栈帧.不是线程共享,不用关心数据一致性和同步锁这些线程问题. 堆:程序猿最关心的,是new对象和对象数组时创建的,所有线程共享,保证一致性. 方法区:储存类结构信息,比如class文件解析后,常量池,方法数据,方法体
C#故事
C# 在腾讯的发展 <先定个小目标, 使用C# 开发的千万级应用> Xamarin 携程使用.Net技术 分布式高并发redis MQ dubbo kafka zookeeper
ActiveMQ学习总结
一.消息中间件的产生的背景 1.在网络通讯中,Http请求默认采用同步请求方式,基于请求与响应模式 2.在客户端与服务器进行通讯时,客户端调用服务端接口后,必须等待服务端完成处理后返回结果给客户端才能继续执行,这种情况属于同步调用方式. 3.如果服务器端发生网络延迟.不可达的情况,可能客户端也会受到影响. 二.什么是消息中间件 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构. 目前使用较多的消息队列有ActiveMQ
双十一前4小时,CentOS 6.5server启动错误排查
11月10日晚上8点多.眼看要到双十一了... 但我要说的这段经历却和双十一毫无关系.哈哈. 这天准备向CentOS6.5server的svn上传一些文件,结果开机启动时,却出现了以下的界面: 这是肿么回事?依据屏幕的提示,先使用root账号登录到系统.然后使用fsck命令手工检測 #cd /tmp/.ICE-unix #文件夹下仅仅有一个X0文件 #fsck X0 或者fsck.ext3 -y X0 显示都是 fsck.ext2(3): No such device or address wh
Spring Boot-properties使用(二)
自定义属性 @value注入 在application.properties新增配置 student.name=小明student.age=12student.info=${student.name}${student.age} package com.liqiang.contorller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotati
Java面试题汇总---升级版(附答案)
前几天写了Java面试题汇总---基础版,总结了面试中常见的问题及答案,那我今天基于昨天的话题做一次升级,也就是说,求职者除了要学习了解哪些常见的基础面试题之外,还得准备些什么呢? 对有工作经验的求职者来说,项目经历也是一个重点.这个我想大家应该还是比较清楚,你要知道,一般招聘有经验的人,不是你投的,就是HR通过用人部门需求关键词搜索到你的.比如用人部门想招聘几个有分布式开发和电商项目经验的,那么HR可能会用“Dubbo”,“SpringCloud”,“电商”等关键词搜索.那你去面试,这些技术及
热门专题
wireguard协议特点
thymeleaf jar 运行找不到模板
2~100的质数 双重for
jmeter如何下载文件
电脑安装mysql怎样以管理员身份进入cmd
date命令转换时间戳
js 调用非严格模式代码
wii光枪 瞄得准吗
django 装饰器获得当前登录用户
拆分spring 配置文件
dp Catalan 数 凸多边形
部分 DB2 selectForConnectTimeout
T_SQL流程控制语句if else
O-D矩阵和建立服务区区别
125度 Ta下的Tj等于或高于Tj最大操作温度
Flutter开发桌面端
下拉框不允许修改 jquery
Java 替换回车换行符
python中总提示json模块报错
js 监听滚动条回到顶部