spring有比较好的远程服务解决方案,但其静态导入方案,只能使用一个server端,在大型分布式系统中无法很好的解决负载均衡及单点故障问题。某一个server放生故障,client就会受到影响。
为解决该问题,cluster4spring应运而生,提供一个很好的解决方案。一个client端可以同时链接n个服务节点,其中某一个服务节点发生故障不会影响整个系统运行。
目前0.85版本,仅支持rmi远程协议,后续预计会继续支持很多其他协议。
使用很简单,只需xml配置即可:
Client端配置:
<bean name="REMOTE_SERVICE_CLIENT" class="org.softamis.cluster4spring.rmi.RmiUrlListProxyFactoryBean"
abstract="true">
<property name="refreshEndpointsOnConnectFailure" value="true"/>
<property name="refreshEndpointsOnStartup" value="true"/>
<property name="registerTraceInterceptor" value="true"/>
<property name="switchEndpointOnFailure" value="true"/>
<property name="interceptorNames" value="_TestClientLoggingInterceptor, _TestClientEmptyInterceptor"/>
<property name="endpointFactory" ref="_RmiEndpointFactory"/>
<property name="endpointSelectionPolicy" ref="_endpointSelectionPolicy"/>
</bean>
<bean name="TestService1" parent="REMOTE_SERVICE_CLIENT">
<property name="serviceInterface" value="org.softamis.cluster4spring.examples.TestServiceImpl"/>
<property name="serviceURLs">
<list>
<value>rmi://server1:1199/TestService</value>
<value>rmi://server2:1199/TestService</value>
<value>rmi://server3:1199/TestService</value>
</list>
</property>
</bean>
Server端:
<bean id="_RMIRegistry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean">
<property name="port" value="1099"/>
</bean>
<bean name="_RemoteInvcationExecutor" class="org.springframework.remoting.support.DefaultRemoteInvocationExecutor"/>
<bean name="_RMIClientSocketsFactory" class="java.rmi.server.RMIClientSocketFactory"/>
<bean name="TestService.bean" class="org.softamis.cluster4spring.examples.TestServiceImpl"/>
<bean name="TestService.custom.verbose" class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="clientSocketFactory" ref="_RMIClientSocketsFactory"/>
<property name="registerTraceInterceptor" value="true"/>
<property name="registry" ref="_RMIRegistry"/>
<property name="remoteInvocationExecutor" ref="_RemoteInvocationExecutor"/>
<property name="service" ref="TestService.bean"/>
<property name="serviceInterface" value="org.softamis.cluster4spring.examples.TestServiceImpl"/>
<property name="serviceName" value="TestService"/>
</bean>
Server端可以直接使用spring默认配置,或者使用上述方案,cluster4spring会自动判断处理。
具体的参数会在稍后给出,或请参考官网http://www.soft-amis.com/index.html
分享到:
相关推荐
相比传统的集中式负载均衡方案,分布式方法不仅能有效避免单点故障,还能根据实时的系统状态智能调度资源,保证服务的高可用性和响应速度。未来,随着云计算和边缘计算技术的不断发展,分布式负载均衡技术将在更多...
- 负载均衡:通过算法自动分配流量,确保服务器间的负载均衡,避免单点故障。 - 应用安全:提供防火墙功能,检测并阻止恶意流量,保护应用免受攻击。 - 性能管理:优化应用性能,减少延迟,提升用户体验。 - 自动化...
3. **高可用**:确保配置服务在多节点环境下能够高可用,防止单点故障。 4. **安全控制**:对配置进行权限控制,防止未经授权的访问和修改。 **二、Dubbo RPC框架** Dubbo是由阿里巴巴开源的一款高性能、轻量级的...
2. 负载均衡:通过负载均衡器将请求分发到不同的服务器,避免单点过载,提高可用性。 3. 分布式缓存:使用如Redis、Memcached等分布式缓存系统,存储热点数据,减少数据库访问压力。 4. 数据库读写分离:主库负责写...
本资源提供了从零开始编写分布式服务框架的源码,涵盖了书籍中的各个技术点,对于想要深入理解分布式服务框架设计与实现的开发人员来说,这是一个宝贵的资料库。 在学习这些源码之前,首先需要了解分布式服务框架的...
MySQL 分布式数据库 MyCAT 方案是一个功能强大且可靠的解决方案,可以帮助管理员解决传统 MySQL 数据库的单点故障和性能瓶颈问题。该方案可以提高数据库的可扩展性、可靠性和性能,提高数据库的可用性和可靠性。
然而,在集群中,使用锁机制会导致单点故障问题。若负责管理锁的节点宕机,整个集群将无法正常工作。因此,分布式系统需要一种能够维持负载均衡的同时,实现分布式一致性的高容错算法。 Gossip算法简介: 文章指出...
2. 避免单点故障:通过集群部署,即使主负载均衡器故障,也能切换到备用。 3. 健康检查:定期检测后端服务器状态,及时将故障服务器从池中移除。 七、云环境中的负载均衡 在云环境中,如AWS的ELB、Google Cloud的...
分布式系统架构应运而生于解决单点故障、提高系统的稳定性和可靠性。其中,“分布式架构高可用架构-Keepalived+Nginx实现高可用Web负载均衡”旨在通过Keepalived和Nginx结合的方式构建一套高效稳定的Web负载均衡系统...
总的来说,阿里云的负载均衡服务是一个全面的解决方案,它提供了流量分发、健康检查、安全防护等多方面功能,帮助用户构建高可用、高安全性的分布式应用系统。结合ECS和其他阿里云服务,可以构建出更灵活、更健壮的...
本文提出了一种分布式企业服务总线的设计方案,通过负载均衡、消息持久化等机制有效解决了集中式ESB存在的单点故障和性能瓶颈等问题。通过原型系统的测试,证明了该方案在实际应用中的可行性和有效性。未来的研究将...
本地负载均衡主要关注于优化本地服务器群的性能,通过多种均衡策略分配流量,避免单点故障,同时允许灵活地添加新服务器而不影响现有架构。全局负载均衡则超越地域限制,根据用户的位置将请求路由到最近的服务器,...
2. **负载均衡**:通过负载均衡器,如Nginx或HAProxy,将来自用户的请求均匀地分发到各个服务器,避免单点过载,提高系统可用性和响应速度。 3. **数据库分片与复制**:为了处理大量数据和保证数据一致性,可以使用...
- 单点故障风险增加。一旦指定的服务器出现故障,可能导致会话数据丢失。 - 负载均衡器需要进行七层解析,性能开销较大。 - 负载均衡器成为有状态节点,增加了运维复杂度。 ##### 2. Session Replication (会话...
4. 分布式网格集群:这是更彻底的解决方案,通过数据分区和负载均衡,将数据拆分到不同服务器,实现多节点并行处理,提高读写性能,同时通过冗余数据结构增强容错能力,确保服务不间断。 5. 数据实时复制:SQL ...
在对基于HDFS的分布式存储系统设计及负载均衡技术进行研究的过程中,文中提出了一个基于Hadoop构建的云存储平台在线教育系统的设计方案。该方案涉及到了系统框架的构建,其中负载均衡技术的应用是提升系统性能的关键...
- 负载均衡:优化资源分配,减少单点过载。 - 集群与网格计算:集群提供高性能计算能力,网格则将计算资源虚拟化共享。 - 系统监控与性能分析:监控系统状态,评估性能瓶颈,优化分布式系统。 8. 安全性与隐私:...