专栏首页DDD常识六流程服务

常识六流程服务

常识系列,作为一名互联网门外汉的科普系列

流程服务,乍一看,很高深的样子。其实是个很简单的东东!

看到流程,千万别想到workflow那种复杂的玩意。

不知道别的公司,别的部门有没有这种服务,这种服务是因实际痛点情况符合底层团队而生的一种服务。

定义

流程服务:一连串按特定顺序请求的服务集

由定义可知特性:

  1. 是个服务集,不只单单某个服务
  2. 这些服务会被特定顺序请求,如果顺序错乱,请求就会被打断

痛点

为什么会有流程服务?它的价值在哪里

背景

公司一般都是前后端分离,分为前端,中间层,后端。

中间层做了相关聚合,后端已经很底层了。

有多底层呢?底层到只有数据操作,如DB,redis之类的存储操作

比如用户相关:

  1. 用户名密码方式登陆,就是查user表
  2. 通过用户名查询用户信息
  3. 通过用户ID查询用户信息
  4. 登陆成功后发送消息
  5. 登陆成功不用发送消息

这样三个接口,你单单想想,有多大价值,没毕业的学生做得不一定有多差

当然你可更加聪明点:写个万能查询接口,上层有什么样的条件,传过来就行了,拼个万能sql

一个接口,万岁!

如果你不参与整体项目需求评审,项目架构设计,你会觉得你的工作相当无聊,只有CRUD。

痛点

首先一个接口肯定是不行了

  1. 接口职责不清
  2. 性能不能保证
  3. 服务治理是个空话
  4. 重构艰难
  5. 测试困难

根据这痛点,我们职责划分一下,性能,治理都可以解决

那是不是就没有了痛点呢?

举个列子:有个活动,推广用户绑定邮箱,获得一定的奖励

绑定邮箱,对应saveUserEmail接口,就是个插入DB操作,too simple;

有个客诉,说绑定邮箱了,没有拿到奖励。客服要找人解决,找谁? 肯定是底层,数据在底层,有没有绑定邮箱,绑定渠道是什么?什么时间绑定的?

数据都是从上游到下游,但查问题时,都是从下游推导上游

这种底层接口,上游都可以调用,什么时候什么情况什么业务调用的,底层开发完全不清楚。

到底是底层存储错了,还是上游传参错了?

反正这个数据是底层存储,底层需要去梳理调用链,分析下是存错了,还是上游传错了,给客服一个解释,给用户一个交待。

弄不好一个接口有千百个调用方,底层实在是难

讲到这,痛点就清楚了,接口场景的缺失是底层最大的痛点

流程服务

有了痛点,就寻找解决方法:流程服务

不再让中间层聚合所有服务,由底层提供流程服务,简化了中间层聚合的复杂度,底层也保存了场景信息

比如手机快捷登陆流程

  1. 根据手机号查询是否有用户绑定此手机号
  2. 接入风控系统防刷,获取手机验证码
  3. 验证手机验证码
  4. 登陆成功返回用户信息,发送登陆成功消息

当上游请求请求此流程时,底层就知道是手机快捷登陆业务,不再是零散的接口调用

流程数据

流程数据需不需要存储?

流程的每一步如果存储,用什么存储呢? mysql?redis?

流程的有效期是多久呢?是流程结束后清除,还是定时归档?

注意点

DB一般都使用主从架构,虽然大多数时候都是实时的,但也有延迟的时候,如果流程之间时间极短,如何保证主从同步完成时间小于流程切换时间?

如果用户流程不走完,比如一个流程有三步,用户只操作了第一步,或者前两步,那产生的脏数据怎么办?是回滚呢?还是定时清理?

本文分享自微信公众号 - 码农戏码(coder-game),作者:Jack

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C语言服务器编程必备常识

    震八方紫面昆仑侠
  • Kafka流程流转-服务端

    kafka分为客户端和服务端,通常我们知道broker是服务端,而生产者和消费者作为客户端。因此在服务端就必定需要解决并发和网络IO的问题。因此不可避免需要用到...

    路行的亚洲
  • IDC服务器的六大基础知识

    对企业用户而言,选择一个适合自身企业发展的IDC运营商是至关重要的。然而有不少用户却对服务器的种类不了解,也不清楚究竟什么样子的服务器更加适合自身企业。今天企商...

    企商在线
  • 常见反病毒进程/服务/识别总结

    服务名:GDScan(G Data扫描器)、AVKWCtl(G Data文件系统实时监控)、AntiVirusKit Client(G Data安全软件客户端)...

    贝塔安全实验室
  • Centos7搭建sftp服务流程

    注意:目前为止,sftp的主目录只有查看权限,只能实现下载、查看,并不能上传,删除,重命名

    砸漏
  • 微服务架构之服务冶理Dubbo-Netty流程

    服务引用时流程会走到DubboProtocol#refer方法,之前篇章中没有提及Netty环节,本节补上

    公众号_松华说
  • [ASP.NET Core 3框架揭秘]服务承载系统[6]: 承载服务启动流程[下篇]

    实际上HostBuilder对象并没有在实现的Build方法中调用构造函数来创建Host对象,该对象利用作为依赖注入容器的IServiceProvider对象创...

    蒋金楠
  • [ASP.NET Core 3框架揭秘]服务承载系统[5]: 承载服务启动流程[上篇]

    Host类型是对IHost接口的默认实现,它仅仅是定义在NuGet包“Microsoft.Extensions.Hosting”中的一个内部类型,由于我们在本节...

    蒋金楠
  • Tars服务端主流程梳理

    ==================================================

    awk
  • 服务器入侵排查流程

    1.查询可疑端口、进程、ip:netstat -antlp | more 或者 netstat -anltp | grep pid,若存在可疑进程可通过 ls ...

    常见_youmen
  • udp服务端收发数据流程

    skylark
  • 流媒体服务器搭建教程

    1.安装Nginx服务器 brew tap homebrew/nginx出现如下问题:

    马上就说
  • dubbo生产者暴露服务流程

    前面我们知道dubbo如果采用dubbo协议的话,此时会调用netty来启动服务。同时我们可以其在进行标签解析和注入到spring中。此时最为关键的是doExp...

    路行的亚洲
  • gRPC服务端启动流程走查

    小结: @1 构建监听地址SocketAddress @2 将service注册到缓存 @3 Server构建 @4 服务端启动

    瓜农老梁
  • 95-socket基础:TCP服务器流程

    凯茜的老爸
  • 99-简单的UDP服务器流程

    UDP是非面向连接的,不用listen、不用accept。 UDP不区分客户端,就算是同一客户端发来的多个数据包,udp服务器也不区分,与处理多个客户端发来的...

    凯茜的老爸
  • 腾讯云服务器购买流程

    腾讯云服务器购买流程是什么?怎么通过优惠的价格购买腾讯云服务器。下面详细介绍腾讯云服务器的购买流程。

    勤劳的小蜜蜂
  • Nacos14# 配置管理服务端流程

    在上文分析中客户端会有长轮询,不断轮询阻塞队列「listenExecutebell」去比较客户端和服务端配置内容md5是否一致,不一致则通知我们注册的Liste...

    瓜农老梁
  • 服务器租用一些流程是什么流程 服务器租用的价格什么样

    一直以来如果想要构建网站的话,那么就少不了服务器,服务器能够控制网站的后台,进行很好的搭建,不过很多人都不知道服务器。在租用时都需要哪些步骤?那么服务器租用一些...

    用户8715145

扫码关注云+社区

领取腾讯云代金券