取消服务时,检查登录状态,避免注销后再次登录

This commit is contained in:
大石头 2025-07-11 02:35:31 +08:00
parent 242f5ea202
commit 56988d02a9
2 changed files with 16 additions and 37 deletions

View File

@ -39,51 +39,27 @@ Stardust 星尘,轻量级分布式服务框架!
![XCode](Doc/关系图.png)
### 设计概要
提供者P向星尘S注册自己拥有的10个服务接口消费者C也登入星尘S得到访问令牌T查找到某个接口刚好是P提供于是得到了P的服务地址然后C直连P并使用访问令牌T表明身份
## 快速拥有
```sequence{theme="simple"}
提供者->星尘: Key登录
note over 星尘: key/secret
提供者-->>星尘: 注册服务
使用NewLife组件的最简便方式是从Nuget引用例如在项目Nuget管理中搜索`NewLife.Stardust` 并引入。
消费者->星尘: Key登录
星尘-->消费者: 访问令牌Token
note left of 消费者: 向提供者验明身份
NewLife组件由社区共创20多年使用MIT开源协议**任何人可任意修改并再次发行**(无需声明来源)!许多企业基于此构建内部开发框架时,甚至可通过批量替换源码中所有`NewLife`字符串为贵公司名实现私有化定制。
消费者->星尘: 查询服务
星尘-->消费者: 服务所在提供者列表
团队始终秉承开放态度不仅支持VisualStudio最新正式版打开解决方案编译也兼容`dotnet build`命令行编译,项目文件摒弃复杂功能以追求简单易用,真正做到开箱即用。
消费者->提供者: Token令牌登录
提供者-->消费者: 登录成功
我们公开强命名证书`newlife.snk`以支持独自编译替换程序集。
提供者-->>星尘: 汇报状态
消费者->提供者: 请求服务
提供者-->消费者: 响应数据
命令行中运行以下命令快速体验NewLife组件
```
dotnet new install NewLife.Templates
dotnet new nconsole --name test
cd test
dotnet run
```
### ServiceMesh架构
Sidecar设计模式正在收到越来越多的关注和采用。作为Service Mesh的重要要素Sidecar模式对于构建高度高度可伸缩、有弹性、安全且可便于监控的微服务架构系统至关重要。它降低了与微服务架构相关的复杂性并提供了负载平衡、服务发现、流量管理、电路中断、遥测、故障注入等功能特性。
```sequence{theme="simple"}
消费者->本机代理: 初始化
本机代理->星尘: Key登录
星尘-->本机代理: 访问令牌Token
本机代理->星尘: 查询服务
星尘-->本机代理: 服务所在提供者列表
本机代理->提供者: Token令牌登录
提供者-->本机代理: 登录成功
本机代理-->>星尘: 汇报状态
消费者->本机代理: 请求服务
本机代理->提供者: 请求服务
提供者-->本机代理: 响应数据
本机代理-->消费者: 响应数据
```
## 新生命项目矩阵
各项目默认支持net9.0/netstandard2.1/netstandard2.0/net4.62/net4.5旧版2024.0801支持net4.0/net2.0

View File

@ -214,6 +214,9 @@ public class AppClient : ClientBase, IRegistry
{
_publishServices.TryRemove(service.ServiceName, out _);
// 检查登录状态
if (!Logined) return Task.FromResult<ServiceModel?>(null);
return InvokeAsync<ServiceModel>("App/UnregisterService", service);
}