- 浏览: 16607 次
- 性别:
- 来自: 上海
最新评论
文章列表
缓存一般作为RDS的前置组件,将常用的资源缓存,用来减少RDS的读取压力,也是诸多系统常用的一种方案,如果允许访问缓存失败直接访问数据库,然后再将数据回写到缓存中,那么就会存在缓存击穿的问题,
缓存击穿:缓存中的数据未被命中,进而请求直接对数据库进行查询,当大量的类似查询瞬间出现,就会出现数据库的压力爆炸甚至引起数据库的雪崩,本质就是一种缓存失效引发的极端问题
如何应对这种情况?
在很多面试过程中碰到这样的问题,给出答案:不给缓存击穿的机会
首先不允许跨过缓存直接访问数据库,在缓存中及认为数据可以被访问,否则则认为访问的数据不存在,
接下来就是RDS和缓存的同步问题,保证数据最终会呈现给用户, ...
接触到一个经典的面试题:类似于背包最优解的问题, 原题如下
import java.util.List;
public class SplitOrders {
public class Item{
/**
* 卖家用户id
*/
long sellerId;
/**
* 商品 ...
java condition await() 与object wait()的区别
object wait()
* The current thread must own this object's monitor. The thread
* releases ownership of this monitor and waits until another thread
* notifies threads waiting on this object's monitor to wake up
* either through a call to the {@co ...
java中的voliatile变量,在java中右有两个语义
1.可见性,每次voliatile变量修改时,都会直接写到主内存中
2.有序性,
1.可见性,
表现为每次voliatile变量修改时,都会直接写到主内存中,另外每个线程读取voliatile变量时,都 ...
JVM 在进行GC的时候,需要做两个事情,一个是GC root 做可达性分析
GC root的对象 可能是常量,类静态变量,以及虚拟栈中的局部变量,这些大概组成了GC root对象,GC root 需要在一个JVM 某个时间点的快照,然后基于这个快照来做可达性的分析,基于这个快照,判断哪些对象是要被回收的,接下来就要真正的GC操作,在新生代,老年代,会做不同的GC操作,标记清理,或者复制整理,或者标记整理,
将新生代的存活的对象,转入到老年代,老年代也会做自己的回收策略
在GC回收是,大多数JVM 会做stop the world 的一个操作,即停止整个JVM,这个操作多少会影响到JVM 对 ...
理解JVM 的内存模型之前,有必要理解一些硬件的内存架构,因为JVM的内存模型也是为了解决系统和硬件间内存交互的问题,才构建的一种虚拟的内存模型,这样就可以通过JVM来屏蔽硬件和系统的差异,达到统一的内存交互方式( ...
之前做了一下ES 的分词搜索,在网上找的资料很少,只能根据API一点点扒拉,总算长得帅还是有好处的,成功的通过分词进行搜索,适用的场景,根据某些字段进行分词匹配,并指定字段不同的优先级,都是通过http请求直接完成,自己实现是通过java封装了一下,java代码就不贴出来了,大家可以根据根据自己需要进行封装
分词查询大概需要两步操作:1.设置ES 某index下的mapping,2,针对字段进行query搜索
前提是先安装ES的分词插件,参考地址:http://ludizhang.iteye.com/blog/2323939
1.设置index mapping
向ES发送http PUT请 ...
mysql 事务级别
- 博客分类:
- mysql
mysql 数据四种事务级别:Read Uncommitted,Read Committed,Repeatable Read,Serializable
Read Uncommitted,Read Committed 这个两个就不多做介绍了
主要说明一下Repeatable Read 这个是mysql 默认的事务级别
此事务级别的表现为,可重读:此事务内的查询,不受其他事务的影响,会坚持从本事务内查询,因此,这个事务内的同一个查询(查询的数据不经过本事务的修改),会一直是一样的
如事务A,中有一个sql select * from A where id>3,假设表A中只有id 1.2.3. ...
1.下载IK
https://github.com/medcl/elasticsearch-analysis-ik/tree/v1.9.2
IK 对应的Elasticsearch版本 详情见github
[img]
[/img]
2.解压并打包IK
解压到elasticsearch-analysis-ik-1.9.2
目录结构如下
[img]
[/img]
3.安装IK
1. mvn clean
2.mvn compile
[img]
[/img]
3.mvn package
[img]
[/img]
4.安装完成后,找到target\release ...
内存泄漏(memory leak):该被回收的对象没有被回收,或者说没有被及时回收,导致了废弃对象依然占用着空间,一方面内存泄漏的问题具有常发性,一旦会发生一次就会发生100次,直接导致程序的运行性能,甚至出现OOM
咱们看例子
public class Stack {
private Object[] objects;
private int size;
private int STACK_LEN = 16;
public Stack(){
objects = new Object[STACK_LEN];
}
...
线程安全
1.什么是并发?
2.什么是线程安全
3.如何保证线程安全
参考书籍《java并发编程》
此篇博客是回答我懵懂骚年时代的一下疑问,希望可以帮助大家解惑,共勉!!
1.什么是并发?
我喜欢用并行,串行,并发做比较
并行:完全独立在不同CPU上的程序执行,完全平行,没有任何交叉
串行:在同一个CPU上执行的程序,一个个排队执行
并发:在同一个CPU上“同时”执行的程序,这个同时是感官上,其实可以理解为有交叉的意思,程序之前存在资源抢占的情况,
2.并发不一定指的是线程,但是在java中的并发目前只有线程一种形式,在java并发的情况下,总也逃脱不了线程安全性的问题 , ...
编程建议(持续更新)
- 博客分类:
- java
1.UML的重要性,推荐plantUml
2.编码编的其实是思路:先写注释(思路),在写代码
3.设计之初,所有方法都是黑盒
4.设计模式要顺其自然
5.接口的重要性是告诉别人我是干什么的
6.接口设计的伸缩性:考虑中间数据状态,减少对应 ...
这么长的时间,么有好好总结过自己的学习路线,今天和大家一起分享一下java学习路线
图中每一个字都是一管一管撸上去的,请大家轻喷,由于梳理比较粗略,一方面是一个小伙伴嗷嗷待乳,一方面确实比较忙一点,希望大家见谅
2016年7月8日,周五,本来一个欢快的日子,大家准备去吃会火锅唱会歌,下班前DBA同学发现突然有几个更新语句在query中,一直无法执行完,更新的语句基本是针对同一条更新的,语句的大概意思就是在交易完成后更新一条出库 ...
听听就好了
1.“先这样写,反正后面要重构”,作死指数4颗星
2.产品经理:“这个是需求比较小,改应该很快的”,惨死指数3颗星
3."这么简单的需求需要这久?你们是专业的么?",程序员不要上当,否则惨死指数4颗星
4."再坚持这一个迭代,我们就可以步入正规了",离职指数4星
5."来一起开个会,就一会",浪费指数3颗星
6."**开发小组来了一个妹子",失望指数4颗星
7."大家以后有分红",失望指数5颗星
8."我们要用新技术",作死指数4颗星
9."我要开始用设计 ...