Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what is the difference between distributed computing, microservice and parallel computing

My basic understanding for:

Distributed computing is a model of connected nodes -from hardware perspective they share only network connection- and communicate through messages. each node code be responsible for one part of the business logic as in ERP system there is a node for hr, node for accounting. communication could be HTML, SOA, RCP

Microservice is a service that is responsible for one part of the business logic and communicate with each other usually by http. microservices could share the hardware resources and are accessed by thier api.

Parallel systems are systems which optimize the use of resources. for example multithreaded app running on several thread where sharing memory resources.

I am a little bit confused since microservices are distributed systems, but when running multiple microservices on single hardware resources they are also parallel systems. Am i getting it right here:

like image 979
FarFarAway Avatar asked Dec 09 '16 19:12

FarFarAway


People also ask

What is the difference between parallel computing and distributed computing?

In parallel computing, all processors share the same memory and the processors communicate with each other with the help of this shared memory. Distributed computing systems, on the other hand, have their own memory and processors.

What is the difference between distributed and Microservices?

Are distributed systems the same as microservices? A microservices architecture is one type of distributed system, since it decomposes an application into separate components or “services”. For example, a microservice architecture may have services that correspond to business features (payments, users, products, etc.)

What is the difference between distributed computing and distributed systems?

Distributed systems consist of several components spread across different computers but operate as a single network. Distributed computing is defined as a system consisting of software components spread over different computers but running as a single entity.

What is distributed and parallel computing technologies?

In parallel computing, all processors may have access to a shared memory to exchange information between processors. In distributed computing, each processor has its own private memory (distributed memory). Information is exchanged by passing messages between the processors.


1 Answers

Micro services is one way to do distributed computing. There are many more distributed computing models like Map-Reduce and Bulk Synchronous Parallel.

However, as you pointed out, you don't need to use micro servers for a distributed system. You can put all your services on one machine. It's like using a screw driver to hammer a nail ;). Yeah, you'll have parallel computation on a single multi-core machine, but are micro services the right way to achieve it? They might be if you plan to move those services onto separate machines. However, if those services require co-location, then micro services was the wrong tool.

Distributed systems is one way to do parallel computing. There are many different ways to achieve parallel computation, like grid computing, multi-core machines, etc. Many of them are listed in the article I linked.

like image 96
joseph Avatar answered Oct 14 '22 20:10

joseph