com.baidu.jprotobuf.pbrpc.client.ha.lb
类 LoadBalanceProxyFactoryBean

java.lang.Object
  继承者 com.baidu.jprotobuf.pbrpc.client.ha.lb.ServiceInterfaceAccessor
      继承者 com.baidu.jprotobuf.pbrpc.client.ha.lb.ServiceMultiInterfaceAccessor
          继承者 com.baidu.jprotobuf.pbrpc.client.ha.lb.LoadBalanceProxyFactoryBean
所有已实现的接口:
org.aopalliance.aop.Advice, org.aopalliance.intercept.Interceptor, org.aopalliance.intercept.MethodInterceptor, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.FactoryBean, org.springframework.beans.factory.InitializingBean

public class LoadBalanceProxyFactoryBean
extends ServiceMultiInterfaceAccessor
implements org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.FactoryBean, org.springframework.beans.factory.InitializingBean, org.aopalliance.intercept.MethodInterceptor, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.BeanNameAware

a common utility proxy factory bean to support Spring beans load balance support.
a example

 <bean id="lbRmiService" class="com.baidu.jprotobuf.pbrpc.client.ha.lb.LoadBalanceProxyFactoryBean">
  <property name="serviceInterface" value="com.baidu.rigel.system.subsystem.submodule.service.TestService"></property>
  <property name="extraInterfaces">
      <list>
          <value>com.baidu.rigel.service.remote.support.transaction.TransactionManager</value>
      </list>
   </property>
  <property name="targetBeans">
      <map key-type="java.lang.String">
          <entry key="helloService1" value-ref="helloServiceClient" />
          <entry key="helloService2" value-ref="helloServiceClient2" />
      </map>
  </property>
  <property name="loadBalanceStrategy">
      <bean class="com.baidu.jprotobuf.pbrpc.client.ha.lb.strategy.RoundRobinLoadBalanceStrategy">
          <constructor-arg>
              <map key-type="java.lang.String" value-type="java.lang.Integer">
                  <entry key="helloService1" value="1" />
                  <entry key="helloService2" value="1" />
              </map>
          </constructor-arg>            
      </bean>
  </property>
  <property name="failOverInterceptor">
      <bean class="com.baidu.jprotobuf.pbrpc.client.ha.lb.failover.rmi.RmiFailOverInterceptor">
          <property name="recoverServiceUrls">
              <map key-type="java.lang.String">
                  <entry key="helloService1" value="rmi://localhost:1199/Service" />
                  <entry key="helloService2" value="rmi://localhost:1198/Service" />
              </map>                    
          </property>
      </bean>
  </property>
  <property name="recoverInterval" value="1000"></property>
 </bean>
 
 

从以下版本开始:
2.17
作者:
xiemalin

嵌套类摘要
static class LoadBalanceProxyFactoryBean.FactoryBeanInvokeInfo
           
 
构造方法摘要
LoadBalanceProxyFactoryBean()
           
 
方法摘要
 void addTargetBean(String key, Object targetBean)
          add target bean
 void afterPropertiesSet()
           
 void destroy()
           
protected  ClassLoader getBeanClassLoader()
          Return the ClassLoader that this accessor operates in, to be used for deserializing and for generating proxies.
 Map<String,LoadBalanceProxyFactoryBean.FactoryBeanInvokeInfo> getFailedFactoryBeans()
           
 FailOverInterceptor getFailOverInterceptor()
           
 Object getObject()
           
 Class getObjectType()
           
 long getRecoverInterval()
           
 boolean hasFactoryBeanFailed()
           
 Object invoke(org.aopalliance.intercept.MethodInvocation invocation)
           
 boolean isFailOver()
           
protected  boolean isHeartBeat()
           
 boolean isSingleton()
           
 void recoverFactoryBean(String key)
           
 void setBeanClassLoader(ClassLoader classLoader)
           
 void setBeanName(String beanName)
           
 void setFailOverEvent(FailOverEvent failOverEvent)
           
 void setFailOverInterceptor(FailOverInterceptor failOverInterceptor)
           
 void setHeartBeat(boolean heartBeat)
           
 void setLoadBalanceStrategy(LoadBalanceStrategy loadBalanceStrategy)
           
 void setRecoverInterval(long recoverInterval)
           
 void setStrategyInterceptor(StrategyInterceptor strategyInterceptor)
           
 void setTargetBeans(Map<String,Object> targetFactoryBeans)
           
 
