Silky 微服务框架
基于 .NET 平台的高性能微服务开发框架,让微服务开发像本地调用一样简单
🚀 接口即服务
标注 [ServiceRoute] 的接口自动生成 HTTP WebAPI 与 RPC 端点,无需手写 Controller,约定优于配置
🔗 透明 RPC 调用
基于 DotNetty + Autofac 动态代理,依赖注入接口即可透明调用远程服务,与调用本地方法体验完全一致
🏗️ 多种主机类型
支持 Web 主机、通用主机、WebSocket 主机、网关主机,满足不同场景需求,一键切换
🗺️ 多注册中心
内置支持 Zookeeper、Nacos、Consul,切换注册中心只需修改一行配置,服务实例上下线实时感知
🛡️ 服务治理
开箱即用的负载均衡(轮询/随机/哈希)、熔断、重试、限流、服务降级,基于 Polly 实现
⚡ 缓存拦截
RPC 通信过程中通过分布式缓存拦截减少网络 IO,极大提升系统吞吐量,支持 Redis 缓存
🔄 TCC 分布式事务
框架级别的 TCC 事务支持,通过 AOP 拦截器 + Redis 日志保证跨服务数据最终一致性
🔍 全链路追踪
集成 SkyAPM 实现 HTTP / RPC / TCC / EFCore 全维度链路追踪,快速定位性能瓶颈
🌐 WebSocket 支持
内置 WebSocket 主机类型,支持服务端主动推送消息,通过网关代理与前端建立会话
📊 Dashboard 管理端
内置集群管理 Dashboard,可视化查看服务实例状态、CPU 使用率、服务条目配置等信息
📝 Swagger 在线文档
自动聚合所有微服务的 API 文档,网关侧统一展示,支持在线调试
🔌 高度可扩展
兼容完整 ASP.NET Core 中间件体系,可自由替换底层组件,无缝集成 EFCore、MassTransit、CAP 等
极简代码,快速构建微服务
只需 3 行配置,普通 .NET 应用即可变身具有服务注册、发现、RPC 通信能力的微服务:
// Program.cs
var hostBuilder = Host.CreateDefaultBuilder(args)
.ConfigureSilkyGeneralHostDefaults(); // 通用主机(仅 RPC)
await hostBuilder.Build().RunAsync();
定义服务接口,标注 [ServiceRoute],框架自动生成 WebAPI 和 RPC 端点:
[ServiceRoute]
public interface IGreetingAppService
{
Task<string> SayHelloAsync(string name);
}
其他微服务通过依赖注入直接调用,框架在运行时自动路由到目标服务实例:
public class OrderAppService : IOrderAppService
{
private readonly IGreetingAppService _greetingService; // 注入另一个微服务的接口
public OrderAppService(IGreetingAppService greetingService)
{
_greetingService = greetingService;
}
public async Task<string> CreateAsync(string customerName)
{
// 像调用本地方法一样,框架自动通过 RPC 路由到 Greeting 微服务
return await _greetingService.SayHelloAsync(customerName);
}
}
在线示例
- Hero 权限管理系统 — 基于 silky 构建的完整企业级权限管理系统,涵盖多租户、RBAC 权限、组织机构管理
加入我们
欢迎提交 Issue、PR 或加入 QQ 群参与讨论:934306776

