From 56988d02a9aae1fdef905a5aef6dc4ac9a1a6a1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=9F=B3=E5=A4=B4?= Date: Fri, 11 Jul 2025 02:35:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=9C=8D=E5=8A=A1=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=A3=80=E6=9F=A5=E7=99=BB=E5=BD=95=E7=8A=B6=E6=80=81?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E6=B3=A8=E9=94=80=E5=90=8E=E5=86=8D?= =?UTF-8?q?=E6=AC=A1=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.MD | 50 +++++++++++-------------------------------- Stardust/AppClient.cs | 3 +++ 2 files changed, 16 insertions(+), 37 deletions(-) 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); }