GridLink

博客转自:http://space.itpub.net/707491/viewspace-714052

 


 

一.概述

GridLink是WebLogic 10.3.4版本推出的新特性,引入Jdbc 11g version驱动,全面支持Oracle 11G RAC AWM的特性,包括我之前写的SCAN新特性。
WebLogic被Oracle公司收购后,先是版本跟随数据库版本走,例如10.3.0命名为10g R2,10.3.1命名为11g R1,WebLogic越来越跟数据库亲密,我想是一家的东西要高度粘合,便是走上为企业应用提供成套的解决方案。WebLogic是J2EE企业级应用服务器,是J2EE应用跟DB之间的纽带,进而为两者提供高可用性的纽带环境。
 

二.Link意在何处?
 
题目中的Link意为WebLogic连接DB的方式,这里的连接自然是JDBC Thin方式连接的,WebLogic是J2EE的容器,自身也是由Java语言编写。
 
至今WebLogic提供了五种配置对于Jdbc Thin方式连接Oracle RAC,如下:
1.GridLink Data Sources
2.Configuring Connections to Services on Oracle RAC Nodes(XA)
3.Configuring Connections to Services on Oracle RAC Nodes(No-XA)
4.Multi Data Sources with Global Transactions
5.Multi Data Sources without Global Transactions
 
其中GridLink Data Sources方式支持使用services,实现Load Balancing(负载均衡)和Failover(故障转移)。在Oracle Database 10g引入Automatic Workload Management,即数据库服务,区别与传统的数据库服务。
 
三.GridLink的真面目
 
WLS GridLink是WLS10.3.4新推出的Data Source类型,提供了针对Oracle RAC数据库与WLS之间的连接功能。GridLink通过Oracle通知服务(ONS)来获取Oracle RAC实例的状态变化。WLS可以通过Oracle RAC灵活的数据库服务设计来满足其需求,也可以由数据库服务的增加而扩展而不需要关注RAC 集群中的物理结构变化。
连接示意图如下:
GridLink提供了以下功能:
1.简化和统一了对RAC连接配置的模块。
2.支持Fast Connection Filover(FCF)。
3.支持Runtime Connection Load Balancing(RCLB)。
4.支持Single  Client Access Name(SCAN)。
5.Oracle RAC停机的正常处理。
本篇文章为概述,此系列文章将对上面特性做一 一分析和配置向导。
 
四.Oracle ONS(Oracle NOtification Service)和FAN(Fast Application Notification)
 
Oracle RAC通知服务(ONS)是由集群维护的,为nodeapps组。如:
查看ons服务状态
$crsctl status resource ora.ons
AME=ora.ons
TYPE=ora.ons.type
TARGET=ONLINE    , ONLINE
STATE=ONLINE on rac1, ONLINE on rac2
$srvctl status nodeapps
ONS daemon is running on node: gwrac1
ONS daemon is running on node: gwrac2
ONS服务,由srvctl工具来维护,另外onsctl工具也可以维护,还可以跟踪ons的信息。下面是查看ons配置信息:
$srvctl config nodeapps -s
ONS daemon exists. Local port 6100, remote port 6200
 
Oracle RAC FAN为RAC applications和client提供集群状态和节点负载的情况,通过ONS将这些事件发布给Java client和Oracle的客户端,让它们得知当前RAC的情况,做出相应的处理,例如:客户端请求的分布。
 
基于以上的特性,Oracle称其为高可用性、高可靠性、高可扩展性的,这个形容太响了。附上Oracle为此做的一张PPT。

 

 

 

###############################################################

篇幅2:

 

参考文档: http://blog.iaskengineer.com/andrew/entry/weblogic_10_3_4%E6%96%B0%E5%8A%9F%E8%83%BD_gridlink

 

Bea被Oracle收购以后,我们可以看到WebLogic和Oracle数据库之间的更紧密结合。

刚刚合并以后推出的10gR3(10.3.0)版本中,原来Bea使用的Data Direct Driver被放弃,官方推荐使用Oracle的thin driver:

Note:    The WebLogic Type 4 JDBC Oracle driver described in this document has been deprecated as of release 10.3 of WebLogic Server. It will be removed in the next release of WebLogic Server. Instead of this deprecated driver, use the Oracle Thin Driver that is also provided with WebLogic Server.

现在在WebLogic 10.3.4中,为了增强对RAC的支持,Oracle推出了Gridlink Data Source,取代原先的Multi Data Source:

http://download.oracle.com/docs/cd/E17904_01/web.1111/e13737/jdbc_intro.htm#BHCBACAG

