- Not only will a change to one component in the system not ripple across the entire system, but component interaction is also dramatically simplified.
I truly doubt it. It may be true for component interaction per se, but not for system architecture design.
Loosely coupling and asynchronous communication approach add a lot of complexity into architecture design. At least, it is very much against the traditional way of designing the system, so that system architects need to learn how to design the system using Message Queuing approach, instead of using direct communication approaches.
- EDA
- Instead of using a synchronous scheme for component interaction (where one method calls another and the caller waits for a response from the callee), components utilize asynchronous communications (where they simply send a message without waiting
for a response—also known as fire-and-forget ). Such loose coupling throughout a system can lead to what’s known as an event-driven architecture (EDA). - Event-driven architecture - Wikipedia, the free encyclopedia
First of all, system architects from old schools with a bunch of developers from ancient would probably design a system in a synchronous scheme for component interaction with Message Queuing support. That’s not EDA at all.
On the other hand, EDA is one of the essential architecture skills you must have before you can fully make use of Message Queuing.
- The decoupled, asynchronous style of architecture described in the previous point allows the broker itself to scale much further and handle considerably more clients via tuning, additional memory allocation, and so on (known as vertical scalability) instead of only relying upon the ability of the number of broker nodes to be increased to handle many more clients (known as horizontal scalability).
Scalability - Wikipedia, the free encyclopedia
- Horizontal Scaling
- Scale horizontally (scale out)
- To scale horizontally (or scale out) means to add more nodes to a system, such as adding a new computer to a distributed software application.
- Brokers are distributed software components/nodes. Adding a broker is a kind of scaling out or horizontal scaling.
- Vertical Scaling
- Scale vertically (scale up)
- To scale vertically (or scale up) means to add resources to a single node in a system, typically involving the addition of CPUs or memory to a single computer.
- Such vertical scaling of existing systems also enables them to use virtualization technology more effectively, as it provides more resources for the hosted set of operating system and application modules to share.
- So adding memory is a kind of vertical scaling.
- When doing system tuning by adding more memory or more CPUs or more CPU cores, we are doing vertical scaling.
No comments:
Post a Comment