JAVA
谢minmei
这个作者很懒,什么都没留下…
展开
-
RabbitMQ
什么是消息队列? MQ全称为Message Queue,消息队列是应用程序之间的通信方法。 为什么使用消息队列? 在项目中,无需即时返回的且耗时的操作,进行异步处理从而提高系统的吞吐量;可以实现程序之间的解耦合。 1、任务异步处理 将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时 间。 2、应用程序解耦合 MQ相当于一个中介,生产方通过...原创 2019-11-14 23:14:48 · 144 阅读 · 0 评论 -
Redis
redis-cluster 1. 概念 为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。 Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。 redis 3.0之后版本...原创 2019-11-14 23:07:20 · 135 阅读 · 0 评论 -
线程池
阻塞队列 结构: Collection 接口 | Queue 接口 | BlockingQueue接口 | 实现类 ArrayBlockingQueue 底层数组,创建时需指定大小,无界。 LinkedBlockingQueue 底层链表,默认长度21亿。 SynchronousQueue 不存储元素,而是直接将生产出的元素丢给消费者。 阻塞队列常用API: 抛出异常 特殊...原创 2019-11-14 22:47:09 · 159 阅读 · 0 评论 -
JVM
JVM 类加载结束,class文件(因为有主方法)里面携带着成员方法,成员属性会进入方法区,然后new 出来的对象放在堆内存中,然后地址值放在栈中.所以我们要进行垃圾回收.但是如果是在静态属性和静态代码块,会先加载,地址值放在方法区中. JVM内存模型 栈内存:方法 运行时候才会进入内存,里面储存局部变量 堆内存:new 出来的数据都会进行堆内存 方法区:字节码文件加载时候进入的内存 本地方法区...原创 2019-11-14 22:37:03 · 172 阅读 · 0 评论 -
dubbo+zookeeper
Dubbo 1.dubbo:是一款高性能的RPC(远程过程调用)框架。 它提供了三大核心能力: 面向接口的远程方法调用 智能容错和负载均衡 服务自动注册和发现zookeeper。 1.1 RPC技术基本原理 stub是为了方便client,service交互而生成出来的代码。 影响RPC速度的两个核心点: 序列化和反序列化(底层Io流 在传输) 底层封装socket传递消息通信,影响dub...原创 2019-11-14 17:19:16 · 258 阅读 · 0 评论 -
MySQL高级
1 mysql隔离级别 读未提交:一个事务可以读取到另一个事务未提交的修改。这会带来脏读、幻读、不可重复读问题。(基本没用) 读已提交:一个事务只能读取另一个事务已经提交的修改。其避免了脏读,但仍然存在不可重复读和幻读问题。 可重复读:同一个事务中多次读取相同的数据返回的结果是一样的。其避免了脏读和不可重复读问题,但幻读依然存在。 串行化:事务串行执行。避免了以上所有问题 存储数据,建立索...原创 2019-11-14 16:59:36 · 313 阅读 · 0 评论 -
Mybatis缓存
Mybatis缓存 1.什么是缓存? 存在内存中的临时数据 2.为什么使用缓存? 减少和数据库交互次数,提高性能 3.适用于缓存的数据: 经常查询并且不经常改变的 数据的正确与否对最终结果影响不大 4.不是适用于缓存的数据: 经常改变的数据,数据的正确与否对最终结果影响很大的。例如:商品的库存,银行的汇率,股市的牌价。 一级缓存 一级缓存:指的是mybatis中sqlsessi...原创 2019-11-14 16:56:01 · 100 阅读 · 0 评论