微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

.net core常用组件及其作用

架构 aide_941 4℃

nginx:

反向代理,请求转发。将请求转发给绑定的不同服务器端口

 

consul:

服务注册与发现:将服务的地址,端口等信息在consul上注册,并告知请求这些信息

健康检查:定期检查,移除挂掉的服务。

 

网关gateway:

避免服务直接暴露给客户端,它启动中间商的作用。网关接收到请求之后,首先向Consul进行服务发现,找到服务列表与地址。

然后向底端的服务进行请求,获取数据,转发给客户端。

 

请求 -》nginx -》网关集群-》Consol集群

|

Service

Ocelot网关:

服务熔断、负载均衡、请求转发、限流、超时

 

IdentityServer4:

鉴权授权

 

Polly:

瞬时故障处理

 

skywalking:

追踪请求的流程路径,记录延迟

 

Apollo:

集中配置中心。将服务、网关等的配置进行集中管理。

 

elk/ExcepetionLess:

日志中心。集中管理日志(筛选、追踪)

 

docker/K8s

容器管理,将服务和环境进行快速复制,拷贝。

 

Jenkins:

帮助迭代发布,部署项目。项目管理

 

RabbitMQ:分布式事务

 

Redis/Mongodb:非关系型数据库

 

  • 任务调度
    • Quartz.NET:Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。Quartz.NET允 许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。
  • 日志记录
    • NLog
    • Log4Net
  • IOC
    • Ninject:轻量级ioc
    • Castle:
    • Autofac:
  • ORM:
    • Dapper:轻量级orm,Stackoverflow在使用(Dapper-Extensions),性能优越
    • Entity Framework:微软自家的ORM框架
    • NHibernate:Hibernate的.net实现
    • Mybatis.net:mybatis的.net实现
    • ServiceStack.OrmLite:
  • WPF
    • MvvmLight:轻量级mvvm框架
    • Prism:官方mvvm框架
  • 通讯
    • Akka.net:基于actor模型的高性能并发处理框架
    • Helios:(不再更新)
    • Thrift:一种可伸缩的跨语言(c#、C++、Java…)通讯服务框架
    • Supersocket:国产优秀通讯框架,
    • Fastsocket:另一个国产socket通讯框架
    • DotNetty:开源,netty的.net实现。Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持
  • 总线
    • NServiceBus:需要序列,不免费。NServiceBus 是一个用于构建企业级 .NET系统的开源通讯框架。它在消息发布/订阅支持、工作流集成和高度可扩展性等方面表现优异,因此是很多分布式系统基础平台的理想选择。,它能够帮助 开发人员在搭建企业.NET系统时避免很多典型的常见问题。同时,该框架也提供了一些可伸缩的关键特征,比如对发布/订阅的支持、集成的长时间工作流及深 入的扩展能力等。据作者说,其本意是为构建分布式应用软件创建一个理想的基础设施。
    • MassTransit:开源。Mass Transit是一个.NET平台上的用于构建松耦合应用程序的服务总线框架,这个服务总线支持YAGNI原则(YAGNI原则,就是通过重构提取公因式 当出现一次时,不分层,以后业务复杂了,马上抽象出一个层次来,分层是依赖倒置原则和模版方法模式的应用。)。通过一套严密的关注点,Mass Transit和应用程序之间的接触最小化和清晰的接口.
    • ESB.NET:开源的企业级服务总线,采用的协议是MS-PL。ESB.NET主要包含了MSMQ消息队列机制,SOAP消息收发,ROUTER服务路由,WCF,WSE消息扩展(消息加解密,压缩),还有WF工作流
    • Shuttle:开源。它为开发面向消息的事件驱动架构(EDA[1])系统提供了一种新方法
  • MQ
    • RabbitMQ:基于Erlang开发,是AMQP(高级消息队列协议)的标准实现,性能和可靠性非常不错,支持序列化和集群。
    • Redis.List:基于Redis的List实现(LPUSH,RPOP)

转载请注明:SuperIT » .net core常用组件及其作用

喜欢 (0)or分享 (0)