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 ...
最新文章
- 《英语语法新思维初级教程》学习笔记(一)名词短语
- 软件测试职业培训中心,软件测试工程师就业班
- python必背100代码-这 100 道 Python 题,拿去刷!!!
- Oracle Caused by: java.sql.SQLException: sql injection violation, syntax error: syntax error, expect
- Git的配置SSHKey
- 多线程:CopyOnWriteArrayList
- mac nginx php7 配置,mac os下配置nginx+php7.1+fastcgi
- 那些年我们追过的计算机经典书
- Tile-Based架构下的性能调校
- 我找到一个价值5.5万美元的 Facebook OAuth账户劫持漏洞
- 应用管理系列 — 怎么管理Sybase数据库
- linux中sed和find,Linux运维知识之Linux 之 sed 与 find 命令结合使用
- 7.jenkins 发布邮件
- 数据挖掘技术基本任务
- 国美理直气壮的停发员工工资
- Latex 中的空格汇总
- python爬取bilibili弹幕_python 爬取bilibili 视频弹幕
- 【转】CAN总线与CANOPEN协议入门
- 网红神盾七号重疾险再创新高,自带住院津贴,还能赔两次!
- 〖Python 数据库开发实战 - Python与MySQL交互篇④〗- 数据库连接池技术
热门文章