摘要: 一、为什么会有分布式锁? 在多线程环境下,由于上下文的切换,数据可能出现不一致的情况或者数据被污染,我们需要保证数据安全,所以想到了加锁。 所谓的加锁机制呢,就是当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问,直到该线程读取完,其他线程才可使用。 我们为了减少DB的压力,把库存预热到 阅读全文
posted @ 2020-10-28 15:12 随心的风 阅读(81) 评论(0) 推荐(0) 编辑
摘要: Zookeeper是什么 ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命名服 阅读全文
posted @ 2020-10-28 14:27 随心的风 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 为什么要引入线程池当我们需要的并发执行线程数量很多时,且每个线程执行很短的时间就结束了,这样,我们频繁的创建、销毁线程就大大降低了工作效率(创建和销毁线程需要时间、资源)。java中的线程池可以达到这样的效果:一个线程执行完任务之后,继续去执行下一个任务,不被销毁,这样线程利用率提高了。 java中 阅读全文
posted @ 2020-10-28 11:27 随心的风 阅读(1015) 评论(0) 推荐(0) 编辑
摘要: 一、五中数据类型 String: 字符串 Hash: 散列 List: 列表 Set: 集合 Sorted Set: 有序集合 Redis 发布订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 客户端可以订阅 阅读全文
posted @ 2020-10-28 11:02 随心的风 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 使用场景和优缺点: 2 Redis用来做什么? 通常局限点来说,Redis也以消息队列的形式存在,作为内嵌的List存在,满足实时的高并发需求。而通常在一个电商类型的数据处理过程之中,有关商品,热销,推荐排序的队列,通常存放在Redis之中,期间也包扩Storm对于Redis列表的读取和更新。 Re 阅读全文
posted @ 2020-10-28 10:47 随心的风 阅读(2571) 评论(0) 推荐(0) 编辑
摘要: 一、事务定义 Transaction 事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元) 一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成 事务只和DML语句有关,或者说DML语句才有事务 阅读全文
posted @ 2020-10-28 09:42 随心的风 阅读(97) 评论(0) 推荐(0) 编辑