04 2019 档案

摘要:索引是数据库优化中最常用也最重要的手段之一,通过索引可以解决大多数的sql性能问题。在mysql中,索引是在存储引引擎层而不是服务器层实现的,所以,并没有统一的索引标准:不同的存储引擎的索引的工作方式并不一样,也不是所有的存储引擎都支持所有类型的索引。即使多个存储引擎支持同一种类型的索引,其底层的实 阅读全文
posted @ 2019-04-24 22:21 静水楼台/Java部落阁 阅读(1154) 评论(0) 推荐(0) 编辑
摘要:一、缓存穿透 缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,通常出于容错的考虑,如果从存储层查不到数据则不写入缓存层,如图11-3所示整个过程分为如下3步:1)缓存层不命中。 2)存储层不命中,不将空结果写回缓存。 3)返回空结果。缓存穿透将导致不存在的数据每次请求都要到存储层去查 阅读全文
posted @ 2019-04-20 21:01 静水楼台/Java部落阁 阅读(1280) 评论(0) 推荐(0) 编辑
摘要:一、传统系统session管理方案 1.利用cookie存放 将Session对象保存在Cookie,然后存放在浏览器端。每次浏览器向服务器发送请求的时候,都会把整个Session对象放在请求里一起发送到服务器,以此来实现Session共享。这样的方案实现起来特别方便,但是由于Cookie的存储容量 阅读全文
posted @ 2019-04-13 23:46 静水楼台/Java部落阁 阅读(307) 评论(0) 推荐(0) 编辑
摘要:官方文档: @EnableAsync The @Async annotation 官方案例:https://spring.io/guides/gs/async-method 一、在spring中使用异步处理 1.@EnableAsync和@Async 首先,在配置类加上@EnableAsync来启用 阅读全文
posted @ 2019-04-11 19:46 静水楼台/Java部落阁 阅读(222) 评论(0) 推荐(0) 编辑
摘要:1、引入RabbitMQ能带来哪些好处和坏处? 消息队列的作用,可以用四个词来概括:削峰,填谷,异步,解耦。 应用解耦(系统拆分)异步处理(预约挂号业务处理成功后,异步发送短信、推送消息、日志记录等)消息分发流量削峰消息缓冲 引入消息队列,会有什么缺点? 降低了系统可用性:本来系统运行好好的,引入消 阅读全文
posted @ 2019-04-11 15:16 静水楼台/Java部落阁 阅读(164) 评论(0) 推荐(0) 编辑
摘要:消息的可靠投递除了需要硬件,网络,消息中间件等的可靠保证外,还需要生产者,消费者来共同保证来完成。一条消息从生产者产生,到发送到交换机,并被投递到队列,并最终被消费者消费,这整个路径上,途径的每一个地方都要保证消息的可靠性。 其实,官方文档Reliability Guide已经总结了消息系统安全的方 阅读全文
posted @ 2019-04-08 22:10 静水楼台/Java部落阁 阅读(1191) 评论(0) 推荐(0) 编辑
摘要:https://my.oschina.net/liuyuantao/blog/1855531 默认情况下RabbitMQ发送的消息是为字节码,有时我们需要发送JSON格式的消息,则有如下两种处理方式。 1.手动转换成json 最简单发送JSON数据的方式是把对象使用ObjectMapper等JSON 阅读全文
posted @ 2019-04-08 21:09 静水楼台/Java部落阁 阅读(7314) 评论(0) 推荐(1) 编辑