Dubbo基础培训

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

功能介绍Dubbo简要介绍Dubbo-RPC基本功能Dubbo-RPC高级功能最佳实践分布式服务框架–高性能和透明化的RPC远程服务调用方案–SOA服务治理方案Dubbo可以选择协议Dubbo可选用多种序列化方式本地服务远程服务透明化的远程方法调用–就像调用本地方法一样调用远程方法–只需简单配置,没有任何API侵入。软负载均衡及容错机制–可在内网替代F5等硬件负载均衡器服务自动注册与发现–不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者配置•配置继承•可配置可编程服务匹配•服务分组、多版本•指定调用•只订阅多协议•不同服务不同协议•同一服务多协议•本地服务调用集群&容错•集群原理•容错规则Gracefulshutdown优雅停机实际使用中发现,服务提供者比消费者更清楚一个方法的执行时间,是否允许重试等信息,所以增加允许服务提供者为消费者设置缺省值,并采用继承风格:•dubbo:servicetimeout=“3000”retries=“0”/•dubbo://10.20.130.230:20880/xxxService?timeout=3000&retries=0•服务提供者配置参考值Provider•dubbo://10.20.130.230:20880/xxxService?timeout=4000&retries=1•注册中心可在服务治理过程中修改配置值,如果不修改使用Provider设置的值Registry•dubbo:referencetimeout=“5000”retries=“2”/•dubbo://10.20.130.230:20880/xxxService?timeout=5000&retries=2•服务消费者如果出现网络慢等特殊情况,可再修改配置值,如果不修改使用前面设置的值Consumer//服务实现XxxServicexxxService=newXxxServiceImpl();//当前应用配置ApplicationConfigapplication=newApplicationConfig();application.setName(xxx);//连接注册中心配置RegistryConfigregistry=newRegistryConfig();registry.setAddress(10.20.130.230:9090);registry.setUsername(aaa);registry.setPassword(bbb);//服务提供者协议配置ProviderConfigprovider=newProviderConfig();provider.setProtocol(dubbo);provider.setPort(12345);provider.setThreads(200);//服务提供者暴露服务配置ServiceConfigservice=newServiceConfig();service.setApplication(application);service.setRegistry(registry);//多个注册中心可以用setRegistries()service.setProvider(provider);//多个提供者可以用setProviders()service.setInterfaceClass(XxxService.class);service.setRef(xxxService);service.setVersion(1.0.0);service.export();//触发服务注册?xmlversion=1.0encoding=UTF-8?beansxmlns=:xsi=:dubbo=:schemaLocation=://://repo.alibaba-inc.com/schema/dubbo!--服务实现--beanid=xxxServiceclass=com.alibaba.xxx.XxxServiceImpl/!--当前应用配置--dubbo:applicationname=morgan/!--连接注册中心配置--dubbo:registryaddress=10.20.130.230:9090username=adminpassword=hello1234/!--服务提供者协议配置--dubbo:providerprotocol=dubboport=12345threads=200/!--服务提供者暴露服务配置--dubbo:serviceinterface=com.alibaba.xxx.XxxServiceversion=1.0.0ref=xxxService//beans编程配置:Schema配置://当前应用配置ApplicationConfigapplication=newApplicationConfig();application.setName(yyy);//连接注册中心配置RegistryConfigregistry=newRegistryConfig();registry.setAddress(10.20.130.230:9090);registry.setUsername(aaa);registry.setPassword(bbb);//服务消费者缺省值配置ConsumerConfigconsumer=newConsumerConfig();consumer.setTimeout(5000);consumer.setRetries(2);//引用远程服务ReferenceConfigreference=newReferenceConfig();reference.setApplication(application);reference.setRegistry(registry);//多个注册中心可以用setRegistries()reference.setConsumer(consumer);reference.setInterfaceClass(XxxService.class);reference.setVersion(1.0.0);XxxServicexxxService=reference.get();//获取远程xxxService代理?xmlversion=1.0encoding=UTF-8?beansxmlns=:xsi=:dubbo=:schemaLocation=://://repo.alibaba-inc.com/schema/dubbo!--当前应用信息配置--dubbo:applicationname=kylin/!--连接注册中心配置--dubbo:registryaddress=10.20.130.230:9090username=adminpassword=hello1234/!--服务消费者缺省值配置--dubbo:consumertimeout=5000retries=2/!--引用远程服务--dubbo:referenceid=xxxServiceinterface=com.alibaba.xxx.XxxServiceversion=1.0.0//beans编程配置:Schema配置:当一个接口有多种实现时,可以用group区分服务提供者dubbo:servicegroup=feedbackinterface=com.xxx.IndexService/dubbo:servicegroup=memberinterface=com.xxx.IndexService/服务消费者dubbo:referenceid=“fservicegroup=feedbackinterface=com.xxx.IndexService/dubbo:referenceid=“mservicegroup=memberinterface=com.xxx.IndexService/服务提供者dubbo:serviceinterface=com.foo.BarServiceversion=1.0.0/dubbo:serviceinterface=com.foo.BarServiceversion=2.0.0/服务消费者dubbo:referenceid=barServiceinterface=com.foo.BarServiceversion=1.0.0/dubbo:referenceid=barServiceinterface=com.foo.BarServiceversion=2.0.0/当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用点对点直连/指定调用需求(开发/测试环境)方式一Spring配置dubbo:referenceinterface=com.alibaba.xxx.XxxServiceurl=dubbo://localhost:20890/方式二Java–D参数方式java-Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890方式三映射文件方式java-Ddubbo.resolve.file=xxx.propertiescom.alibaba.xxx.XxxService=dubbo://localhost:20890共用注册中心,开发人员机器上的服务提供者被误调,影响其他开发人员(开发、测试环境)dubbo:registryregister=false/FeatureMaturityStrengthProblemAdviseUserRandomLoadBalanceStable随机,按权重设置随机概率(推荐使用)在一个截面上碰撞的概率高,重试时,可能出现瞬间压力不均可用于生产环境AlibabaRoundRobinLoadBalanceStable轮循,按公约后的权重设置轮循比率存在慢的机器累积请求问题,极端情况可能产生雪崩可用于生产环境LeastActiveLoadBalanceStable最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差,使慢的机器收到更少请求不支持权重,在容量规划时,不能通过权重把压力导向一台机器压测容量可用于生产环境ConsistentHashLoadBa

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功