分布式集群
素还真7784877
半神半圣亦半仙,全儒全道是全贤,脑中真书藏万贯,掌握文武半边天。
展开
-
Java分布式应用学习笔记06浅谈并发加锁机制分析
1. 前言之前总结的多线程的调度、并发调度、线程加锁安全等等并发包底层大都使用了线程锁机制。咱们通过锁的源码来看看JDK如何将这些资源进行加锁限制的,怎么就能做到线程集中等待后就唤醒主线程的。2. 一段并发包源码以下是java.util.concurrent.CyclicBarrier的底层代码片段。 private int dowait(boolean timed, l...2011-08-19 16:12:46 · 90 阅读 · 0 评论 -
Java分布式应用学习笔记05多线程下的并发同步器----前篇
1. 前言JDK提供的并发包,除了上一篇提到的用于集合外,还有线程的调度、协作、调度等等功能。上篇提到过,线程之间除了竞争关系,还有协作关系。在高并发环境下有效利用Java并发包解决线程之间协作的特殊场景。在并行计算,尤其是多线程计算的结果集合并的时候都需要用到这些并发同步器。还有一种使用场景,就是跨越多台机器(实机)的多线程进行并行运算,需要将多台机器进行结果集的汇总,合并。其原理核心也是...2011-08-11 09:02:46 · 100 阅读 · 0 评论 -
Apache_proxy负载均衡和Session复制
今天上网查了查资料,之前使用apache的jk模块做负载均衡。后来觉得jk的负载配置有点死板,只能按照负载权重值来进行请求的分发,没有做到比较智能的负载平衡,并且使用mod_jk访问页面发现确实比较慢。可能是jk路由到真正的Node Server上比较费时间吧。结合笔者提出的jk的缺点,今天使用mod_proxy来进行负载均衡和路由选择。之前提出了jk相关的缺点1):负载均衡权重是在配置文...原创 2011-04-06 09:26:36 · 263 阅读 · 0 评论 -
Java分布式应用学习笔记04JDK的并发包的集合总结---后篇
唉~这一大篇blog又是只能显示部分,部分内容被截断了。。。。 4. Set的并发CopyOnWriteArraySet和CopyOnWriteArrayList底层实现差不多,就是在添加元素的时候需要对对象进行唯一性判断,如果对象数组已经含有重复的元素,不进行增加处理。在此不再赘述。5. Queue的并发队列的并发类是java.util.concurrent.ArrayB...2011-08-02 17:21:48 · 105 阅读 · 0 评论 -
Java分布式应用学习笔记04JDK的并发包的集合总结---前篇
1. 前言平时咱们使用的HashMap、ArrayList等等容器集合包都存在线程安全的问题,看过JDK源码的各位朋友们知道这些实现类底层,为了性能,都没有对这些集合的操作方法做加锁或者副本传递机制,只有Vector和Stack是线程安全的,大家可以看它们的源码,底层方法是以在方法上加上synchronized作为代价的,换句话说是用时间换取空间的方式。Sun JDK对多线程并发环境下做了很...2011-08-02 17:17:54 · 110 阅读 · 0 评论 -
Java分布式应用学习笔记03JVM对多线程的资源同步和交互机制
1. 前言既然是分布式系统,就离不开对于多线程程序的开发,面对客户端大并发的访问,如何控制程序的多线程资源?我们都知道在程序中使用关键字synchronized,对对象级别的加锁也好,对类级别的加锁也罢。JVM在底层是如何运行的,这个属于JVM处理多线程的原理了,当然了,JVM最终当然还是需要操作系统和CPU一起完成真正的多线程并发的问题。只是咱们这次放慢时间,看看JVM这一层对于多线程并发...2011-07-28 10:55:23 · 98 阅读 · 0 评论 -
Java基于线程的分布式(转自cjnetwork)
java基于线程的分布式1. 引言 1.1. 背景 有的任务比较消耗资源,需要将任务分散在不同的机器上运行,充分利用硬件资源。例如下载任务、例如计算1---1万亿的和。2. 总体思路 任务分发服务器1个、工作客户端若干个见图: 2.1. 任务分发服务器 负责任务的分发、维护各个客户端的状态。将应用程序中的任务,添加到队...原创 2011-03-22 17:50:10 · 90 阅读 · 0 评论 -
JBoss集群配置的Session复制
1. 前言接着上一篇总结文章提出的问题,这次通过相关的mod_jk和JBoss配置来达到每个JBoss节点之间的Web应用级别的Session复制。也就是说通过配置后,如果其中一台Node A的服务器宕机了,那么另一台Node B可以正常接管Node A的会话对象信息(Session信息不会丢失)。通常是2个大模块进行配置,一个就是负责负载均衡的mod_jk模块,另一个就是负责...原创 2011-03-21 09:19:46 · 282 阅读 · 0 评论 -
Java分布式应用学习笔记02再谈JVM---续
唉~~因为blog总显示不全只能分为2个了,排版也不是很好,凑合着看吧。客户端执行的优化策略有如下3种措施方法内联:一个方法的执行离不开其他方法的支持,若调用的其他方法十分简单。那么调用的时候会将被调用那个方法里面所有的内容粘到主调方法中,这样做的好处是节省参数变量,中间变量的资源和返回值的资源申请位置。 private void test(){ ...2011-07-25 09:22:07 · 69 阅读 · 0 评论 -
Java分布式应用学习笔记02再谈JVM
1. 前言-为何要再谈JVM很多人认为,分布式Java应用看上去好像和Java虚拟机没什么太多关注的东西,别说分布式系统了,就是一个单机JavaSE系统也不用将JVM学得透透的,有个JVM执行不就行了吗。据笔者的经验回答则是,在大型分布式系统,尤其是云计算服务平台,SAAS也好,PAAS也罢,要求编写的应用必须要高效,你就当你运行的是一个配置很小的机器上,要求资源比较苛刻。所以了解,甚至再学...2011-07-25 09:10:58 · 106 阅读 · 0 评论 -
Java分布式应用学习笔记01分布式Java应用和SOA
1. 前言当我们所做的系统到一定的程度后,随着涉及的领域越来越宽泛,客户群也越来越多,我们的系统不得不需要第三方系统协作,或者将原有大系统分解成各个协作的小系统才能更好地完成任务。就好像KFC,收银员就负责客户端点餐、收银、找零钱、开发票是一个接待人员完成。而真正为您做餐的又分为比较复杂的分工,比如负责炸薯条的人、做汉堡的人、还有做盖饭的(KFC的盖饭,唉~~不说了)。而为这些做餐人员提供物...2011-07-22 13:52:44 · 107 阅读 · 0 评论 -
JBoss节点的负载均衡与Mysql主从备份
1. 前言做JavaEE企业级应用就离不开集群、分布式环境这些和运行时环境相关的相关配置。企业及应用很大程度上都是处理十分安全、可靠、完整的请求,能适应任何运行时环境异常情况下也能提供软件服务。如果把所有开发好的程序全部放在一个机器上,所有的请求全都访问这一台机器就可以的系统,自然没有那么多事情要考虑了。如果系统是时时刻刻有客户需要访问、需要为客户提供7*24的服务、并且用户访问量...原创 2011-03-16 22:37:16 · 103 阅读 · 0 评论 -
Java分布式应用学习笔记09JMX-MBean的介绍(JMX的一点点补充)
1. MBean介绍从上一篇Blog的内容可以看到,我们大多数代码工作量都是自定义的一个JavaBean,这个JavaBean有属性、访问器(get)、写操作(set),之后还可以定义一些非常规方法,比如执行核心管理操作的方法,甚至还可以深度调用full gc进行全面的资源回收。也就是说这个JavaBean并不像它的名字那么简单,它负责了一些监管任务等等。使用者灵活地使用JMX客户端工具,比...2011-10-09 09:01:23 · 200 阅读 · 0 评论 -
使用Memcached做分布式系统的Session存储
1. 前言Memcache除了可以做Hibernate的二级缓存外,还可以做很多很多事情。在互联网应用中,往往通过它作为缓存解决方案来保存数据,进而减少数据库的负载,而在分布式系统中,Session在不同Node中的复制,是一个比较常见的问题啦。而且在分布式系统中还要实现Session的修复,就是其中一个Node宕机了,另一个Node立即可以接管宕机Node的所有Session信息,Memc...2011-07-01 10:12:27 · 91 阅读 · 0 评论 -
用xmemcache作为JPA(Hibernate实现)二级缓存
1. 持久层的缓存Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate自身进行管理的,一般情况下无需进行干预,默认一级缓存也是打开的;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存比较重量级,可以进行配置和更改,并且可以动态加载和卸载。 Hibe...2011-06-30 09:44:42 · 165 阅读 · 0 评论 -
在default目录下快速配置JBoss集群(Web方面) 转载
说起JBoss集群好像很高深的样子,其实一点也不恐怖,建立一个集群很简单,难的是怎么针对具体的应用优化服务器和实现负载均衡(学习中^o^)。本文将带领大家在JBoss的default目录下建立一个简单的Web方面的JBoss集群。搭建环境两台电脑 //其实一台也够了,不过需要修改其中一个JBoss监听的端口,要不然有冲突 jboss-4.0.4.GA apache_2.0.59 //我使用的是ap...原创 2011-03-06 10:24:10 · 129 阅读 · 0 评论 -
Java分布式应用学习笔记08JMX规范与常用的监控场景
1. JMX规范JMX是“Java管理扩展的”的缩写,它和其他JavaEE类似也是曾经的Sun提出的一种规范(规约),从名字上可以看出主要是负责系统管理。是一个为系统加入或者说扩展成有管理功能的规约,只要按照这套规约行事,您的系统,某些某块就具备被其他工具(例如JConsole)管理的能力。换句话说就是可以用JMX来监控咱们的系统运行情况,还有可以在运行时环境像Web Service、RMI...2011-09-13 09:17:04 · 147 阅读 · 0 评论 -
Java分布式应用学习笔记07线程池应用(又名:线程池与大排档)
1. 线程池是啥子一说到池子,大家都会想到数据库连接池那种对象池。本来嘛,现在倡导废物回收利用的节能环保绿色新社会嘛。其实线程池的初衷就是能将已经创建好了的线程对象重复利用。之前咱们说过对于一个分布式系统,离不开高并发、多线程的支持。那么无论是HTTP方式的,还是文件方式的,面对海量的客户端请求,作为服务端如果对于请求使用单线程阻塞方式显然是不可能的。JDK5之后为咱们提供了现成的线程池对象...2011-09-07 09:00:47 · 144 阅读 · 0 评论 -
Java分布式应用学习笔记05多线程下的并发同步器----后篇
5. CountDownLatch很多资料上都说CountDownLatch是倒数计数器,我觉得这种说法太过专业,其实它就是一个数数的人员。利用它,可以在多线程执行任务完毕后完成进行多线程的等待,便于等待所有的线程之后在干别的事情,这个有点类似于FutureTask,使用上不太一样。这个场景就是一个线程必须要等到其他线程执行完毕后才能往下执行,注意,这里这个线程没必要需要其他线程的执行结果,...2011-08-11 09:07:00 · 75 阅读 · 0 评论