- 博客(7)
- 收藏
- 关注
转载 使用RabbitMQ实现延迟任务
使用RabbitMQ实现延迟任务场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时。场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单。上述类似的需求是我们经常会遇见的问题。最常用的方法是定期轮训数据库,设置状态。在数据量小的时候并没有什么大的问题,但是数据量一大轮训数据库的方式就会变得特别耗资源。当面对千万级、上亿级数据量时,本身写入的IO就...
2018-03-22 11:14:10 665
转载 RabbitMQ的应用场景以及基本原理介绍
1.背景RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现。2.应用场景2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是,邮件,短信并不是必须的,它只是一个...
2018-03-21 10:08:35 297
转载 ActiveMQ RabbitMQ KafKa对比
前言: ActiveMQ和 RabbitMq 以及Kafka在之前的项目中都有陆续使用过,当然对于三者没有进行过具体的对比,以下摘抄了一些网上关于这三者的对比情况,我自己看过之后感觉还是可以的,比较清晰的反馈了这三个的具体情况已经使用场景,具体的对比如下:1)TPS比较:Kafka最高,RabbitMq 次之, ActiveMq 最差。2)吞吐量对比:kafka具有高的吞吐量,内部采用消息的...
2018-03-21 10:07:54 238
转载 线程
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些概念不够明确...
2018-03-13 22:38:55 151
转载 内存
1、JVM简介Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修...
2018-03-13 20:20:47 193
转载 内存相关知识
内存内存大家都知道(当然不是硬盘啊)。与c、c++相比呢,Java在内存管理的方面一个优越之处就是我们不用显式的去对对象进行内存的分配和内存的回收,可能有人会着迷于对内存使用分配的这种快感,但是随着程序变大,对于内存的维护工作也就越来越大。Java的JVM的自动内存管理机制,凸显出了强大的优越感。。。。但反而是因为这样的一个现状,就弱化了我们在写Java程序时遇到内存溢出等问题时的定位能力和解决问...
2018-03-13 16:09:27 353
转载 HashMap概述
前言: HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。最近刚好有时间,刚好把HashMap相关的内容和之前做唯品会网关的一些经验整理一下。一.HashMap的概述1.1 HashMap的数据结构HashMap的内存...
2018-03-13 15:16:20 233
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人