- 浏览: 156965 次
- 性别:
- 来自: 布尼塔尼亚
-
最新评论
-
aa87963014:
iTarget 写道弄清楚“事务”和“事物”打错字, 统一为事 ...
现在的数据库系统是否还需要事务? -
iTarget:
弄清楚“事务”和“事物”
现在的数据库系统是否还需要事务? -
aa87963014:
ipconfig1 写道 我现在也遇到这样的问题,当缓存的数据 ...
spring cache 拓展 -
aa87963014:
xcw931924821 写道楼主现在实现了吗?可以查看我的 ...
spring cache 拓展 -
xcw931924821:
楼主现在实现了吗?
spring cache 拓展
文章列表
Freyja2版本对分库分表的处理方式
- 博客分类:
- Freyja2
在freyja2里面,对于数据库sharding这方面一张表需要设定一个切分的key列
假设UserProperty 里面有 id,uid,pid,num这4个字段,uid为用户id。我们把这张表以uid来切分
数据库设定为2个, 表切分为5个/库。
db_0,
t_user_0,t_user_1,t_user_2,t_user_3,t_user_4
t_user_property_0,t_user_property_1,t_user_property_2,t_user_property_3,t_user_property_4
db_1,
t_user_0,t_u ...
freyja将把重心放在
1、更完善的orm
2、应用层屏蔽的底层sharding
3、应用层上的cache
jsqlparser将换成druid的sql parser,
底层的cache将替换成应用层的cache,改写spring的aop cache。
spring的aop cache典型的不支持1对多的cache 处理,只能够清除整个cache,效率很低。改善之后,cache将会覆盖整个应用层,让整个应用层处于cache状态不会出现断层。
我在使用jsqlparser解析sql,然后通过解析进行命名转换,做一些orm映射、分表分库功能http://jsqlparser.sourceforge.net/之前写了一部分,现在想重写。但是对于jsqlparser使用的访问者模式再加上sql自身语句的特点无从下手。例如:Strin ...
synchronized 用法(转)
- 博客分类:
- 线程安全
http://love-love-l.blog.163.com/blog/static/21078304201001804211901/
synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。 1. synchronized 方法:通过在方法声明中加入 synchronized关键字来声明 synchronized 方法。如: public synchronized void accessVal(int newVal); synchronized 方法控制对类成员变量的访问:每个类实例对应一把锁,每个 sy ...
java synchronized详解 (转)
- 博客分类:
- 线程安全
转:http://love-love-l.blog.163.com/blog/static/21078304201001804211901/
一直对这些不是很懂。找了一下,看一下,供我以后再看:
第一篇:
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而,当一个线程访问obj ...
ConcurrentHashMap真的有必要吗,很多时候我们用ConcurrentHashMap来保证操作map的过程达到线程安全,
但是跟多的时候map是用来存储临时数据例如User信息
假设在一个单例类里面设置了一个共享变量map作为存储User的集合,
你还有一个方法是用来操纵map里面的user例如:
public void a(){
User user=map.get("1");
user.xxxxxxx
Thread.sleep(1000*5);
map.put("1",use ...
http://download.csdn.net/detail/lishiguang/3214688
他的,看了下很不错就上传到这里 以免忘记了
@Value 取不到配置文件值问题
- 博客分类:
- 随便记点东西
由于.properties文件的编码有问题, 文件内有不可见字符
导致spring读取文件的时候取不到key
这个问题奇怪的一点是,在开发环境中运行正常。但是在生产环境下 通过读取jar外部配置文件取不到key。原因大概是 spring没有忽略iso字符
而这个字符是不可见的。所以看起来像是没问题实际上是有iso字符的。
解决办法就是消除这种乱码
腾讯说memcache的get api有缺陷
- 博客分类:
- 随便记点东西
Memcached的Get协议没有设计返回码,所以Memcached API返回NO_DATA时,有可能是网络原因造成的
但是其他资料里面却没提及这一点,而且是怎么样的网络原因也没说。。真无语
http://wiki.open.qq.com/wiki/CMEM
照这样说,很多事情都变得变幻莫测了。。。。因为都有可能是网络原因造成的。。。
搞不懂qq斗地主的房间设置
- 博客分类:
- 随便记点东西
斗地主的持续场不知道是不是新出的。能支持单房间2千人玩。既然如此 为什么大部分房间只是300人?
能支持2千人基本上说明全部都能调整为2000人房间吧。。
关于JAVA取本机ip的一些传说2
- 博客分类:
- 随便记点东西
关于JAVA取本机ip的一些传说
今天,我见识到了这个传说。前面是传说1,现在的传说2。是发现传说1中的办法也无法获取ip。才疏学浅对linux对网关啊网卡啊什么的不了解,特此开喷。我特么的只是想获取一个本机的内外网IP,为什么就要这么的纠结!!!
InetAddress.getLocalHost().getHostAddress() 返回个127.0.0.1什么的就无所谓了
但是既然我扫描了所有网卡。得到的InetAddress 为什么就特么的不能够正确的返回ip地址?输出的
有2个ConcurrentHashMap, 虽然对于单个map操作是线程安全的。
但是我们的业务一般不会这么简单,例如:方法A会移除map其中一个元素,方法B又会不断的循环读取map中的值
这个时候显然2个map除了业务逻辑有关,实际上没任何关系。当然也不会保证他们二者的线程安全。
那么线程安全问题就凸显出来了。可能有人一看就觉得在业务方法上面加上同步关键字之类的方法解决线程安全问题。但是有2个问题无法解决:1、效率。2、代码量。
毕竟涉及到的业务较多。
我对这种问题目前的做法是测试,然后在循环处加上一层判断。只能算是缓解在高并发下生产的问题。当然,在一般无压力情况下 ...
spring cache的缺陷
- 博客分类:
- 随便记点东西
spring cache功能确实是带来很多方便,但是他的一些缺陷让人头疼。
1、他的cache功能是基于aop的,所以当内部调用方法的时候就不会调用cache方法。
这个也不能说是spring 的问题,总之你需要把内部互相调用的方法分开写然后调用接口的方式调用。
2、key的问题
在清除缓存的时候,你没办法同时清除多个缓存的key
例如:
@cache(value="user")
public User getById(Integer uid);
@cache(value="user")
public User ...
一个方法调用耗时3-5秒
2个请求同一个方法,那么结果应该是怎么样的?
为了保证顺序执行,另外一个用户必须等3-5秒?
数据库分库、分表的疑问
- 博客分类:
- 分布式
个人觉得分库这个功能应该交给数据库来处理,原理在上个bolg里面说了,数据库用一个基础的分库规则 然后自行维护数据。
个人觉得这个完全可以做到,而且很简单。
当然,简单的东西想来都有一个性能问题(例如 条件查询)。不过,这些所谓的性能问题基本上只存在于10%的业务上。而且这些业务基本上可以处理下也能达到要求。
当然就算交给应用,自己在java里面写一堆东西,该麻烦的一样麻烦。(例如:条件查询。)