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

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.

主站蜘蛛池模板: 天峻县| 马山县| 阳城县| 广平县| 英吉沙县| 尚义县| 呈贡县| 内黄县| 泊头市| 博罗县| 张家港市| 廊坊市| 南通市| 阳春市| 博湖县| 曲阜市| 波密县| 青田县| 灵璧县| 项城市| 鸡泽县| 吉木萨尔县| 武夷山市| 连城县| 土默特右旗| 商城县| 黄陵县| 普宁市| 清流县| 丘北县| 即墨市| 民乐县| 会东县| 舒城县| 会同县| 城固县| 宿州市| 灵宝市| 桐柏县| 黄龙县| 皮山县|