权限聚合
This commit is contained in:
parent
0ce7e8ee70
commit
f7a95c3952
@ -60,11 +60,16 @@ https://github.com/radzenhq/radzen-blazor
|
|||||||
|
|
||||||
风格统一、易用性、可定制性、性能优化、文档完善、社区活跃、维护更新、商业授权等因素都会影响组件库的选择。
|
风格统一、易用性、可定制性、性能优化、文档完善、社区活跃、维护更新、商业授权等因素都会影响组件库的选择。
|
||||||
|
|
||||||
|
|
||||||
## 原型工具
|
## 原型工具
|
||||||
|
|
||||||
MasterGo 和 Figma 是两个常用的原型工具,可以用来设计和制作用户界面原型,提供了丰富的组件库和交互效果,可以帮助设计师快速制作用户界面原型。
|
MasterGo 和 Figma 是两个常用的原型工具,可以用来设计和制作用户界面原型,提供了丰富的组件库和交互效果,可以帮助设计师快速制作用户界面原型。
|
||||||
|
|
||||||
|
## 设计令牌
|
||||||
|
|
||||||
|
设计令牌(Design Tokens)是一种用于设计系统的可重用的设计元素,包括颜色、字体、间距、阴影等,可以帮助设计师和开发者快速设计和开发用户界面。设计令牌可以提高设计的一致性和可维护性,减少重复工作,提高工作效率。
|
||||||
|
|
||||||
|
https://zhuanlan.zhihu.com/p/499465845
|
||||||
|
|
||||||
|
|
||||||
## 互补色
|
## 互补色
|
||||||
|
|
||||||
|
59
notes/helloshop/gateway-aggregation.md
Normal file
59
notes/helloshop/gateway-aggregation.md
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# 网关聚合
|
||||||
|
|
||||||
|
使用网关可将多个单独请求聚合成一个请求。 当客户端必须向不同的后端系统发出多个调用来执行某项操作时,此模式非常有用。
|
||||||
|
|
||||||
|
|
||||||
|
## 上下文和问题
|
||||||
|
|
||||||
|
在某些情况下,客户端需要向多个后端系统发出多个请求。 例如,客户端可能需要从多个服务中检索数据,然后将这些数据聚合到一个响应中。 在这种情况下,客户端必须发出多个请求,这可能会导致性能问题。 此外,客户端还必须处理多个响应,这可能会导致复杂性问题。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 解决方案
|
||||||
|
|
||||||
|
使用网关减少客户端与服务之间的通信频率。 网关会接收客户端请求,将请求分派到不同的后端系统,然后聚合结果并将其返回给请求客户端。此模式可以减少应用程序向后端服务发出的请求数,并通过高延迟网络改进应用程序的性能。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 权限聚合
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public interface IPermissionService
|
||||||
|
{
|
||||||
|
Task<IReadOnlyList<PermissionGroupDefinitionResponse>> GetAllPermissionDefinitionsAsync(CancellationToken cancellationToken=default);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 重构用户和角色控制器
|
||||||
|
|
||||||
|
修改 UsersController 从 IdentityServiceDbContext 更改为 UserManager<User>
|
||||||
|
|
||||||
|
实现 RolesController 使用 RoleManager<Role>
|
||||||
|
|
||||||
|
UserCreateRequestValidator 从 IdentityServiceDbContext 更改为 UserManager<User>
|
||||||
|
|
||||||
|
|
||||||
|
## 远程权限检查 BUG 修复
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public async Task<IActionResult> CheckPermission(int roleId, string permissionName, string? resourceType = null, string? resourceId = null)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
|
||||||
|
- 网关不应在后端服务之间造成服务耦合。
|
||||||
|
|
||||||
|
- 网关应靠近后端服务,以尽量降低延迟。
|
||||||
|
- 网关服务可能会造成单一故障点。 请确保网关设计合理,符合应用程序的可用性要求。
|
||||||
|
- 网关可能造成瓶颈。 请确保网关可提供足够的性能来处理负载,并可根据预期的发展进行缩放。
|
||||||
|
- 对网关执行负载测试,确保不会对服务造成连锁故障。
|
||||||
|
- 使用隔舱、断路、重试和超时等技术实施弹性设计。
|
||||||
|
- 如果一个或多个服务调用花费的时间过长,那么超时并返回部分数据集是可以接受的。 请考虑应用程序处理这种情况的方式。
|
||||||
|
- 使用异步 I/O 来确保后端延迟不会导致应用程序中出现性能问题。
|
||||||
|
- 使用关联 ID 实施分布式跟踪,以跟踪每个调用。
|
||||||
|
- 监视请求指标和响应大小。
|
||||||
|
- 考虑返回缓存的数据(作为故障转移策略)来处理故障。
|
||||||
|
- 不要在网关中内置聚合,而应考虑将聚合服务放在网关后面。 请求聚合的资源要求可能与网关中其他服务不同,并可能影响网关的路由和卸载功能。
|
||||||
|
|
BIN
notes/helloshop/image.png
Normal file
BIN
notes/helloshop/image.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
Loading…
Reference in New Issue
Block a user