Dubbo——Dubbo中的常用标签、服务化最佳实践
文章目录:
1.Dubbo中的常用标签
2.Dubbo中的服务化最佳实践
2.1 分包
2.2 粒度
2.3 版本
2.4 案例分析
2.4.1 003-link-interface
2.4.2 004-link-userservice-provider
2.4.3 005-link-consumer
2.4.4 启动测试
1.Dubbo中的常用标签
Dubbo 中常用标签。分为三个类别:公用标签,服务提供者标签,服务消费者标签。
- 公用标签:配置应用信息 <dubbo:application/> 和 配置注册中心 <dubbo:registry/>
- 服务提供者标签:配置暴露的服务 <dubbo:service interface=”服务接口名” ref=”服务实现对象 bean”>
- 服务消费者标签:引用远程服务 <dubbo:reference id=”服务引用 bean 的 id” interface=”服务接口名”/>
2.Dubbo中的服务化最佳实践
2.1 分包
建议将服务接口、服务模型、服务异常等均放在公共包中。
2.2 粒度
服务接口尽可能大粒度,每个服务方法应代表一个功能,而不是某功能的一个步骤,
否则将面临分布式事务问题,Dubbo 暂未提供分布式事务支持。
服务接口建议以业务场景为单位划分,并对相近业务做抽象,防止接口数量爆炸。
不建议使用过于抽象的通用接口,如:Map query(Map),这样的接口没有明确语义,会给后期维护带来不便。
2.3 版本
每个接口都应定义版本号,为后续不兼容升级提供可能,如: <dubbo:service interface="com.xxx.XxxService" version="1.0" />。
建议使用两位版本号,要变更服务版本。先升级一半提供者为新版本,再将消费者全部升为新版本,然后将剩下的一半提供者升为新版本。
2.4 案例分析
在这个案例分析中,一共需要3个maven工程 。
2.4.1 003-link-interface
第一个是maven java工程,它里面存放的是服务模型和服务接口。代码如下:
Dubbo——Dubbo中的常用标签、服务化最佳实践相关推荐
- dubbo服务化最佳实践
本文来说下dubbo服务化最佳实践 文章目录 概述 分包 粒度 本文小结 概述 dubbo的服务化最佳实践包括分包, 粒度, 版本, 兼容性, 枚举, 序列化, 异常等内容,详细信息可以看官网提供的内 ...
- html中form标签的作用style,HTML5中meta常用标签属性说明
HTML5中meta常用标签属性说明 IE 兼容模式,Bootstrap 不支持 IE 古老的兼容模式.为了让 IE 浏览器运行最新的渲染模式下,建议将此 标签加入到你的页面中: content属性 ...
- 分布式服务框架之服务化最佳实践
在服务化之前,业务通常都是本地API调用,本地方法调用性能损耗较小.服务化之后,服务提供者和消费者之间采用远程网络通信,增加了额外的性能损耗,业务调用的时延将增大,同时由于网络闪断等原因,分布式调用失 ...
- java web中jsp常用标签
在jsp页面开发过程中,经常需要使用JSTL(Java Server Pages Standard Tag Library)标签开开发页面,是看起来更加的规整舒服. JSTL主要提供了5大类标签库:1 ...
- java web 有哪些标签库_java web中jsp常用标签
在jsp页面开发过程中,经常需要使用JSTL(Java Server Pages Standard Tag Library)标签开开发页面,是看起来更加的规整舒服. JSTL主要提供了5大类标签库:1 ...
- Mybatis中的常用标签
trim标签 MyBatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"v ...
- 软件架构中的架构模式和最佳实践:探索和实践
作者:禅与计算机程序设计艺术 "架构"这个词汇一直是软件工程师们谈论的热点话题之一,无论从代码设计.框架选型.需求分析.项目管理.测试策略还是后续的维护.运维等各个方面都离不开架构 ...
- 【转】Java中关于异常处理的十个最佳实践
原文地址:http://www.searchsoa.com.cn/showcontent_71960.htm 导读:异常处理是书写强健Java应用的一个重要部分,Java许你创建新的异常,并通过使用 ...
- PyTorch 1.0 中文文档:多进程最佳实践
译者:cvley torch.multiprocessing 是 Python 的 multiprocessing 的直接替代模块.它支持完全相同的操作,但进行了扩展,这样所有的张量就可以通过一个 m ...
最新文章
- 两个git库之间迁移_Python 3 迁移怨声载道
- SpringCloud微服务云架构构建B2B2C电子商务平台之-(八)消息总线(Spring Cloud Bus)...
- GPS Essentials
- 我们为什么会爱上一个人?
- linux transmission,Linux下使用Transmission新版
- cad布局打印出图-01-模型空间打印
- go redis 序列化_求求你不要手写Redis缓存
- 深入理解并行编程-分割和同步设计(五)
- 轩辕炼妖录java_一个Java对象的回忆录:那些被锁住的日子
- 恢复误删的Windows文件
- blend 自定义控件
- Python数据结构中包含中文时在Windows下正常输出
- sql查询时取日期部分内容(年月日时分秒)、增加时间
- 黑苹果 hackintosh 声卡驱动
- 点击复制某段文本方法
- java 实现限流器,可用于Rest接口请求处理 | Java工具类
- 使用Navicat导入.sql文件(适合新手)
- `MD`语法技巧Typora
- 在Windows程序中打开控制台的程序
- Java 开发工程师 面试题(一)
热门文章