实例介绍
Anno框架是一款专为微服务设计的开发框架,旨在帮助开发者快速构建高效、稳定的微服务应用。它支持grpc和thrift等多种RPC通信协议,使得服务间的调用更加高效灵活。Anno框架内置了服务发现、调用链追踪、任务调度、限流、事件总线等核心功能,全面覆盖了微服务开发过程中的关键环节。
通过插件化的开发方式,Anno框架使得功能模块化、服务化成为可能,极大地提升了开发效率和服务的可维护性。无论是.net core、.net framework还是java项目,都能轻松接入Anno框架,享受到分布式微服务带来的便利。
在服务治理方面,Anno框架提供了注册中心AnnoCenter,负责服务的注册与发现,健康检查等功能,确保了服务的高可用性。同时,通过负载均衡、失败重试等机制,进一步增强了服务的稳定性。
Anno框架的使用不仅限于构建新的微服务应用,对于已有的系统也能实现平滑过渡和快速整合。
【实例截图】
【核心代码】
文件清单
└── Anno.Core-15113fbfbd889d6bdf54ba7f2826e8a8f83a4508
├── Anno.Core.sln
├── Directory.Build.props
├── key.snk
├── LICENSE
├── logo.png
├── README.md
├── samples
│ ├── Grpc
│ │ ├── AnnoCenter
│ │ │ ├── AnnoCenter.bat
│ │ │ ├── AnnoCenter.csproj
│ │ │ ├── Anno.config
│ │ │ ├── ddcenter.sh
│ │ │ └── Program.cs
│ │ ├── annoCenter.bat
│ │ ├── annoCenterRelease.bat
│ │ ├── AnnoService
│ │ │ ├── Anno.config
│ │ │ ├── AnnoService.bat
│ │ │ ├── AnnoService.csproj
│ │ │ ├── ddservice.sh
│ │ │ ├── Packages
│ │ │ │ ├── Anno.Plugs.SerialRule
│ │ │ │ │ └── Plugs插件使用说明.txt
│ │ │ │ └── Plugs插件使用说明.txt
│ │ │ └── Program.cs
│ │ ├── annoService.bat
│ │ ├── annoServiceRelease.bat
│ │ └── Cocas
│ │ ├── Anno.config
│ │ ├── Cocas.bat
│ │ ├── Cocas.config
│ │ ├── Cocas.csproj
│ │ └── Program.cs
│ ├── Packages
│ │ ├── Anno.Plugs.DLockService
│ │ │ ├── Anno.Plugs.DLockService.csproj
│ │ │ ├── DLockBootstrap.cs
│ │ │ ├── DLockCenter.cs
│ │ │ ├── DLockModule.cs
│ │ │ ├── LockerQueue.cs
│ │ │ ├── LockInfo.cs
│ │ │ └── ProcessType.cs
│ │ ├── Anno.Plugs.HelloWorldService
│ │ │ ├── AnnoFile.cs
│ │ │ ├── Anno.Plugs.HelloWorldService.csproj
│ │ │ ├── Filters
│ │ │ │ └── Authorization.cs
│ │ │ ├── HelloWorldBootStrap.cs
│ │ │ ├── HelloWorldTaskModule.cs
│ │ │ └── HelloWorldViperModule.cs
│ │ ├── Anno.Plugs.SoEasyService
│ │ │ ├── Anno.Plugs.SoEasyService.csproj
│ │ │ ├── AnnoSoEasyModule.cs
│ │ │ └── SoEasyBootStrap.cs
│ │ ├── Anno.Plugs.TraceService
│ │ │ ├── Anno.Plugs.TraceService.csproj
│ │ │ └── TraceModule.cs
│ │ ├── HelloWorldDto
│ │ │ ├── HelloWorldDto.csproj
│ │ │ └── ProductDto.cs
│ │ ├── Jky.Web.Core.ModelManageService
│ │ │ ├── JkyBootStrap.cs
│ │ │ ├── Jky.Web.Core.ModelManageService.csproj
│ │ │ └── SayHiModule.cs
│ │ └── SoEasy.Application
│ │ ├── AppBootstrap.cs
│ │ ├── Po
│ │ │ └── UserEntity.cs
│ │ ├── Repositories
│ │ │ ├── BaseRepository.cs
│ │ │ ├── IBaseRepository.cs
│ │ │ └── UserRepository.cs
│ │ ├── SoEasy.Application.csproj
│ │ └── UserModule.cs
│ └── Thrift
│ ├── AnnoCenter
│ │ ├── AnnoCenter.bat
│ │ ├── AnnoCenter.csproj
│ │ ├── Anno.config
│ │ ├── ddcenter.sh
│ │ └── Program.cs
│ ├── annoCenter.bat
│ ├── annoCenterRelease.bat
│ ├── AnnoService
│ │ ├── Anno.config
│ │ ├── AnnoService.bat
│ │ ├── AnnoService.csproj
│ │ ├── ddservice.sh
│ │ ├── Packages
│ │ │ ├── Anno.Plugs.SerialRule
│ │ │ │ └── Plugs插件使用说明.txt
│ │ │ └── Plugs插件使用说明.txt
│ │ └── Program.cs
│ ├── annoService.bat
│ ├── annoServiceRelease.bat
│ └── Cocas
│ ├── Anno.config
│ ├── Cocas.bat
│ ├── Cocas.config
│ ├── Cocas.csproj
│ └── Program.cs
├── src
│ ├── Anno.Const
│ │ ├── Anno.Const.csproj
│ │ ├── AppSettings.cs
│ │ ├── Attribute
│ │ │ └── AnnoInfoAttribute.cs
│ │ ├── Enum
│ │ │ └── Eng.cs
│ │ ├── Extensions
│ │ │ ├── AnnoContext.cs
│ │ │ └── TaskExtensions.cs
│ │ ├── MongoConfigure.cs
│ │ ├── RedisConfigure.cs
│ │ └── SettingService.cs
│ ├── Anno.CronNET
│ │ ├── Anno.CronNET.csproj
│ │ ├── CronDaemon.cs
│ │ ├── CronJob.cs
│ │ └── CronSchedule.cs
│ ├── Anno.EngineData
│ │ ├── ActionResult.cs
│ │ ├── AnnoBootstrap.cs
│ │ ├── Anno.EngineData.csproj
│ │ ├── AnnoInvokeEngineException.cs
│ │ ├── Attribute
│ │ │ ├── DependsOnAttribute.cs
│ │ │ └── FromBodyAttribute.cs
│ │ ├── BaseModule.cs
│ │ ├── Cache
│ │ │ ├── CacheMiddlewareAttribute.cs
│ │ │ └── ICacheMiddleware.cs
│ │ ├── DLock.cs
│ │ ├── DLockException.cs
│ │ ├── Engine.cs
│ │ ├── ExpressionAnalysis.cs
│ │ ├── Filters
│ │ │ ├── ActionFilterAttribute.cs
│ │ │ ├── AuthorizationFilterAttribute.cs
│ │ │ ├── ExceptionFilterAttribute.cs
│ │ │ ├── IActionFilter.cs
│ │ │ ├── IAuthorizationFilter.cs
│ │ │ ├── IExceptionFilter.cs
│ │ │ └── IFilterMetadata.cs
│ │ ├── InvokeEngine.cs
│ │ ├── IPlugsConfigurationBootstrap.cs
│ │ ├── IRpcConnector.cs
│ │ ├── Routing
│ │ │ ├── RoutInfo.cs
│ │ │ └── Routing.cs
│ │ ├── SysInfo
│ │ │ ├── AnnoDrives.cs
│ │ │ ├── MemoryMetricsClient.cs
│ │ │ ├── MemoryMetrics.cs
│ │ │ ├── RunTimeWatch.cs
│ │ │ └── UseSysInfoWatch.cs
│ │ └── ValidatetionExtension.cs
│ ├── Anno.Loader
│ │ ├── Anno.Loader.csproj
│ │ ├── AutofacModule.cs
│ │ ├── IocFilter.cs
│ │ ├── IocLoader.cs
│ │ ├── NotInInjectAttribute.cs
│ │ ├── ScopedAttribute.cs
│ │ ├── ServiceCollectionExtensions.cs
│ │ ├── SingletonAttribute.cs
│ │ └── TransientAttribute.cs
│ ├── Anno.Log
│ │ ├── Anno.Log.csproj
│ │ ├── Internal
│ │ │ └── JudgeIsDebug.cs
│ │ ├── Log.cs
│ │ └── LogDataInfo.cs
│ └── Core
│ ├── Anno.Rpc.Center
│ │ ├── Adapter
│ │ │ ├── AnnoMicroManagementStorageAdapter.cs
│ │ │ ├── ApiDocStorageAdapter.cs
│ │ │ ├── BaseAdapter.cs
│ │ │ └── KvStorageAdapter.cs
│ │ ├── Anno.Rpc.Center.csproj
│ │ ├── Bootstrap.cs
│ │ ├── BusinessImpl.cs
│ │ ├── Distribute.cs
│ │ ├── EventNotice.cs
│ │ ├── Monitor.cs
│ │ ├── Storage
│ │ │ └── AnnoDataBase.cs
│ │ └── ThriftConfig.cs
│ ├── Anno.Rpc.Client
│ │ ├── Anno.Rpc.Client.csproj
│ │ ├── ConnectionPoolConfiguration.cs
│ │ ├── Connector.cs
│ │ ├── DefaultConfigManager.cs
│ │ ├── Iface
│ │ │ ├── gen-csharp
│ │ │ │ └── Anno
│ │ │ │ └── Rpc
│ │ │ │ ├── BrokerCenter.cs
│ │ │ │ ├── BrokerService.cs
│ │ │ │ └── Micro.cs
│ │ │ ├── gen-netstd
│ │ │ │ ├── BrokerCenter.cs
│ │ │ │ ├── BrokerService.cs
│ │ │ │ └── Micro.cs
│ │ │ ├── IBroker.thrift
│ │ │ ├── ILB.thrift
│ │ │ ├── thrift.exe
│ │ │ ├── 命令:thrift -gen csharp IBroker.thrift
│ │ │ └── 命令:thrift -gen netstd IBroker.thrift
│ │ ├── IInputDto.cs
│ │ ├── InputDtoBase.cs
│ │ ├── MicroCache.cs
│ │ ├── Register.cs
│ │ ├── Request.cs
│ │ ├── Rpc
│ │ │ ├── BrokerCenter.cs
│ │ │ ├── BrokerService.cs
│ │ │ └── Micro.cs
│ │ ├── ServiceConfig.cs
│ │ ├── ServiceTransportPool.cs
│ │ ├── Storage
│ │ │ ├── AnnoData.cs
│ │ │ ├── AnnoDataResult.cs
│ │ │ ├── AnnoKV.cs
│ │ │ ├── CONST.cs
│ │ │ ├── KvStorageEngine.cs
│ │ │ ├── StorageCommand.cs
│ │ │ └── StorageEngine.cs
│ │ ├── StringHashCode.cs
│ │ ├── Thrift
│ │ │ ├── Collections
│ │ │ │ ├── TCollections.cs
│ │ │ │ └── THashSet.cs
│ │ │ ├── Protocol
│ │ │ │ ├── TAbstractBase.cs
│ │ │ │ ├── TBase64Utils.cs
│ │ │ │ ├── TBase.cs
│ │ │ │ ├── TBinaryProtocol.cs
│ │ │ │ ├── TCompactProtocol.cs
│ │ │ │ ├── TField.cs
│ │ │ │ ├── TJSONProtocol.cs
│ │ │ │ ├── TList.cs
│ │ │ │ ├── TMap.cs
│ │ │ │ ├── TMessage.cs
│ │ │ │ ├── TMessageType.cs
│ │ │ │ ├── TMultiplexedProcessor.cs
│ │ │ │ ├── TMultiplexedProtocol.cs
│ │ │ │ ├── TProtocol.cs
│ │ │ │ ├── TProtocolDecorator.cs
│ │ │ │ ├── TProtocolException.cs
│ │ │ │ ├── TProtocolFactory.cs
│ │ │ │ ├── TProtocolUtil.cs
│ │ │ │ ├── TSet.cs
│ │ │ │ ├── TStruct.cs
│ │ │ │ └── TType.cs
│ │ │ ├── Server
│ │ │ │ ├── TServer.cs
│ │ │ │ ├── TServerEventHandler.cs
│ │ │ │ ├── TSimpleServer.cs
│ │ │ │ ├── TThreadedServer.cs
│ │ │ │ └── TThreadPoolServer.cs
│ │ │ ├── TApplicationException.cs
│ │ │ ├── TAsyncProcessor.cs
│ │ │ ├── TControllingHandler.cs
│ │ │ ├── TException.cs
│ │ │ ├── TProcessor.cs
│ │ │ ├── TProcessorFactory.cs
│ │ │ ├── TPrototypeProcessorFactory.cs
│ │ │ ├── Transport
│ │ │ │ ├── TBufferedTransport.cs
│ │ │ │ ├── TFramedTransport.cs
│ │ │ │ ├── THttpClient.cs
│ │ │ │ ├── TMemoryBuffer.cs
│ │ │ │ ├── TNamedPipeClientTransport.cs
│ │ │ │ ├── TServerSocket.cs
│ │ │ │ ├── TServerTransport.cs
│ │ │ │ ├── TSocket.cs
│ │ │ │ ├── TSocketVersionizer.cs
│ │ │ │ ├── TStreamTransport.cs
│ │ │ │ ├── TTLSServerSocket.cs
│ │ │ │ ├── TTLSSocket.cs
│ │ │ │ ├── TTransport.cs
│ │ │ │ ├── TTransportException.cs
│ │ │ │ └── TTransportFactory.cs
│ │ │ └── TSingletonProcessorFactory.cs
│ │ ├── ThriftException.cs
│ │ ├── ThriftFactory.cs
│ │ └── TransmitTrace.cs
│ ├── Anno.Rpc.Server
│ │ ├── Anno.Rpc.Server.csproj
│ │ ├── ArgsValue.cs
│ │ ├── Bootstrap.cs
│ │ ├── BusinessImpl.cs
│ │ ├── RpcConnectorImpl.cs
│ │ └── Server.cs
│ └── Grpc
│ ├── Anno.Rpc.Center
│ │ ├── Anno.Rpc.CenterGrpc.csproj
│ │ ├── Bootstrap.cs
│ │ ├── BusinessImpl.cs
│ │ ├── Distribute.cs
│ │ ├── Monitor.cs
│ │ └── ThriftConfig.cs
│ ├── Anno.Rpc.Client
│ │ ├── Anno.Rpc.ClientGrpc.csproj
│ │ ├── ConnectionPoolConfiguration.cs
│ │ ├── Connector.cs
│ │ ├── DefaultConfigManager.cs
│ │ ├── GrpcException.cs
│ │ ├── GrpcExtensions.cs
│ │ ├── GrpcFactory.cs
│ │ ├── Iface
│ │ │ ├── Broker.cs
│ │ │ ├── BrokerGrpc.cs
│ │ │ ├── Broker.proto
│ │ │ ├── empty.proto
│ │ │ ├── grpc_csharp_plugin.exe
│ │ │ ├── protoc.exe
│ │ │ └── Protocol.bat
│ │ ├── IInputDto.cs
│ │ ├── InputDtoBase.cs
│ │ ├── MicroCache.cs
│ │ ├── Register.cs
│ │ ├── Request.cs
│ │ ├── Rpc
│ │ │ ├── Broker.cs
│ │ │ └── BrokerGrpc.cs
│ │ ├── ServiceConfig.cs
│ │ ├── ServiceTransportPool.cs
│ │ ├── Storage
│ │ │ ├── KvStorageEngine.cs
│ │ │ └── StorageEngine.cs
│ │ └── TransmitTrace.cs
│ └── Anno.Rpc.Server
│ ├── Anno.Rpc.ServerGrpc.csproj
│ ├── ArgsValue.cs
│ ├── Bootstrap.cs
│ ├── BusinessImpl.cs
│ ├── RpcConnectorImpl.cs
│ └── Server.cs
└── test
├── Anno.Test
│ ├── Anno.Test.csproj
│ ├── CronScheduleTests.cs
│ ├── NUnitTest.cs
│ ├── PropertyMerge.cs
│ └── ServiceCallService.cs
├── annoTest.bat
├── annoTestRelease.bat
├── ConsoleGrpcTest
│ ├── ConsoleGrpcTest.csproj
│ ├── Handle
│ │ └── GrpcTest.cs
│ └── Program.cs
└── ConsoleTest
├── Anno.config
├── AttributeVerificationTest.cs
├── BenchmarkDotNetRpc.cs
├── CircuitBreakerDemo.cs
├── ConsoleTest.csproj
├── CronNetTest.cs
├── DLockTest.cs
├── ExpressionAnalysisTest.cs
├── GrpcTest.cs
├── LogTest.cs
├── MqTest
│ ├── Notice.cs
│ ├── NoticeHandler.cs
│ ├── TT.cs
│ └── TTHandler.cs
├── Program.cs
├── RabbitMqTest.cs
├── RateLimitTest.cs
├── RpcStorage.cs
├── RpcTest.cs
├── TimeOutDemo.cs
└── UseSysInfoWatchTest.cs
71 directories, 309 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论