从类 com.baidu.jprotobuf.pbrpc.client.ha.lb.ServiceMultiInterfaceAccessor 继承的方法
getExtraInterfaces, getExtraServiceInterfaces, setExtraInterfaces
 
从类 com.baidu.jprotobuf.pbrpc.client.ha.lb.ServiceInterfaceAccessor 继承的方法
getServiceInterface, setServiceInterface
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

LoadBalanceProxyFactoryBean

public LoadBalanceProxyFactoryBean()
方法详细信息

setFailOverEvent

public void setFailOverEvent(FailOverEvent failOverEvent)

setTargetBeans

public void setTargetBeans(Map<String,Object> targetFactoryBeans)
参数:
targetFactoryBeans -

addTargetBean

public void addTargetBean(String key,
                          Object targetBean)
add target bean

参数:
key -
targetBean -

setLoadBalanceStrategy

public void setLoadBalanceStrategy(LoadBalanceStrategy loadBalanceStrategy)
参数:
loadBalanceStrategy -

getFailOverInterceptor

public FailOverInterceptor getFailOverInterceptor()
返回:
the failOverInterceptor

setFailOverInterceptor

public void setFailOverInterceptor(FailOverInterceptor failOverInterceptor)
参数:
failOverInterceptor - the failOverInterceptor to set

isFailOver

public boolean isFailOver()
返回:

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
指定者:
接口 org.springframework.beans.factory.InitializingBean 中的 afterPropertiesSet
抛出:
Exception

getObject

public Object getObject()
指定者:
接口 org.springframework.beans.factory.FactoryBean 中的 getObject

getObjectType

public Class getObjectType()
指定者:
接口 org.springframework.beans.factory.FactoryBean 中的 getObjectType

isSingleton

public boolean isSingleton()
指定者:
接口 org.springframework.beans.factory.FactoryBean 中的 isSingleton

setBeanClassLoader

public void setBeanClassLoader(ClassLoader classLoader)
指定者:
接口 org.springframework.beans.factory.BeanClassLoaderAware 中的 setBeanClassLoader

getBeanClassLoader

protected ClassLoader getBeanClassLoader()
Return the ClassLoader that this accessor operates in, to be used for deserializing and for generating proxies.


invoke

public Object invoke(org.aopalliance.intercept.MethodInvocation invocation)
              throws Throwable
指定者:
接口 org.aopalliance.intercept.MethodInterceptor 中的 invoke
抛出:
Throwable

getFailedFactoryBeans

public Map<String,LoadBalanceProxyFactoryBean.FactoryBeanInvokeInfo> getFailedFactoryBeans()
返回:
the failedFactoryBeans

recoverFactoryBean

public void recoverFactoryBean(String key)

hasFactoryBeanFailed

public boolean hasFactoryBeanFailed()

destroy

public void destroy()
             throws Exception
指定者:
接口 org.springframework.beans.factory.DisposableBean 中的 destroy
抛出:
Exception

setStrategyInterceptor

public void setStrategyInterceptor(StrategyInterceptor strategyInterceptor)
参数:
strategyInterceptor - the strategyInterceptor to set

setRecoverInterval

public void setRecoverInterval(long recoverInterval)
参数:
recoverInterval - the recoverInterval to set

getRecoverInterval

public long getRecoverInterval()
返回:
the recoverInterval

isHeartBeat

protected boolean isHeartBeat()
返回:
the heartBeat

setHeartBeat

public void setHeartBeat(boolean heartBeat)
参数:
heartBeat - the heartBeat to set

setBeanName

public void setBeanName(String beanName)
指定者:
接口 org.springframework.beans.factory.BeanNameAware 中的 setBeanName


Copyright © 2015 Baidu, Inc.. All Rights Reserved.