- Mastering Microservices with Java 9(Second Edition)
- Sourabh Sharma
- 330字
- 2021-07-02 21:54:41
Evolution of microservices
Martin Fowler explains:
The term microservice was discussed at a workshop of software architects near Venice in May 2011 to describe what the participants saw as a common architectural style that many of them had been recently exploring. In May 2012, the same group decided on μServices as the most appropriate name.
Let's get some background on the way it has evolved over the years. Enterprise architecture evolved more from historic mainframe computing, through client-server architecture (two-tier to n-tier) to Service-Oriented Architecture (SOA).
The transformation from SOA to microservices is not a standard defined by an industry organization, but a practical approach practiced by many organizations. SOA eventually evolved to become microservices.
Adrian Cockcroft, a former Netflix Architect, describes it as:
Fine grain SOA. So microservice is SOA with emphasis on small ephemeral components.
Similarly, the following quote from Mike Gancarz, a member that designed the X Windows system, which defines one of the paramount precepts of Unix philosophy, suits the microservice paradigm as well:
Small is beautiful.
Microservices shares many common characteristics with SOA, such as the focus on services and how one service decouples from another. SOA evolved around monolithic application integration by exposing API that was mostly Simple Object Access Protocol (SOAP) based. Therefore, middleware such as Enterprise Service Bus (ESB) is very important for SOA. Microservices are less complex, and even though they may use the message bus it is only used for message transport and it does not contain any logic. It is simply based on smart endpoints.
Tony Pujals defined microservices beautifully:
In my mental model, I think of self-contained (as in containers) lightweight processes communicating over HTTP, created and deployed with relatively small effort and ceremony, providing narrowly-focused APIs to their consumers.
Though Tony only talks about the HTTP, event-driven microservices may use the different protocol for communication. You can make use of Kafka for implementing the event-driven microservices. Kafka uses the wire protocol, a binary protocol over TCP.
- LaTeX Cookbook
- Intel Galileo Essentials
- 觸·心:DT時(shí)代的大數(shù)據(jù)精準(zhǔn)營銷
- Visual C++數(shù)字圖像模式識(shí)別技術(shù)詳解
- Architecting the Industrial Internet
- 薛定宇教授大講堂(卷Ⅳ):MATLAB最優(yōu)化計(jì)算
- TypeScript圖形渲染實(shí)戰(zhàn):基于WebGL的3D架構(gòu)與實(shí)現(xiàn)
- The DevOps 2.4 Toolkit
- SSM輕量級框架應(yīng)用實(shí)戰(zhàn)
- C語言程序設(shè)計(jì)
- Corona SDK Mobile Game Development:Beginner's Guide(Second Edition)
- 現(xiàn)代C++編程實(shí)戰(zhàn):132個(gè)核心技巧示例(原書第2版)
- Apache Camel Developer's Cookbook
- 零基礎(chǔ)學(xué)C語言程序設(shè)計(jì)
- 代替VBA!用Python輕松實(shí)現(xiàn)Excel編程