JBoss_053:使用JDG外部缓存HTTP Session

标签: JBoss | 发表时间:2015-07-30 22:54 | 作者:noreply@blogger.com (千红一窟)
出处:http://maping930883.blogspot.com/
环境:JBoss EAP 6.4.0 + JBoss Data Grid 6.5.0

JBoss Data Grid 6.5.0 有个新特性:可以把JDG 作为外部缓存来存储HTTP Session,这样做的好处是:
(1)减轻了应用服务器的内存压力以及集群节点间的 Session 复制。
(2)利用JDG的横向扩展能力,可以容纳更多的 Session 对象。
(3)利用JDG的数据冗余机制,可以保证 Session 对象不丢失。

本文介绍如何使用JDG外部缓存HTTP Session,其中
(1)使用两个JBoss EAP 6.4.0 组成Standalone Mode 集群
(2)使用一个JBoss Data Grid Server 作为外部缓存来存储HTTP Session(可以扩展成多个节点)

主要步骤:

1. 配置JBoss  EAP Standalone Mode 集群

1.1 安装与启动 JBoss EAP 6.4.0
(1)unzip jboss-eap-6.4.0.zip
(2)cd jboss-eap-6.4/bin
(3)./standalone.sh
(4)http://localhost:9990/,访问出错,提示创建用户
(5)./add-user.sh
(6)http://localhost:9990/,点击Try again,输入管理员账户口令
(7)停止 EAP

1.2 配置两个节点的JBoss EAP 集群
(1)mkdir node1
(2)cp -r ./jboss-eap-6.4/standalone/configuration ./jboss-eap-6.4/standalone/deployments ./jboss-eap-6.4/standalone/lib node1
(3)mkdir node2
(4)cp -r ./jboss-eap-6.4/standalone/configuration ./jboss-eap-6.4/standalone/deployments ./jboss-eap-6.4/standalone/lib node2
(5)./standalone.sh -Djboss.server.base.dir=/Users/maping/Redhat/eap/demo/node1 -c standalone-ha.xml -b 127.0.0.1 -bmanagement 127.0.0.1 -u 239.255.100.100 -Djboss.socket.binding.port-offset=100 -Djboss.node.name=node1
(6)./standalone.sh -Djboss.server.base.dir=/Users/maping/Redhat/eap/demo/node2 -c standalone-ha.xml -b 127.0.0.1 -bmanagement 127.0.0.1 -u 239.255.100.100 -Djboss.socket.binding.port-offset=200 -Djboss.node.name=node2
(7)http://localhost:10090/console/ 部署 cluster_test.war
(8)http://localhost:10190/console/ 部署 cluster_test.war
(9)http://localhost:8180/cluster_test/
(10)http://localhost:8280/cluster_test/ 
分别刷新 http://localhost:8180/cluster_test/页面和http://localhost:8280/cluster_test/ 页面,如果发现统计数字在两个页面中是持续增加的,就说明集群配置成功。

  2. 安装与启动 JBoss Data Grid 6.5.0
 (1)unzip jboss-datagrid-6.5.0-server.zip
 (2)cd jboss-datagrid-6.5.0-server/bin
 (3)./standalone.sh

  3. 配置JDG外部缓存HTTP Session

 3.1 修改node1下的standalone-ha.xml文件
 (1)把原来的cache-container name="web" 内容

<cache-container name="web" aliases="standard-session-cache" default-cache="repl" module="org.jboss.as.clustering.web.infinispan">
    <transport lock-timeout="60000"/>
    <replicated-cache name="repl" mode="ASYNC" batching="true">
        <file-store/>
    </replicated-cache>
    <replicated-cache name="sso" mode="SYNC" batching="true"/>
    <distributed-cache name="dist" mode="ASYNC" batching="true" l1-lifespan="0">
        <file-store/>
    </distributed-cache>
</cache-container>
替换为
<cache-container name="web" default-cache="default-cache" module="org.jboss.as.clustering.web.infinispan" statistics-enabled="true">
    <transport lock-timeout="60000"/>
    <replicated-cache name="default-cache" mode="SYNC" batching="true">
        <remote-store cache="default" socket-timeout="60000" preload="true" passivation="false" purge="false" shared="true">
            <remote-server outbound-socket-binding="remote-jdg-server1"/>
        </remote-store>
    </replicated-cache>
</cache-container>

(2)在socket-binding-group中增加如下内容:
<outbound-socket-binding name="remote-jdg-server1">
    <remote-destination host="localhost" port="11222"/>
</outbound-socket-binding>
 (3)重启 node1

 3.2 修改node2下的standalone-ha.xml文件
修改内容和 node1 完全一样。

4. 再次访问cluster_test应用,效果跟JBoss EAP 集群一样,但HTTP Session是存储在JBoss Data Grid Server上的。

参考文献:
1. 《Red_Hat_JBoss_Data_Grid-6.5-Administration_and_Configuration_Guide-en-US.pdf》

相关 [jboss_053 jdg 外部] 推荐:

JBoss_053:使用JDG外部缓存HTTP Session

