A departure from Baidu's architect is how the evolution of the company's technology architecture

In the above system architecture, through a fixed IP Linux machine, using Tomcat server set up only for the PC Web services. In this single-service applications will be problems problems are: service instability  due to the need to upgrade the code each time to restart the service, there will cause the service to stop taking the case of small pieces of time. Server performance bottlenecks  due to the limited capacity of a single concurrent services (tomcat on concurrent processing line 600tps relatively high), and the business and database are deployed in a machine above, along with business development, server performance requirements will be increasingly high. Tuning JVM convenient  service logic processing, file IO operations are all concentrated in one application, for JAVA applications, in part due to the business application logic IO intensive, part intensive CPU, memory requirements are Variety. Is not convenient for the JVM parameters to tune this case, the number of thread pool is not easy to be a unified set. If the funds in the hands of enough to purchase more than a few servers, the use of cluster deployment services to be more stable, the use of architecture as follows:

u=3344009595,1759846766&fm=173&s=BD2870338E0BC00114E2E8DC0300C0B2&w=554&h=303&img.PNG

In this framework, by increasing the way Nginx reverse proxy, using Application Clusters way to solve the problem of stability of service, improve service by increasing the number of concurrent processing amount of the application server way through the application services, databases, file storage isolated to avoid competing application services and storage resources. But when a large number of access, modification request submitted by the database when a higher stand-alone database bottlenecks. For the solution of this problem can be handled by increasing the cache way.

u=364610317,2680063356&fm=173&s=B53060338612CE2124FAFCD80300C0B2&w=554&h=296&img.PNG

In this architecture, there is due to address a session to maintain Nginx by ip_hash or session-stic pressure on the entrance Nginx application of large parts of the query cache can not do business, and the query takes more resources database, file storage management is chaotic, architecture can be further adjusted as follows.

u=526625663,1694092836&fm=173&s=B510E4338E5AE4015EE8E8D80300D0B2&w=554&h=299&img.PNG

In this architecture, the application services to share Session caching service above, solving sessions on the main nginx main cluster deployment maintained. Separated by the library to read and write, to solve the problem of database single pressure point. By a separate file storage service, easy to manage files. With the clear separation of business development, business module. We need a platform to support the business, the core business, non-core business isolated, for different data traffic generated by isolation, the need for applications and databases were split vertically, to build a reliable, stable and distributed architecture.  In a distributed architecture for tiered architecture, service oriented, internal system simple (non-real system) architecture as follows:

u=1081505775,236013409&fm=173&s=AF42C412CC3875802552BDD90300C0BA&w=554&h=304&img.JPEG

Finally, as to enhance the technical capacity of these services can be of service capabilities, we can provide technical output outward (Imagine Ali cloud). For example, the underlying service caching services, MQ technology services and other basic services, by isolating mechanisms available to other companies; such as mutual gold industry packaging services for small decentralized ABS product in the field of services, can be provided as an asset capacity available to other financial institutions.


Guess you like

Origin blog.51cto.com/14528804/2434862