Сценарий: я отправляю пятьдесят тысяч сообщений в очередь с именем JUST.CN. И установка одного сообщения propertyString "myfilter = 'abc'" каждые 1000 сообщений. Теперь я создаю потребителя с тем же селектором для потребления сообщений. Однако скорость потребления очень низкая, особенно после 30000 сообщений. Я не могу изменить конфигурацию по умолчанию в activeMQ. Основной код ниже:
IDestination destination = SessionUtil.GetDestination(session, "JUST.CN");
IMessageProducer producer = session.CreateProducer(destination);
string msg = "Hello hello hello world!~~testing~Hello hello hello world!~~testing~";
for (int i = 0; i < 50000; i++)
{
ITextMessage message;
if (i % 1000 == 0)
{
message = session.CreateTextMessage(msg);
message.Properties.SetString("myfilter", "abc");
}
else
{
message = session.CreateTextMessage(msg);
}
producer.Send(message, MsgDeliveryMode.Persistent, MsgPriority.Normal, TimeSpan.MinValue);
}
Код потребителя:
IDestination destination = SessionUtil.GetDestination(session, "JUST.CN");
IMessageConsumer consumer = session.CreateConsumer(destination, "myfilter='abc'", false);
int count = 0;
DateTime dtstart = DateTime.Now;
for (int i = 0; i < 50; i++)
{
IMessage iMsg = consumer.Receive();
ITextMessage msg = (ITextMessage)iMsg;
Console.WriteLine(msg.Text);
count++;
}
DateTime dtend = DateTime.Now;
TimeSpan time = dtend - dtstart;
Console.WriteLine(time);
Console.WriteLine(count);
Есть ли какие-либо специальные настройки, которые мне нужно использовать для селекторов ActiveMQ? Заранее благодарим вас за любой вклад.