- - 热爱Java ,热爱生活
环境:JBoss EAP 6.4.0 + JBoss Data Grid 6.5.0. JBoss Data Grid 6.5.0 有个新特性:可以把JDG 作为外部缓存来存储HTTP Session,这样做的好处是:. (1)减轻了应用服务器的内存压力以及集群节点间的 Session 复制. (2)利用JDG的横向扩展能力,可以容纳更多的 Session 对象.

Java调用外部程序技巧

- d0ngd0ng - 我自然
前些天使用Java调用外部程序的时候,发现线程会堵塞在waitfor()方法. 如果直接在Shell中调用这个程序,程序会很快结束,不会僵死. 为什么会堵塞呢,原因是当调用exec(cmd)后,JVM会启动一个子进程,该进程会与JVM进程建立3个管道连接,标准输入,标准输出和标准错误流. 假设该程序不断在向标准输出流和标准错误流写数据,而JVM不读取,数据会暂时缓冲在Linux的缓冲区,缓冲区满后该程序将无法继续写数据,会僵死,所以Java程序就会僵死在waitfor(),永远无法结束.

如何做好外部链接

- 章明 - SEM 一家之言
这篇文章写在《光年外部链接挖掘系统2.0》即将发布的时候,希望能普及好的外部链接理念,同时也希望大家能认可这种软件. 在目前的很多SEO团队中,外部链接人员都是人数最多的部分. 很多团队的外部链接人员多到了外人无法想象的程度. 我亲眼所见的外部链接团队,最多的只有一百多人的规模. 但我听说过的外部链接团队,有达到一千多人规模的.

如何高效建设网站外部链接

- 子龙 - 月光博客
  万千互联网,网站数量数以亿计,我们一个网站假如能够从中获得数百个网站的链接,对于一般的关键词便可毫无压力的冲上去. 虽然说互联网的网站数以亿计,但是我们想从中找一些链接,还真的不容易. 这是什么样的一个状况呢,就像我们感觉资源非常非常多,但是真正着手去用这些资源的时候,发现寥寥无几.   说外链,一个网站有一部分外链是来源于友情链接,仔细一想,除了友情链接似乎没有什么好的办法获取到别个网站首页的链接了,还真没有.

使用 jQuery 在新窗口打开外部链接

- - 我爱水煮鱼
我们一般都希望在新窗口打开外部链接,这样用户就不需要离开网站就能访问外部链接,但是如果每个外部链接都手工加上新窗口打开的属性(target=”_blank”)的话,会让人非常抓狂. 使用 jQuery,我们只需要几行代码就能在新窗口中打开外部链接. 首先我们需要找到所有的外部链接,在 $(document).ready() 函数添加如下代码:.

阿北:找到用户价值的外部性

- - 极客公园-GeekPark
[核心提示]豆瓣创始人阿北第二次做客极客公园创新大会,继去年豆瓣“不运营”概念以及“10 万用户定律”后,今年阿北又有哪些新的观点呢. 早在去年上一届创新大会,豆瓣创始人 阿北就曾做客极客公园创新大会,在 并不虚无的用户体验与社区运营的访谈中他为现场听众解答了“豆瓣慢公司”的内在意义,并对“用户体验 vs 用户价值”与“运营 vs 自激震荡”做了阐述,在这场演讲中,阿北首次提出了豆瓣“不运营”概念以及“10 万用户定律”,那么想知道在今年阿北再次做客 极客公园创新大会(2013)与 张鹏都谈了什么吗,请看下面访谈节录.

杨勃:找到用户价值的外部性

- - 《商业价值》杂志
以用户价值为先,然后在产品生命周期过程中释放用户价值的外部性,并跟随在整个行业的形态的变化去做水到渠成的事,这样你就能在用户价值与商业价值上找到真正的“甜蜜点”. 有人说,2012年,豆瓣做了一系列跟去年同期还在开发阿尔法城相比“离钱很近”的动作,比如豆瓣阅读、豆瓣电影、豆瓣FM等,这些电商类的布局,看起来这些产品让豆瓣开始变得更加倾向于价值变现.

如何优化与外部设备传输数据的速度?

- - 极客范 - GeekFan.net
在电脑和外部设备之间传输数据是一项常见的任务,照片,视频,重要文件,数据备份,它们时常会被来来回回传输很多次. 这就是为什么传输速度会让人不爽. 如果你需要马上带着几个GB的数据去参加一个会议,没人想等上十分钟来拷贝这些数据,马上就要迟到了. 幸运的是,有几种简单的方法来提高数据传输的速度. Windows的默认USB驱动使用“快速移除”数据传输策略,它会关闭写入缓存,导致数据传输变慢.

转 JAVA读取外部资源的方法

- - Java - 编程语言 - ITeye博客
在java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在web项目中放在web-inf下. 1.从当前的工作目录中读取:. 2,从classpath中读取(读取找到的第一个符合名称的文件):. 3,从classpath中读取(读取找到的所有符合名称的文件,如Spring中带有classpath*:前缀的情况就会从classpath中遍历):.

使用kube-proxy让外部网络访问K8S service的ClusterIP

- - zzm
kubernetes版本大于或者等于1.2时,外部网络(即非K8S集群内的网络)访问cluster IP的办法是:. 修改master的/etc/kubernetes/proxy,把KUBE_PROXY_ARGS=”“改为KUBE_PROXY_ARGS=”–proxy-mode=userspace”.