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常用组件及其作用