Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 330605
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T09:41:49+00:00 2026-05-12T09:41:49+00:00

Currently I’m developing a spatial data processing server. Here are requirements: Server must be

  • 0

Currently I’m developing a spatial data processing server.
Here are requirements:

  1. Server must be able to receive and handle about 150-200 small messages per sec(gps fix, some additional data).
  2. It must be scalable. For example to run on several machines and balance load itself(without nlb)

Currently I have tested this kind of architecture:

  1. Incoming messages service,responsible only for getting messages into (without msmqwcf binding)
  2. Message parser service. Gets messages from msmq, parses them and writes to db, also sends notification to next service(again with plain MSMQ interop). This one is able to work on several PCs
  3. Data publisher service. Contains small cache and responsible for getting requested data from db. Sends notifications to clients using TCP binding via wcf.

Also all services have methods for configuration and some other tasks which are called via WCF TCP binding.

Small performance tests shown that it works quite fast, but i wonder is this a best way to use those MSMQ and WCF together for this specific app. Or maybe someone can give me a direction where to look?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T09:41:49+00:00Added an answer on May 12, 2026 at 9:41 am

    I am not really sure of the specific question you have, seems like more of a general design question, but as I love MSMQ I’ll chime in here.

    MSMQ does have some drawbacks, specifically about load balancing transactional messages, but on whole its pretty awesome.

    However, none of your requirements mentioned any specific reason to use MSMQ: durability, recoverable messaging, disconnected clients, etc.. so I am assuming you have some of these requirements, but that they are not explicitly called out.

    Requirement #1 should be easy to meet/beat, especially if these are small messages and there is no apparent logic being performed on them (e.g. just vanilla inserts/updates) and MSMQ handles competing consumers very well.

    Requirement #2 unless your using transactional messaging with MSMQ, its not impossible to load balance MSMQ to enable scaling, but it has some caveats. How are you load balancing MSMQ? See How to Load-Balancing MSMQ: A Brief Discussion for some details if you don’t already have them.

    Barring potential snafu’s with load-balancing MSMQ, none of which are insurmountable, there is nothing wrong with this approach.

    Scaling MSMQ
    MSMQ scales very well vertically (same machine) and moderately horizontally (many machines). However, it is difficult to make MSMQ truly highly available, which may or may not be a concern. See the links already in this answer for thoughts on making it highly available.

    Scaling Vertically
    When scaling MSMQ vertically, there are many instances of the queue reader(s) running on a single machine, reading from a single queue. MSMQ handles this very well. All of our queue data is in a temporal store on the local machine.

    What happens if we lose the machine hosting the queue?
    Clients can send and messages will stack up in the outgoing queue of the client, but we can’t receive them until the server comes back up.

    What happens to the messages in the queue?
    Without the introduction of some sort of highly available backed disk subsystem they are likely gone. Even so, getting another queue ‘hooked up’ to that data file can be a challenge. In theory, you can get them back. In practice, its likely easier to resend the message from the edge system.

    Depending on transaction volumes, the queue may be empty the majority of the time so the risk of data loss needs to be weighed with the effort/cost of making it highly available.

    Scaling Horizontally
    When scaling MSMQ horizontally, there is an instance of a queue on each processing machine. Each machine may have [n] readers for that queue running on the machine receiving messages from the queue. All of our queue data is in temporal stores on several machines.

    You can use any of the methods described in the documentation for load-balancing MSMQ, however, my experience has almost always been with application load balancing, described as software load-balancing: the client has a list of available msmq end points to deliver to. Each server hosting the queue is subject to the same availability problems as the single queue.

    Also might want to check out Nine Tips to Enterprise-proof MSMQ for some additional MSMQ related information.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 169k
  • Answers 169k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Like this: int rowIndex = Grid.GetRow(myButton); RowDefinition rowDef = myGrid.RowDefinitions[rowIndex];… May 12, 2026 at 1:55 pm
  • Editorial Team
    Editorial Team added an answer There is a complete editor written in wxPython here: http://wiki.wxpython.org/WxHowtoSmallEditor… May 12, 2026 at 1:55 pm
  • Editorial Team
    Editorial Team added an answer Look in the IIS properties of the site and look… May 12, 2026 at 1:55 pm

Related Questions

I am currently running into a problem where an element is coming back from
I have a JSP page retrieving data and when single or double quotes are
Currently I'm doing some unit tests which are executed from bash. Unit tests are
Currently I know of only two ways to cache data (I use PHP but
Currently I use .Net WebBrowser.Document.Images() to do this. It requires the Webrowser to load

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.