Java NIO全称java non-blocking IO,是从Java 1.4版本开始引入的一个新的IO API(New IO),可以替代标准的Java IO API,NIO与原来的IO有同样的作用和目的,但是使用的方式完全...
一、消息队列应用场景异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式。(1)串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。(2...
一、Redis 有哪些类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。二、聊聊 Redis 使用场景随着数据量的增长,数据库已经满足不了...
一、消息可靠性投递在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ提供了两种方式用来控制消息的投递可靠性模式。RabbitMQ整个消息投递的路径为:生产者(producer)--->R...
一、基础架构Broker(RabbitMQ Server):接收和分发消息的应用,Broker(RabbitMQ Server)类似于MySQL服务。Virtual host:出于多租户和安全因素设计的,把 AMQP的基本组件划分到一个虚拟...
消息队列常见的使用场景,其实场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。解耦看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩...
一、MyISAM和InnoDB的区别是什么?1、InnoDB支持事务,MyISAM不支持事务。2、InnoDB支持外键,MyISAM不支持外键。3、InnoDB是聚集索引,MyISAM时非聚集索引。4、InnoDB不保存总行数,MyISAM...
一、用户线程和内核线程Java中,线程(Thread)其实是用户线程,对应操作系统还有个内核线程。用户线程和内核线程之间存在,多对一,一对一,多对多等关系。多对一线程模型多个用户线程对应一个内核线程上。优点用户线程的操作对内核线程来说是透明...
一、sleep()和wait()区别1、sleep()是线程中的方法,wait()是Object中的方法。2、sleep()不会释放锁,wait()方法会释放锁。3、sleep()不依赖于synchronized关键字,wait()依赖于s...
数据结构JDK1.7及之前底层是数组和链表JDK1.8及之后底层是数组、链表、红黑树HashMap在元素比较少的时候,结构是:数组+链表hash算法和寻址算法是如何优化的?基于二进制位运算的优化。 &...