ITKeyword - 技术文章推荐分享

首页 > Dubbo高级篇_05_Dubbo服务集群

Dubbo高级篇_05_Dubbo服务集群

标签:

相关推荐:Dubbo高级篇_12_dubbo服务只注册

只注册(+) (#)问题如果有两个镜像环境,两个注册中心,有一个服务只在其中一个注册中心有部署,另一个注册中心还没来得及部署,而两个注册中心的其它应用都需要依赖此服务,所以需要将服务同时注册到两个注册中心,但却不能让此

集群的目的:实现高可用,容错功能,集群的服务器不要放在一台物理机,要分散节点,才能实现高可用,高容错性能,一台提供者挂了,还有其他提供者,保证系统正常、稳定运行。一、环境准备edu-provider-01(192.168.1.121)edu-provider-02(192.168.1.122)Connecting to 192.168.1.121:22...Connection established.To escape to local shell, press 'Ctrl+Alt+]'.Last login: Sat Apr

9 04:28:07 2016 from 192.168.1.51[root@edu-provider-01 ~]# Connecting to 192.168.1.122:22...Connection established.To escape to local shell, press 'Ctrl+Alt+]'.Last login: Sat Apr

9 04:28:07 2016 from 192.168.1.51[root@edu-provider-02 ~]# 二、Dubbo服务集群用户服务:pay-service-user交易服务:pay-service-trade我在121,122服务器同时启动这两个服务[root@edu-provider-01 user]# ./service-user.sh start=== start pay-service-user[root@edu-provider-01 user]# cd ..[root@edu-provider-01 service]# cd trade/[root@edu-provider-01 trade]# ./service-trade.sh start=== start pay-service-trade[root@edu-provider-02 user]# ./service-user.sh start=== start pay-service-user[root@edu-provider-02 user]# cd ..[root@edu-provider-02 service]# cd trade/[root@edu-provider-02 trade]# ./service-trade.sh start=== start pay-service-trade在DubboAdmin管理控制台中可以查看到两台机器的服务都注册成功这里我可以查询交易信息我先关掉121的交易服务[root@edu-provider-01 trade]# ./service-trade.sh stop=== stop pay-service-trade[root@edu-provider-01 trade]# ps -ef | grep payroot

2803

1

8 06:33 pts/0

00:00:50 /usr/jdk/jre/bin/java -Xms128m -Xmx512m -jar pay-service-user.jarroot

2980

2705

0 06:43 pts/0

00:00:00 grep pay[root@edu-provider-01 trade]# 这里我依旧可以查询交易信息我再关掉122的交易服务[root@edu-provider-02 trade]# ./service-trade.sh stop=== stop pay-service-trade[root@edu-provider-02 trade]# ps -ef | grep payroot

2639

1

7 06:34 pts/1

00:00:51 /usr/jdk/jre/bin/java -Xms128m -Xmx512m -jar pay-service-user.jarroot

2816

2592

0 06:46 pts/1

00:00:00 grep pay[root@edu-provider-02 trade]# 这里我查询交易信息就会出现异常我在121服务上再开启交易服务,又可以查询交易信息了[root@edu-provider-01 trade]# ./service-trade.sh start=== start pay-service-trade[root@edu-provider-01 trade]# 三、Dubbo服务容错配置-集群容错模式标签:<dubbo:service>提供方配置标签,粒度粗例:<!-- 当P

相关推荐:Dubbo高级篇_07_Dubbo服务接口的设计原则

1 、设计方式action->facade->biz->dao好的Dubbo服务接口设计,并非只是纯粹的接口服务化2.接口类型简单的数据查询接口:action.facade、dao(例根据Id查询记录)带业务逻辑的数据查询接口:action、facade、biz、dao(复杂的查询,带业务逻辑)简单的

rotocolConfig和ServiceConfig某属性没有配置时,采用此缺省值 --><dubbo:provider timeout="30000" threadpool="fixed" threads="100" accepts="1000" /><dubbo:service>:服务发布标签,例,在这个上配置容错,粒度细<!-- 提供服务接口 --><dubbo:service retries="0" interface="edu.pay.facade.trade.service.PaymentFacade" ref="paymentFacade" /><dubbo:consumer>消费端标签,应用单个消费端配置,粒度粗例:<dubbo:consumer timeout="8000" retries="0" />在这个上配置容错,粒度细<dubbo:reference ><!-- 调用账户服务 --><dubbo:reference interface="edu.pay.facade.account.service.AccountTransactionFacade" id="accountTransactionFacade" check="false" />属性:cluster 类型:string是否必填:可选 缺省值:failover作用:性能调优 集群方式:可选:failover/failfast/failsafe/failback/forking1、Failover Cluster失败自动切换,当出现失败,重试其它服务器。(缺省) 通常用于读操作,但重试会带来更长延迟。 可通过retries="2"来设置重试次数(不含第一次)。<dubbo:service retries="2" />或:<dubbo:reference retries="2" />或:<dubbo:reference><dubbo:method name="findFoo" retries="2" /> </dubbo:reference>2、Failfast Cluster快速失败,只发起一次调用,失败立即报错。 通常用于非幂等性的写操作,比如新增记录。<dubbo:service cluster="failfast" />或:<dubbo:reference cluster="failfast" />3.Failsafe Cluster失败安全,出现异常时,直接忽略,通常 用于写入审计日志等操作<dubbo:service cluster="failsafe"/>或者<dubbo:reference cluster="failsafe"/>4.Failback Cluster失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作。<dubbo:service cluster="failback"/>或<dubbo:reference cluster="failback"/>5.Forking Cluster并行调用多个服务,只要一个成功即返回,通常用于实时要求较高的读操作,但需要浪费更多的服务器资源。可通过forks="2"来设置最大并发数。<dubbo:service cluster="forking">或<dubbo:reference cluster="forking"/>在实际项目中,生产环境中,我们用failover模式时可以这样设计服务接口,遵循接口隔离原则 ,查询服务与写操作服务隔离,查询接口我们可以配置retries="2" 在写操作接口我们配置retries="0" ,如果不设置为0, 超时,会重新连接,会出现重复写的情况,所以使用failover模式时,我们要进行读写操作接口隔离,且写操作接口retries=0标签标签

相关推荐:Dubbo高级篇_10_Dubbo消费端直连服务提供者(开发调试)

直连提供者(+) (#)在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,A接口配置点对点,不影响B接口从注册中心获取列表。(1)

集群的目的:实现高可用,容错功能,集群的服务器不要放在一台物理机,要分散节点,才能实现高可用,高容错性能,一台提供者挂了,还有其他提供者,保证系统正常、稳定运行。一、环境准备ed...

------分隔线----------------------------