




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
概要:1. Dubbo 快速入门2. Dubbo 常规配置说明一、Dubbo 快速入门Dubbo核心功能解释dubbo 阿里开源的一个SOA服务治理框架,从目前来看把它称作是一个RPC远程调用框架更为贴切。单从RPC框架来说,功能较完善,支持多种传输和序列化方案。所以想必大家已经知道他的核心功能了:就是远程调用。快速演示Dubbo的远程调用实现步骤l 创建服务端项目n 引入dubbo 依赖n 编写服务端代码l 创建客户端项目n 引入dubbo 依赖n 编写客户端调用代码dubbo 引入: com.alibaba dubbo 2.6.2dubbo 默认依懒:客户端代码:static String remoteUrl = dubbo:/127.0.0.1:12345/tuling.dubbo.server.UserService;/ 构建远程服务对象public UserService buildRemoteService(String remoteUrl) ApplicationConfig application = new ApplicationConfig(); application.setName(young-app); ReferenceConfig referenceConfig = new ReferenceConfig(); referenceConfig.setApplication(application); referenceConfig.setInterface(UserService.class); referenceConfig.setUrl(remoteUrl); UserService userService = referenceConfig.get(); return userService;服务端代码:public void openServer(int port) ApplicationConfig config = new ApplicationConfig(); config.setName(simple-app); ProtocolConfig protocolConfig=new ProtocolConfig(); protocolConfig.setName(dubbo); protocolConfig.setPort(port); protocolConfig.setThreads(20); ServiceConfig serviceConfig=new ServiceConfig(); serviceConfig.setApplication(config); serviceConfig.setProtocol(protocolConfig); serviceConfig.setRegistry(new RegistryConfig(RegistryConfig.NO_AVAILABLE); serviceConfig.setInterface(UserService.class); serviceConfig.setRef(new UserServiceImpl(); serviceConfig.export();基于Dubbo实现服务集群:在上一个例子中如多个服务的集群?即当有多个服务同时提供的时候,客户端该调用哪个?以什么方式进行调用以实现负载均衡?一个简单的办法是将多个服务的URL同时设置到客户端并初始化对应的服务实例,然后以轮询的方式进行调用。但如果访问增大,需要扩容服务器数量,那么就必须增加配置重启客户端实例。显然这不是我们愿意看到的。Dubbo引入了服务注册中的概念,可以解决动态扩容的问题。演示基于注册中心实现服集群:l 修改服务端代码,添加multicast 注册中心。l 修改客户端代码,添加multicast 注册中心。l 观察 多个服务时,客户端如何调用。l 观察 动态增减服务,客户端的调用。# 服务端连接注册中心serviceConfig.setRegistry(new RegistryConfig(multicast:/224.1.1.1:2222);# 客户端连接注册中心referenceConfig.setRegistry(new RegistryConfig(multicast:/224.1.1.1:2222);#查看 基于UDP 占用的2222 端口netstat -ano|findstr 2222基于spring IOC维护Dubbo 实例在前面两个例子中 出现了,ApplicationConfig、ReferenceConfig、RegistryConfig、com.alibaba.dubbo.config.ServiceConfig等实例 ,很显然不需要每次调用的时候都去创建该实例那就需要一个IOC 容器去管理这些实例,spring 是一个很好的选择。提供者配置- 提供者服务暴露代码:ApplicationContext context = new ClassPathXmlApplicationContext(/spring-provide.xml);(ClassPathXmlApplicationContext) context).start();System.in.read();消费者配置- 消费者调用代码:ApplicationContext context = new ClassPathXmlApplicationContext(/spring-consumer.xml);UserService userService = context.getBean(UserService.class);UserVo u = userService.getUser(1111);System.out.println(u);二、Dubbo常规配置说明Dubbo配置的整体说明:标签用途解释公共用于配置当前应用信息,不管该应用是提供者还是消费者公共用于配置连接注册中心相关信息服务用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受服务用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心服务当 ProtocolConfig 和 ServiceConfig 某属性没有配置时,采用此缺省值,可选引用当 ReferenceConfig 某属性没有配置时,采用此缺省值,可选引用用于创建一个远程服务代理,一个引用可以指向多个注册中心公共用于 ServiceConfig 和 ReferenceConfig 指定方法级的配置信息公共用于指定方法参数配置配置关系图:配置分类所有配置项分为三大类。1. 服务发现:表示该配置项用于服务的注册与发现,目的是让消费方找到提供方。2. 服务治理:表示该配置项用于治理服务间的关系,或为开发测试提供便利条件。3. 性能调优:表示该配置项用于调优性能,不同的选项对性能会产生影响。dubbo 配置的一些套路:先来看一个简单配置 通过字面了解 timeout即服务的执行超时时间。但当服务执行真正超时的时候 报的错跟timeout并没有半毛钱的关系,其异常堆栈如下:可以看到错误表达的意思是 因为Channel 关闭导致 无法返回 Response 消息。出现这情况的原因在于 虽然timeout 配置在服务端去是用在客户端,其表示的是客户端调用超时间,而非服务端方法的执行超时。当我们去看客户端的日志时候就能看到timeout异常了类似这种配在服务端用在客户端的配置还有很多,如retries/ritra/(重试次数)、async/sk/(是否异步)、loadbalance(负载均衡)。等。套路一:服务端配置客户端来使用。注:其参数传递机制是 服务端所有配置都会封装到URL参数,在通过注册中心传递到客户端 如果需要暴露多个服务的时候,每个服务都要设置其超时时间,貌似有点繁琐。Dubbo中可以通过 来实现服务端缺省配置。它可以同时为 和 两个标签提供缺省配置。如:#相当于每个服务提供者设置了超时时间 和重试次数同样客户端也有缺省配置标签:,这些缺省设置可以配置多个 通过 ,如果没指定就用第一个。 、套路二:与 ,与傻傻分不清楚 在服务端配置timeout 之后 所有客户端都会采用该方超时时间,其客户端可以自定义超时时间吗?通过 可以设定或者在 也可以设定 甚至可以设定到方法级别 。加上服务端的配置,超
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高频氧疗参数设置课件
- 集安市2025-2026学年八年级上学期语文期中测试试卷
- 高速铁路客流调查课件
- 电解池原理及其应用
- 电视机原理课件
- 电芯极化知识培训总结
- 高血压课件教学
- 电脑系统硬件知识培训课件
- 电脑知识培训方案课件
- 江西省鹰潭市2024-2025学年高一下学期期末考试 英语试卷
- 《Photoshop图像处理》课件-第一讲 认识PS
- 深度学习教学改进丛书 深度学习:走向核心素养(理论普及读本)
- 大众Polo 2014款说明书
- 人民医院整形外科临床技术操作规范2023版
- 新媒体运营全套PPT完整教学课件
- DB65T 3993-2017旱寒区冬油菜复播油葵栽培技术规程
- 脚手架搭拆施工方案
- 出境竹木草制品自检自控计划书(2021年报海关)
- 汽车风窗刮水器机构设计
- 重庆某广场高边坡喷锚支护施工方案(脚手架设计)
- 压力容器材料
评论
0/150
提交评论