服务状态与幂等性解析
1. 无状态服务
1.1 概念
从概念上讲,无状态服务是指在不同服务调用之间不维护任何状态的服务。服务调用结束后,为运行该服务而临时创建的所有局部变量和对象都会被丢弃。这里所说的是服务本身的数据,而非调用该服务的进程、应用程序,也不是服务所操作的后端系统的数据。当执行调用的服务实例(进程或线程)的所有数据在调用结束后被丢弃时,该服务即为无状态服务。换句话说,下一次服务调用使用相同或不同的服务线程或服务进程都无关紧要。
1.2 示例
- 银行账户服务 :例如,一个向银行账户添加资金并返回新余额的服务就是无状态服务。若初始余额为 100 美元,第一次调用添加 30 美元,返回新余额 130 美元;第二次调用再添加 30 美元,返回新余额 160 美元。这两次调用可以使用不同的服务线程或进程。
- 地址修改服务 :以下是一个修改两个不同后端地址的无状态服务的伪代码实现:
string changeAddress (newAddress)
{
oldAddress = backend_1.getAddress( );
status = backend_1.changeAddress(newAddress);
if (status == failure) {
return "couldn't modify address in backend 1";
}
status = backend
超级会员免费看
订阅专栏 解锁全文
1019

被折叠的 条评论
为什么被折叠?



