Server design and implementation

I work in embedded systems and programming systems for hardware interfaces to meet. For pleasure and personal knowledge, I recently tried to learn more about server programming after my hands were wet with Erlang. I go back and think about servers from prospective C ++ / Java, and now I am wondering how scalable systems can be built using technologies such as C ++ or Java.

I read that due to context switching and limited memory, the thread handler for each client is not realistic. A thread pool is usually created, and a combination of workflows and asynchronous I / O is used to process requests. Interesting, first of all, how to determine the size of the thread pool? Do you just need to measure and find the best balance? In the end, when the system scales, it may take more than one server to process requests. How are requests managed through multilevel servers processing a large client base?

I'm just looking for some direction in which I could learn more and find answers to my questions. In which area of ​​computer science will I seek additional information in this area? Are there any design patterns for this area of ​​computing?

+3
source share
4 answers

for C ++. I used boost :: asio, it is very modern C ++, and quite interesting to work with. In addition, C ++ 0x network libraries will be based on the implementation of ASIO, so this is valuable knowledge.

1thread , , . , -, CoresX2, IO , . , Apache, MySQL Oracle, CoresX10 CoresX40 -, , , , , , , .

+1

, . , , - Thread, , , , - .

+3
+1

Lothar, ACE, - ++ . , ( ) .

++ - , ( ). , , .NET .

, , - SOA (Service Oriented Architecture) . ACE, .

+1
source

Source: https://habr.com/ru/post/1706628/


All Articles