目录 服务的定义 服务条目 根据服务条目生成WebAPI 服务条目的治理特性 缓存拦截 服务条目的例子 服务的实现 开源地址 在线文档 服务的定义 服务接口是微服务定义服务的基本单位,定义的应用服务接口可以被其他微服务引用,其他微服务通过rpc框架与该微服务进行通信. 通过ServiceRouteAttribute特性对一个接口进行标识即可成为一个应用服务接口. 例如: [ServiceRoute] public interface ITestAppService { } 虽然我们通过使用[Se…
代理主机 silky微服务定义了三种类型的代理主机,开发者可以根据需要选择合适的silky代理主机托管微服务应用.代理主机定义了一个Startup模块,该模块给出了使用该种类型主机所必须依赖的模块. 通用代理主机 该类型的主机一般用于托管业务应用,服务内部之间通过rpc进行通信,不支持与微服务集群与外部进行通信,web代理主机可以通过引用该类型的微服务的应用接口,通过应用接口生成的代理与该微服务进行通信.该类型的微服务使用.net的通用主机进行托管引用.定义的Startup模块如下所示: [De…
目录 服务注册中心简介 服务元数据 主机名称(hostName) 服务列表(services) 终结点 时间戳 使用Zookeeper作为服务注册中心 使用Nacos作为服务注册中心 使用Consul作为服务注册中心 开源地址 在线文档 在线示例 服务注册中心简介 在分布式系统中,服务注册中心的作用是将部署服务实例的机器地址以及其它元数据记录到注册中心,服务消费者在有需求的时候,通过查询注册中心,输入提供的服务名,获取到地址,从而发起调用. 在微服务架构下,主要有三种角色:服务提供者(RPC S…
目录 服务治理的概念 服务注册与发现 负载均衡 超时 故障转移(失败重试) 熔断保护(断路器) 限流 RPC限流 HTTP限流 1. 添加配置 2. 注册服务 3.启用 AspNetCoreRateLimit 的 相关中间件,实现HTTP限流. 服务回退(服务降级) 在服务端实现回退方法 在消费端实现回退方法 链路跟踪 安全 缓存拦截 开源地址 在线文档 在线示例 服务治理的概念 服务治理是主要针对分布式服务框架.微服务,处理服务调用之间的关系,服务发布和发现(谁是提供者,谁是消费者,要注册到哪…
构建服务引擎 在注册Silky微服务应用一节中,我们了解到在ConfigureServices阶段,通过IServiceCollection的扩展方法AddSilkyServices<T>()除了注册必要的服务之外,更主要的是构建了服务引擎(IEngine). 下面,我们学习在IServiceCollection的扩展方法AddSilkyServices<T>()中完成了什么样的工作.如下所示的代码为在包 Silky.Core 的 ServiceCollectionExtensio…
模块的定义 Silky是一个包括多个nuget包构成的模块化的框架,每个模块将程序划分为一个个小的结构,在这个结构中有着自己的逻辑代码和自己的作用域,不会影响到其他的结构. 模块类 一般地,一个模块的定义是通过在该程序集内创建一个派生自 SilkyModule的类,如下所示: public class RpcModule : SilkyModule { } SilkyModule是一个抽象的类,它定义了模块的基础方法,体现了模块在框架中的作用; SilkyModule模块定义的核心代码如下所示:…
目录 主机的概念 通用主机 web主机 业务主机类型 使用web主机构建微服务应用 使用通用主机构建微服务应用 构建具有websocket能力的微服务应用 构建网关 开源地址 在线文档 主机的概念 silky的主机与.net的主机概念一致.是封装应用资源的对象,用于托管应用和管理应用的生命周期. 通用主机 如果用于托管普通的业务应用,该微服务模块本身并不需要对直接对集群外部提供访问入口.那么,您可以使用.net的通用主机注册silky服务框架..net的通用主机无法提供http请求,也无法配置h…
目录 模块的定义和类型 在模块中注册服务 通过ServiceCollection实现服务注册 通过ContainerBuilder实现服务注册 使用模块初始化任务 使用模块释放资源 模块的依赖关系 构建主机时指定启动模块 开源地址 在线文档 模块的定义和类型 在silky框架,模块是应用程序用于服务注册.初始化任务.释放资源的单位,被定义为一个程序集.模块具有依赖关系,通过DependsOn特性来确定模块之间的依赖关系. silky框架存在两种类型的模块: 开发者通过继承SilkyModule就…
DDD理论学习系列--案例及目录 1. 引言 单从字面理解,不管是领域服务还是应用服务,都是服务.而什么是服务?从SOA到微服务,它们所描述的服务都是一个宽泛的概念,我们可以理解为服务是行为的抽象.从前缀来看,根据DDD的经典分层架构,它们又隶属于不同的层,应用服务属于应用层,领域服务属于领域层. 应用层(Application):负责展现层与领域层之间的协调,协调业务对象来执行特定的应用程序任务.它不包含业务逻辑. 领域层(Domain):负责表达业务概念,业务状态信息以及业务规则,是业务软件…
应用服务&领域服务 DDD理论学习系列——案例及目录 1. 引言 单从字面理解,不管是领域服务还是应用服务,都是服务.而什么是服务?从SOA到微服务,它们所描述的服务都是一个宽泛的概念,我们可以理解为服务是行为的抽象.从前缀来看,根据DDD的经典分层架构,它们又隶属于不同的层,应用服务属于应用层,领域服务属于领域层. 应用层(Application):负责展现层与领域层之间的协调,协调业务对象来执行特定的应用程序任务.它不包含业务逻辑. 领域层(Domain):负责表达业务概念,业务状态信息以及…