博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微服务+:服务契约治理
阅读量:5966 次
发布时间:2019-06-19

本文共 667 字,大约阅读时间需要 2 分钟。

一、为什么要治理服务契约?

在日常工作中发现契约导致的沟通问题很多。另外由于契约定义不严谨,导致线上Bug的出现也时有发生。比如忽略字段长度,导致数据落库失败。由点到面梳理问题如下表:

问题 开发阶段 测试阶段 运行阶段 后期迭代
契约不严谨 1.增加了开发人员的理解成本
2.增加了契约相关方的沟通成本
3.这种情况下,再缺少沟通的话,各相关方按照自己的理解开发导致后期联调成本增加。
1.增加了测试人员的理解成本
2.增加了测试与开发的沟通成本
服务不健壮 1.增加了产品的理解成本
2.增加了产品与开发的沟通成本
服务契约与文档契约不一致 1.增加了联调成本
2.导致联调时某一方的返工
1.增加测试与开发的沟通成本
2.导致测试用例的返工
服务不健壮 1.增加了产品的理解成本
2.增加了产品与开发的沟通成本
契约改动通知不到位 1.增加了联调成本
2.导致联调时某一方的返工
1.增加测试与开发的沟通成本
2.导致测试用例的返工
线上故障  
契约信任 1.契约验证开发成本
2.契约验证维护成本
契约相关的测试成本    

另外,还存在职责问题,例如:

服务提供者的问题,被客户端发现。而客户端对这种非自身问题关注是不够的,导致问题不被重视。

二、怎么治理服务契约呢?

服务契约的治理是一个工程性问题,本着规范流程,固化最佳实践的目的,设计如下:

 

 

三、治理什么?

一个健壮契约的元数据:

  • 协议
  • 结构
    • 基元类型
      • 文本、数字、布尔、时间
      • 约束
    • 复杂类型
      • 类、数组

四、支撑该设计的原则

  1. 契约先行
  2. 问题尽早发现
  3. 谁的问题谁发现

架构思维修炼

转载地址:http://yqmax.baihongyu.com/

你可能感兴趣的文章
图形变幻矩阵 Transforms
查看>>
IOS成长之路-Nsstring中搜索方法rangeOfString
查看>>
ecshop /includes/init.php Arbitrary User Login Vul
查看>>
如何用Dummy实例执行数据库的还原和恢复
查看>>
【转】Win7、Ubuntu双系统正确卸载Ubuntu系统--不错
查看>>
HTML 事件属性_03
查看>>
MYSQL查看和修改存储引擎
查看>>
Linux 下zip包的压缩与解压
查看>>
DevExpress.XtraGrid
查看>>
自定义AuthorizeAttribute
查看>>
2015第26周六《谁动了我的奶酪》书摘
查看>>
HTML5系列四(特征检测、Modernizr.js的相关介绍)
查看>>
别怀疑,换了位置就该换你的脑袋(转)
查看>>
Linux服务器的最大内存和CPU数
查看>>
【转】Android兼容性测试CTS Verifier-环境搭建、测试执行、结果分析
查看>>
Android开发UI之Toast的使用
查看>>
MyBatis知多少(10)应用程序数据库
查看>>
[leetcode]Jump Game
查看>>
linux awk命令详解,使用system来内嵌系统命令,批量github,批量批下载视频, awk合并两列...
查看>>
SQL Server表分区的NULL值问题
查看>>