官术网_书友最值得收藏!

Achieving High Performance

In traditional web application architecture, we deploy our application into multiple nodes and each node connects to a relational database to store data. The following diagram depicts the traditional system architecture; different clients (desktop, mobile, tabs, laptops, smart devices, and so on) are communicating with the system. There are multiple JVMs/nodes to handle the traffic (the load balancer is removed for brevity), but there is only one database instance to store data. DB operations are relatively slow as they interact with the file IO, so this architecture may create a bottleneck if the client requests come faster than the DB prepossessing rate. The database ensures data atomicity, consistency, transaction isolation, and durability, we just cannot run multiple DB instances or replace it:

Adding a new Apache Ignite in-memory data grid layer to the existing N-tier architecture can improve the performance of the system many times over. The in-memory cluster can sit between the JVMs and the database. The JVMs/nodes will interact with the Ignite in-memory grid instead of the database, since the CRUD operations will be performed in-memory the performance will be way faster than direct database CRUDs. Data consistency, atomicity, isolation, and durability, and the transactional nature of operations, will be maintained by the Ignite cluster.

This new architectural style reduces the transaction time and system response time by moving the data closer to the application:

In Chapter 2, Understanding the Topologies and Caching Strategies, we will explore how to write code to interact with an in-memory data grid and then sync up data with a relational database.

主站蜘蛛池模板: 东阳市| 怀化市| 巴塘县| 开化县| 无为县| 昔阳县| 岐山县| 沙湾县| 霍邱县| 潮州市| 潼关县| 北碚区| 大名县| 滁州市| 正宁县| 固始县| 吴堡县| 永定县| 三台县| 河北省| 信宜市| 东乡族自治县| 夏津县| 高邑县| 阿合奇县| 达拉特旗| 长葛市| 湘潭县| 诸城市| 郓城县| 绍兴县| 郑州市| 巴彦县| 安图县| 元氏县| 忻城县| 广水市| 沅陵县| 兴山县| 秦皇岛市| 旬阳县|