diff --git a/Readme.MD b/Readme.MD index 23114d9e..9e18313d 100644 --- a/Readme.MD +++ b/Readme.MD @@ -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 diff --git a/Stardust/AppClient.cs b/Stardust/AppClient.cs index 06c0bf98..008c0890 100644 --- a/Stardust/AppClient.cs +++ b/Stardust/AppClient.cs @@ -214,6 +214,9 @@ public class AppClient : ClientBase, IRegistry { _publishServices.TryRemove(service.ServiceName, out _); + // 检查登录状态 + if (!Logined) return Task.FromResult(null); + return InvokeAsync("App/UnregisterService", service); }