- 博客(7)
- 资源 (5)
- 收藏
- 关注
转载 分布式锁的介绍及使用方案
一、分布式锁当应用服务器数量超过1台,对相同数据的访问可能造成访问冲突(特别是写冲突)。单纯使用关系数据库比如MYSQL的应用可以借助于事务来实现锁,也可以使用版本号等实现乐观锁,最大的缺陷就是可用性降低(性能差)。对于GLEASY这种满足大规模并发访问请求的应用来说,使用数据库事务来实现数据库就有些捉襟见肘了。另外对于一些不依赖数据库的应用,比如分布式文件系统,为了保证同一文件在大量读写操作
2016-09-20 18:26:46 1080
原创 JAVA8新特性
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例
2016-09-20 14:51:16 609
原创 Java实现生产者消费者模型
生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等,实
2016-09-19 17:07:47 9186 1
原创 ZooKeeper常用指令集
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。下载地址:http://zookeeper.apache.org/releases.html#downloadZooKeeper服
2016-09-19 16:27:21 1261
原创 Java多线程之ForkJoinTask,ForkJoinPool介绍及使用
ForkJoinTask是jdk1.7整合Fork/Join,即拆分fork+合并join,性能上有大大提升。思想:充分利用多核CPU把计算拆分成多个子任务,并行计算,提高CPU利用率大大减少运算时间。有点像,MapReduce思路感觉大致一样。jdk7中已经提供了最简洁的接口,让你不需要太多时间关心并行时线程的通信,死锁问题,线程同步,下面是它提供的接口:RecursiveActio
2016-09-19 14:18:45 7999
原创 Java中常见内存溢出错误及处理方法
相信有一定JAVA开发经验的人或多或少都会遇到OutOfMemoryError的问题,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识。 在解决Java内存溢出问题之前,需要对JVM(Java虚拟机)的内存管理有一定的认识。JVM管理的内存大致包括三种不同类型的内存区域:Permanent Generation space(永久保存区域)、Heap space(
2016-09-18 18:01:30 4218
转载 分布式集群项目中同步DB数据的解决方案之Canal
业务场景描述:在我们的项目中有些配置信息持久化在数据库中,这些配置信息又是在系统启动后自动加载并缓存在local或者redis中,但如果后台运营系统进行了相应更新配置操作,我们需要实现“热部署”或“热插拔”等功能的话,我们有哪些方案可以实现呢?单机项目就非常简单了,但分布式集群的项目怎么办呢? 分布式集群的项目之间同步数据,我们来讲一下有哪些方案解决。方案一:项目程序中对DB进行操
2016-09-18 15:23:08 6143
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人