前言 互联网时代,分布式应用和系统越来越多。 当我们使用.Net技术构建分布式系统时,我们需要使用一些组件或者辅助库来帮助我们提高生产力,解耦应用程序。 但放眼.Net圈子,这样能满足要求的组件并不多,也没有一个通用的抽象组件可以集成这些接口。 今天给大家介绍一个开源的组件库,也是来自团队的。 手,我们往下看。 目录 简介 缓存队列 锁定消息 工作任务 文件存储 指标日志 示例程序 源代码摘要 简介:它是一组插件式、松散耦合的程序库,用于构建分布式应用程序,来自团队。 同时支持 .NET 4.6 和 .NET Core。 我可以获得什么帮助? 如果您正在针对接口(抽象)构建程序,则可以轻松切换接口实现。 它具有友好的依赖注入。 还在使用.Net的朋友可以体验一下。 比Unity等具有操作更简单、界面更友好等特点。 使用cache可以更加方便,这帮助我们封装了很多缓存客户端的实现,比如,等等。
您不必自己构建或使用复杂且昂贵的消息总线。 很多时候,我们需要的只是一个可以在本地或云端运行的简单消息总线。 存储,现在您可以通过一致的接口轻松使用分布式存储,包括内存文件存储、文件夹文件存储、Azure 文件存储和 AWS S3 文件存储。 主要包括以下几个模块: Cache() Queue() Locks(锁) () Jobs(作业) File (文件)() Log() 这些组件以NuGet包的形式提供,方便我们使用。 下面,我们依次看一下各个组件的用途和用法。 缓存 缓存是一种以空间换时间的技术。 通过缓存可以快速获取一些数据。 Cache提供了一致的接口来方便地存储或读取缓存数据,并提供了4种不同的缓存客户端实现。 它们是: 1.:内存缓存的实现。 这个缓存的生命周期就是当前进程。 有一个属性可以设置最大缓存数据条数。
2.:具有相同的实现,但是该接口提供了可以使用的跨线程同步。 3.:Redis客户端的实现。 4. nt: 的混合实现,用于维护跨线程的内存缓存之间的同步。 注意:如果本地缓存项已经存在,调用Redis进行序列化和保存时可能会出现性能问题。 5.:传入和范围。 Scope可以设置一个字符串来制定缓存键前缀,可以方便地批量存储和删除。 示例: .;=nt();.("测试",1);=.("测试"); 队列提供先进先出的消息管道,提供接口,并有4个不同的队列完成。
1.:一个内存队列的实现,队列的生命周期是当前进程。 2.:Redis队列实现。 3.:基于Azure的服务消息队列实现。 4.:基于Azure的存储队列实现。 示例: .;=();.({Data="Hello"});var