{"repo":"yileicn/Grpc.Extensions","free":true,"listed":false,"github":"https://github.com/yileicn/Grpc.Extensions","clone":"git clone https://github.com/yileicn/Grpc.Extensions.git","description":"Grpc扩展是一个基于gRPC的简单微服务框架","language":"C#","stars":35,"topics":["grpc","dashboard","consul","micorservice","dotnet","dotnetcore","csharp","polly","opentracing","grpc-codefirst"],"license":null,"category":"dashboards-admin","readme_excerpt":"Grpc.Extesions 一个基于gRPC的简单微服务框架 功能 - 服务注册和发现 - 默认使用Consul实现 - 实现IServiceDiscovery,IServiceRegister可扩展zk等 - 服务自动负载均衡 - 默认使用轮询实现,可切换随机算法 - 实现ILoadBalancer可扩展 - 服务容错 - 服务连接报错，自动切换节点重试3次 - 可在DashBoard上手动熔断 - 调用链跟踪 - 根据配制来启用Jaeger调用链跟踪 - 服务网关 - 使用Kong网关可实现服务的认证授权，协议转换(grpc转http)，服务路由，服务限流和熔断等 - 使用Ocelot网关也可实现上述功能 - 服务配制 - 使用Apollo配制中心 - Grpc DashBoard和监控 - Http远程调用,手动熔断,日志输出控制 - 服务报警，可监听日志事件实现错误和超时的钉钉报警 - 待实现服务统计数据和监控(目前使用日志查询来统计服务的调用次数和调用时长等) - 服务端中件间 - 性能监控[日志,分布式调用链],全局错误处理,手动熔断 - 实现ServerInterceptor可扩展 - 客户端中件间 - 性能监控[日志,分布式调用链],超时时间设置 - 实现ClientInterceptor可扩展 - Grpc ProtoFirst - 通过Proto生成代码和注释 - Grpc CodeFirst - 通过代码生成proto和注释给第三方语言使用(GrpcMethod自动注册) - 代码更干净且方便扩展，例如可以在ProtoMessage上打验证特性来统一处理验证逻辑等 - 更方便拆分GrpcService到多个类，而不是使用partial class NuGet Package 支持NetFramework4.6,NetCore2.1 - Grpc.Extensions 服务端 - Grpc.Extensions.Client 客户端 - Grpc.Extensions.Discovery 服务注册和发现 支持asp.netcore3.0 - Grpc.Extensions.AspNetCore 服务端 - Grpc.Extensions.Client 客户端 - Grpc.Extensions.Discovery 服务注册和发现 Documentation - Grpc ProtoFirst Demo - Grpc CodeFirst Demo 待完善 - 使用Polly实现重试，降级，熔断 依赖的技术栈 - dotnet standard 2.0 - gRPC - An RPC library and framework - gRPC-dotnet - gRPC for .NET - Protobuf-net - Protocol Buffers library for idiomatic .NET - Consul - Service Discovery and Configuration Made Easy - Polly - Polly is a .NET resilience and transient-fault-handling library - OpenTracing(Jaeger) - a Distributed Tracing System 感谢 感谢以下的项目,排名不分先后","default_branch":null,"files":null,"tree":[],"storefront":"/r/yileicn","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/yileicn/Grpc.Extensions/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}