MessageMVC中间件列表(持续增强中)

一 IFlowMiddleware

流程中间件

1 ConfigMiddleware

实现配置读取与更新流程,此中间件为系统支持组件,会在内部自动注册且不可访问。

2 ReConsumerMiddleware

实现重新消费未正确处理消息的中间件,Flow实现了重启后重新本地消费

配置
节点名称默认说明
ZeroAppEnableMessageReConsumerfalse启用消息存储与异常消息重新消费

3 KafkaProducer

Kafka消息发布对象,同时实现了IFlowMiddleware,以便全局初始化与析构Confluent.Kafka的IProducer对象,用于所有Kafka的消息发送。

4 CsRedisProducer

Redis生产者,同时实现了IFlowMiddleware,以便全局启动与关闭后台发送服务,内部通过信号触发后台发送,可以实现纯异步可靠发送。

5 ZeroMQ.Inporc.ZmqFlowMiddleware

在进程内通讯组件中实现ZMQ环境初始化与析构。

6 ZeroRpcFlow

实现ZeroRPC环境初始化与析构。内部实现了与ZeroCenter服务中心交互的相关细节。
可实现服务注册、服务发现、负载均衡等微服务功能。

7 ZeroPostProxy

实现ZeroRPC远程异步调用的细节。

7 AddInImporter

基于MEF实现插件功能,通过在程序集中实现可IAutoRegister接口并实现为从而实现能力自注册.


using System.ComponentModel.Composition;
using Agebull.Common.Ioc;
using Microsoft.Extensions.DependencyInjection;


namespace ZeroTeam.MessageMVC.AddIn
{

    /// <summary>
    ///   组件注册
    /// </summary>
    [Export(typeof(IAutoRegister))]
    [ExportMetadata("Symbol", '%')]
    public sealed class AutoRegister : IAutoRegister
    {
        /// <summary>
        /// 注册
        /// </summary>
        void IAutoRegister.AutoRegist(IServiceCollection service)
        {
            service.AddSingleton<ITester, HttpTester>();
        }
        /// <summary>
        /// 初始化
        /// </summary>
        void IAutoRegister.Initialize()
        {
            IocHelper.ServiceCollection.AddSingleton<Tester, HttpTester>();
        }
    }
}

二 IMessageMiddleware

消息处理中间件

1 GlobalContextMiddleware

GlobalContext上下文对象处理中间件,在API执行前准备GlobalContext.Current对象,以便后续使用。

ZeroApp.EnableGlobalContext必须配置为true,默认不启用

2 LoggerMiddleware

日志处理中间件,向标准日志记录器输出IO跟踪日志。

配置
节点名称默认说明
ZeroAppEnableLogRecorderfalse启用日志中间件
Loggingmonitorfalse是否开启日志跟踪模式
Logging.LogLevelDefault<=Information

3 MarkPointMiddleware

埋点发出中间件,在其它下层中间件执行结束后,向配置的MarkPointName服务发送消息内容。

配置
节点名称默认说明
ZeroAppEnableMarkPointfalse启用埋点中间件
ZeroAppMarkPointName埋点服务名称
MessagePoster[IMessagePoster名称]埋点服务名称与传输协议绑定配置,如系统有配置默认协议,也可以不设置,会通过默认协议发出

4 ReverseProxyMiddleware

反向代理中间件,通过查找消息投递对象表,向此服务发送请求并返回服务,从而实现反向代理,可用于实现网关等需求。
需要手动注册

IocHelper.AddSingleton<IMessageMiddleware, ReverseProxyMiddleware>();

5 StorageMiddleware

消息存储中间件,在消息处理前保存消息内容到文件,消息处理成功(即message.State == MessageState.Success)后删除文件

配置
节点名称默认说明
ZeroAppEnableMessageReConsumerfalse启用消息存储与异常消息重新消费

6 ApiExecuter

Api调用器,系统最重要中间件,没有之一。MVC功能的主要支持组件,实现Api路由,运行时调用API并返回结果。

仅ApiExecuter与ReverseProxyMiddleware会调用INetTransfer对象的OnMessageError与OnMessageResult触发消息处理结果网络返回.

7 WebSocketNotify

转发消息到WebSocket.

配置

节点名称默认说明
WebSocketFolders使用WebSocket的文件夹

Strat.cs

  1. 注册中间件
  2. WebSocketNotify.Binding 绑定与WebSocket的关联,内部会按文件夹名作为服务名称,通过构造IMessageConsumer向ZeroFlowControl注册消息接收服务
  3. 启动ZFlowControl,如此处的UseFlow
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
   Services.AddTransient<IMessageMiddleware, WebSocketNotify>();
    WebSocketNotify.Binding(app);
    Services.UseFlow();
}

三 IMessagePoster

消息投递器

对象网络格式说明
InporcProducerZMQ进程内采用ZMQ进程内通讯
HttpProducerHttp基于IHttpClientFactory实现
KafkaProducerKafka基于Kafka消息队列
CsRedisProducerRedis基于Redis的ZSet与PUBSUB实现高可用的简单队列
ZeroRPCPosterZMQ基于ZMQ的RPC实现

四 INetTransfer

网络传输对象

对象网络格式类型说明
HttpTransferHttpIRpcTransferHttp进站出站的处理类
KafkaConsumerKafkaIMessageConsumerKafka消息队列消费者
CSRedisConsumerRedisIMessageConsumer, INetEventRedisMQ消费者
InporcConsumerZMQIMessageConsumerZMQ进程内通讯消费端
ZeroRpcTransportZMQIRpcTransferZMQRpc消费端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值