共同探索万物互联时代智慧办公升级之路
|
用户发起的登录请求首先由对外的 WEB 服务接受,然后 WEB 服务服务调用用户服务查询用户信息,然后比对用户密码。 也就是说我们的 WEB 应用需要实时依赖用户服务返回的用户信息,如果没有返回,这次登录将会失败。 假如这个场景我们用 MQ 代替, WEB 应用发送 MQ 消息之后,然后流程就结束了,此时 WEB 应用无法拿到用户信息。 所以说对于这种需要强依赖下游返回的场景,使用 MQ 将会带来以下不足:
MQ 场景
上游不关心下游结果的场景举个例子,在我们第三方支付系统中,每支付成功一笔,都需要计算手续费。 可以看到使用 MQ 之后,上下游通信就变成图上的这种方式。 这种跨进程的通信方式,我们还有一种常用的解决方案,使用 Dubbo 等这类 RPC 服务。 理论上使用 RPC 的跨进程通信的场景,使用 MQ 也能解决,当然反过来也能说通。 那为什么不都用 RPC,或者 MQ 来解决那? 这其实都是业务场景决定的,抛开业务场景来谈架构都是耍流氓!没有全能的架构,只要适合的架构。 下面我们来看看哪些场景适合 RPC,而哪些场景适合 MQ。 RPC 场景 使用 RPC 的场景一般都是上游服务需要实时依赖下游服务的返回。
我们以一个登录服务为例,架构图如下 2.1 AES算法中参数、符号和函数介绍 SubBytes( ):使用对每个状态矩阵中字节独立操作的非线性字节替换表(S-box)完成对状态矩阵中的密码转换。 ShiftRow( ):通过用不同的偏移量循环移动状态矩阵的最后三行来完成状态矩阵的密码转换。 Mixcolumns( ):列混淆,是加密过程中的转换步骤,它获取状态矩阵的所有列并混合它们的数据(彼此独立)以生成新列。 AddRoundKey( ):轮密钥加,在AES加密/解密的过程中,通过轮数据与轮密钥的异或,完成状态矩阵的构建时, 其中状态矩阵与轮密钥长度相等。 InvsubBytes( ):解密过程中的转换,即SubBytes( )的逆变换。 InvShiftRows( ):解密过程中的转换,即ShirtRows( )的逆变换。 InvMixColumns( ):解密过程中的转换,即MixColumns( )的逆变换。 RotWord( ):在轮密钥拓展过程中使用的函数,它接受一个四字节的字并执行循环排列。
Rcon [ ] : 轮常量,Rcon[j]为一个字,j为轮数,如表2.2所示:[7,14] (编辑:阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

