什么是NSQ消息的最大大小?

时间:2015-10-23 16:04:27

标签: nsq

我正在使用NSQ http://nsq.io/评估特定项目。我们的想法是设置一个数据管道,其中每个步骤都是一个作业,理想情况下状态将位于消息体中。

让我想到了潜在的最大邮件大小。我无法找到有关此主题的任何文档。可以是任何尺寸吗?我想如果消息大到不适合内存,它会影响性能。

2 个答案:

答案 0 :(得分:4)

正如Aldo所提到的,默认的最大邮件大小约为1兆字节。

使用NSQ守护程序的max-msg-size开关很容易改变。以下是如何使用它的示例:

private void Populate_DataGrin(int intMonth, string strLocation)
{
    dtSomeDataTable = OracleDBHelper.ExecuteDataSet2(UserConnName, CommandType.StoredProcedure
               , new OracleParameter("var_IntMonth", intMonth)
               , new OracleParameter("var_StrLocation", strLocation)
               , new OracleParameter
               {
                   ParameterName = "p_cursor"
                 ,
                   OracleDbType = OracleDbType.RefCursor
                 ,
                   Direction = ParameterDirection.Output
               }
             ).Tables[0];

    YourDataGrid.DataSource = null;
    YourDataGrid.DataSource = dtSomeDataTable;
    YourDataGrid.DataBind();
}

这告诉NSQ守护程序(nsqd --lookupd-tcp-address=127.0.0.1:4160 -max-msg-size=2097152 )最大邮件大小应该是2兆字节而不是默认值。

正如您在评论中提到的那样,使用此设置,您确实会收到一条可以填满内存的消息。

答案 1 :(得分:1)

据我在文档中可以看出,它看起来像it's 1MB by default

我知道这听起来很多,但我设法达到了这个极限。

我现在正在做的是发送一条NSQ消息,其中包含有关事件的最少数据,并在处理时获取另一端的完整数据。