0
点赞
收藏
分享

微信扫一扫

.NET 常用中间件

什么是中间件

简单讲,中间件就是非业务的技术类组件。

ORM

ORM,Object Relational Mapping(对象关系映射)。它的作用是在关系型数据库和实体对象之间做一个映射,简单的属性和方法操作,省去与复杂的SQL打交道。

  • EntityFramework:微软ORM
  • NHibernate: Hibernate的.NET实现
  • Mybatis.net:MyBatis的.NET实现
  • Dapper:轻量级ORM
  • SQLSugar:轻量级ORM
  • ServiceStack.OrmLite:Fast,Simple,Typed ORM for .NET
  • 开源ORM Group https://github.com/orm-group

任务调度

  • Quartz.NET:开源作业调度框架,适合做定时轮询数据库同步,定时邮件处理,定时数据处理等。 底层使用ScheduledThreadPoolExecutor实现,提供了更友好的且带上下文的API。
  • Timer、TimerTask
    • 提供简单调度功能
    • 缺点:单线程,性能不足;需要维护上下文;需要自己实现持久化;自己实现分布式;自己实现监控
  • ScheduledThreadPoolExecutor Timer的多线程版本

IOC

  • Ninject
  • Castle
  • Autofac
  • Unity
  • Sprint.NET
  • StructureMap
  • 反射实现,性能差

日志

  • NLog
  • Log4NET

通讯

  • Akka.net: 基于actor模型的高性能并发处理框架
  • Thrift:一种可伸缩的跨语言通讯框架
  • SuperSocket
  • Socket
  • FastSocket
  • DotNetty:Netty的.net实现

消息队列 MQ

业务消息队列是应用于业务的解耦和分离,应具备分布式,高可靠性,高性能,高实时性,高稳定性,高扩展性等特性。

  • RabbitMQ:微秒级
  • Redis.List
  • MSMQ
  • RocketMQ:毫秒级;十万级吞吐量;可用性高,分布式;消息几乎零丢失
  • Kafka:毫秒级;吞吐量高,十万级;可用性高,消息几乎零丢失
  • ActiveMQ:毫秒级;吞吐量万级,可用性高,有较低概率丢失
    中小型公司,技术挑战不高,RabbitMQ是不错的选择;大型公司,基础架构研发实力较强,RocketMQ是很好的选择;大数据领域的实时计算,日志采集等场景,用Kafka不错。

缓存

  • Redis
  • MemCache
    1 都是内存数据库,但是Redis有持久化
    2 Redis支持更多的数据类型

总线 ESB

  • NServiceBus:付费
  • MassTransit:开源
  • ESB.NET
  • Shuttle:开源
举报

相关推荐

0 条评论