Enhanced Oracle RAC Support

This release provides a new data source type, a GridLink Data Source, to provide enhanced support for Oracle RAC.
Multi Data Source

原来的Multi Data Source的工作原理是为每台RAC的结点配置一个Datasource,然后把所有的这些Datasource聚合起来配置一个Multi Data Source。虽然Multi Data Source也提供Failover(容错)和Load Balancing(负载均衡),但是功能相对有限。

1) 配置比较复杂

需要为每一个RAC 结点手动配置一个Data Source,添加和删除节点都需要WebLogic管理员手动操作。

2) Failover是data source级别的,不是connection 级别的

Multi Data Source需要开启Test Reserved Connections (TestConnectionsOnReserve)功能。这个功能开启以后,当应用向一个Data Source申请一个Connection的时候,WebLogic server需要先测试这个Connection再返回。如果这个测试失败,WebLogic会重建一个连接。如果重建再失败,Data Source就会被标识成dead,然后WebLogic自动Failover到下一个Multi Data Source里面的Data Source。

当一个Data Source被标识成dead以后,WebLogic会主动的每隔一段时间(缺省120秒)查询数据库结点。如果测试成功,这个Data Source会被重新启用。

对一个已经获得并在使用的connection,WebLogic无法实现Failover。

3)Load Balancing仅仅是简单的round robin

如果一个应用开启了多个Connection,那么根据round robin的原则,这多个Connection可能会来自多个不同的数据库结点。这个实际上有性能上的影响。

Gridlink Data Source

新推出的Gridlink Data Source相对来说更有效率,因为它很大程度上借助了数据库的功能。它使用了Oracle的ONS(Oracle Notification Service)的特征。看下图:

 


数据库RAC端的ONS服务采集RAC结点的运行数据。这些数据传给Gridlink Data Source的ONS监听客户端。UCP-RAC模块分析这些数据并给出建议,Gridlink Data Source通过这些数据/建议来实现连接池的Failover,Load Balancing和其他的一些特性。

我们来看看Gridlink Data Source的一些改进功能:

1)首先,配置变得简单了

你只需要配置一个Gridlink Data Source,它就会处理与后台的RAC数据库的通讯。相对Multi Data Source,WebLogic管理员的工作量减少很多。

如果你配置了Oracle的SCAN服务就更简单了,RAC结点的添加删除都是自动完成,因为对Gridlink Data Source来说,它只知道一个SCAN地址就好了。就好象一个域名一样,你不需要知道后面用了多少IP来实现。

2)更快速有效的Failover

使用ONS,Gridlink Data Source可以实时的捕捉到RAC端的信息。如果有结点出错,Gridlink Data Source很快将与其对应的Connection标识为不可用。这样就避免了Multi Data Source中需要不断主动测试Connection所带来的overhead。

3)实时的Load Balancing

同样因为ONS的数据,Gridlink Data Source可以知道哪些RAC结点很忙,哪些很闲,于是它可以有效的将哪些来自空闲RAC的Connection分配给应用请求,实现实时的Load Balancing。

4)沉稳应对RAC结点的关闭

如果是有计划的关闭,Gridlink Data Source会等当前Active的事务结束再关闭Connection。新的Connection请求将被发送到其他的RAC结点。

如果是突发的RAC结点关闭,Gridlink Data Source也会沉着的将当前的事务rollback,然后将新的Connection请求发送到其他的RAC结点。

5)全局事务的Connectoin会尽量在一台RAC结点上

前面讲过Multi Data Source的Round Robin策略会造成同一个事务的多个Connection被发送到不同的RAC结点上。

Gridlink Data Source在一个事务的第一个Connection创建后会将该事务的所以后续Connection请求发送到同一个RAC结点上。这样可以减少后台同步处理,提高全局事务的运行效率。

创建Gridlink Data Source

创建的过程不复杂,和一个普通的Data Source差不多,都从这里开始:


名字之类的配置,注意数据库类型就是Oracle,呵呵,当然了,RAC就是Oracle的:


XA的配置页面掠过,到了输入RAC地址的页面:


其实两个选择都一样,一个是一个一个的添加server,然后由WebLogic生成JDBC URL:


一个是自己输入JDBC URL:


没有区别,怕写错就让WebLogic生成,掠过测试页面,下一步就是关键的ONS客户端配置:


如果您使用SCAN的话,这里可以就输入SCAN的地址。

Wallet可以用来加密ONS的通讯,这里不表。

掠过测试页面,只要target一下就好了

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值