关于系统接口设计:

关于系统接口设计

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.接口通信机制:
      • 2.消息机制
      • 3.共享存储的形式
    • 拓展实现
    • 性能参数测试:
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,hope for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

系统接口设计是一个非常常见的需求。

需求:

1.接口通信
2. 共享系统

设计思路

实现思路分析

1.接口通信机制:

当不同的系统之间通信主要是为了传输数据:
一般来说前端后端的方式是HTTP的,更多的是通信协议,都是满足的。

而数据规范是则是建立的协议上的数据格式封装。
如XML格式,JSON格式,字符串格式等,基本类型等,自定义对象格式等,web service 格式等,更多的是数据交换格式。
基本都是基于HTTP承载的。而系统间的关系也是如此:

2.消息机制

将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间,用时100ms

可以明显看出消息队列比串行提高了3倍,比并行提高了两倍。
场景说明:用户下单后,订单系统需要通知库存系统。传统的做法是:订单系统调用库存系统的接口,如下图:
订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单成功。

库存系统:订阅下单的消息,采取拉/推的方式,获取下单信息,库存系统根据下单信息,进行库存操作。

假如:在下单时库存系统不能正常使用,也不影响正常下单,因为下单后,订单系统写入消息队列就不再关心其他的后续操作了。实现订单系统与库存系统的应用解耦。

3.共享存储的形式

这是最基本的方式,显然没有消息队列的方式好:连最基本的JMS都没有:
没有解耦,消息控制,和异步的公共,当然workflow 比较特殊,不可能异步了。

在对接工作流的时候,工作开始表的时候的一张表,最后一张结果表。
首先开始查询流程是不是发起,返回记录集合。如果没有说明都没有发起流程,
如果返回了集合:
集合大小为空,什么都没做,还在待审批中呢,
集合大小不为空:
=》取出对应的流程ID:
ID不存在,还是原来的状态:
ID 存在,在审批中。
然后到结果表查询,
查询不到结果记录集合,异常,审批中,不动。
查询到结果集合,根据不同的状态位设置改变
逻辑结束。

拓展实现

这里参考:github:简单实现上述流程:
入门级实现:
: 部分源码实现.
: 源码实现

性能参数测试:

参考资料和推荐阅读

  1. 推荐阅读:.

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~

你可能感兴趣的:(【原则-模式-架构】,java)