- Microservices with Clojure
- Anuj Kumar
- 314字
- 2021-06-30 19:24:37
Limitations
Although a monolithic architecture for the Helping Hands application fulfills the purpose, it has some inherent limitations. There is a high coupling of the components with the consumers and providers table. Any change in these two tables will affect almost all the components of the system and will require redeployment of the entire application.
The Helping Hands application also depends on two external services. Suppose one of these services shuts down or there is a requirement to move to a better service; the corresponding geolocation or alerting component will be changed and will result in the redeployment of all the instances of the application, even though there was no change in the core functionality and services of the application. This adds to the deployment overhead for simple changes as well.
Since the entire application is deployed as a single artifact, scaling an application scales all the components of the application equally. For example, to scale with incoming order and service lookup requests, the Registration Component is unnecessarily scaled with the order and service components. This also increases the load on the database that is handling all the incoming requests from the components. Often, requests from one component can affect the database performance for other components as well and reduce the performance of the entire application.
Another limitation of the current monolithic architecture of the Helping Hands application is its dependency on a single database technology. In practice, a fuzzy search for services using tags and lookup using geolocations can be supported better by databases such as Elasticsearch (https://www.elastic.co/products/elasticsearch) as compared to relational databases such as MySQL (https://www.mysql.com/). Relational databases are better suited for transactional operations such as creating service orders and maintaining user accounts. With the current architecture, there is only one database technology, and that affects the efficiency of the application and makes it less flexible.
- Hands-On Industrial Internet of Things
- 物聯(lián)網(wǎng)信息安全
- JBoss EAP6 High Availability
- 局域網(wǎng)組建、管理與維護(hù)項(xiàng)目教程(Windows Server 2003)
- 智慧城市中的移動(dòng)互聯(lián)網(wǎng)技術(shù)
- NB-IoT物聯(lián)網(wǎng)技術(shù)解析與案例詳解
- 區(qū)塊鏈輕松上手:原理、源碼、搭建與應(yīng)用
- 電力物聯(lián)網(wǎng)工程技術(shù)原理與應(yīng)用
- 物聯(lián)網(wǎng)通信技術(shù)
- 物聯(lián)網(wǎng)之霧:基于霧計(jì)算的智能硬件快速反應(yīng)與安全控制
- SAE原理與網(wǎng)絡(luò)規(guī)劃
- Implementing NetScaler VPX?
- 全聯(lián)網(wǎng)標(biāo)識(shí)服務(wù)
- Web用戶查詢?nèi)罩就诰蚺c應(yīng)用
- 現(xiàn)場(chǎng)綜合化網(wǎng)絡(luò)運(yùn)營(yíng)與維護(hù):運(yùn)營(yíng)商數(shù)字化轉(zhuǎn)型技術(shù)與實(shí)踐