Good Java programmer learning routes Share SpringCloud
First, the evolution of the Web application framework
with the development of the Internet, expanding the size of Web applications, Web application architectures are constantly evolved in four phases: a single application, vertical applications, distributed services, flow calculation
1. the single application architecture
when site traffic is small, only one application, all the features are deployed together to reduce the cost of deploying nodes and at this time the key issues: simplifying database operations, data access is the core ORM framework
applicable scene: small sites, management system, simple office system
Limitations:
1. poor scalability
2. Not easy to co-develop
3 is not conducive to upgrade maintenance
2. Vertical Application Architecture
When traffic is gradually increased, a single application (single) load too, may be added at this time to the server load balancing, response speed, i.e., set
group
However, when the server reaches a certain increase in data caused by the acceleration will become increasingly smaller, then simply adding servers have been unable to significantly improve the response speed
In this case, the system needs to be split into a plurality of unrelated business systems are deployed on a separate server to improve efficiency, to be referred to as vertical
with
At this crucial question: to accelerate the development of the front page MVC framework (MVVM)
Benefits: By splitting the project business, achieve operational independence and reduce the difficulty of development and maintenance, to facilitate collaborative development, improved scalability
Limitations: each vertical module has the same content (entity, dao, service, web), with a common resource can not be reused, and can not be separated from the business logic and interface
3. Distributed Services Architecture
as vertical applications more and more interaction between the application can not be avoided, some can not fully operational system into separate systems.
At this point, you can extract the core business appear as a separate service Service, gradually form a stable service center, the front-end applications to better adapt to changing market needs.
At this point the key issues: improving the use of services and the integration of distributed service framework RPC (Remote Procedure Call Remote Procedure Call)
4. flow computing architecture
as more and more service calls and dependencies between services are increasingly complex, the birth of a service-oriented architecture system listen (SOA: service
oriented architecture)
Assessment capacity, waste of resources and other small service problems began to appear, this time need to add a dispatch center, pressure-based access to real-time cluster management capacity, improve cluster utilization
At this point the key issues: resource scheduling and control center, using springCloud + zookeeper
two, RPC Introduction
1.RPC is what
RPC: Remote Procedure Call Remote Procedure Call is a communication between a process
that allows applications to call another on the network the method of application
for consumers in terms of service, without understanding the underlying details of the long-distance call, transparent
2. The implementation process
execution flow:
1. call request initiated by the client
2. The client stub request parameters (interfaces, methods, parameters, etc.) serialize (package)
3. The client sends a message to the server stub stub
4. The server stub received the message deserialized