一、dubbo被阿里放棄原因
在阿里的技術棧中,Dubbo曾經是非常重要的一環, 但是隨着時代的變遷,Dubbo出現了一些問題。相較於Spring Cloud,Dubbo的文檔較為簡單,並沒有太多實踐的案例示範。而且,它的社區與Spring Cloud相比比較小,問題的解決速度也相對較慢。除此之外,阿里較早的將Dubbo推向開源社區,追求技術的成熟和穩定性,相較於開源社區的基礎設施構建,Dubbo大而全的特性也不再適應如今的快速迭代和微服務的發展。
二、阿里巴巴Druid連接池
在阿里對於連接池技術問題上,項目Druid連接池曾經是一個不錯的選擇。Druid連接池的知名度非常高,它是一款功能強大而且性能非常出色的Java數據庫連接池。Druid連接池的開發人員之一付亮說道:“相比於其他連接池,Druid在性能和穩定性方面一直佔據較高的位置。”Druid連接池提供了全面的監控和擴展方式,支持防篡改功能,並且由於其健壯的代碼和良好的擴展性能穩定可靠地工作,因此非常適合作為中小型Web應用程序使用的數據庫連接池。
三、阿里為什麼棄用Druid
然而,隨着大數據和雲計算的不斷普及,傳統的數據庫連接池技術已經不能滿足高性能、高可靠、高並發的需求,並且Druid連接池也逐漸走向了瓶頸。一個單獨的Druid連接池使用實例的負載不容易實現橫向擴展,這也是Druid連接池的一個巨大弱點。同時,Druid連接池的管理和配置也相對複雜,這使得在大規模生產部署時需要耗費很多時間和人力。此外,精益創業的思想也在某種程度上影響了阿里巴巴在技術和架構上的取捨,擁抱雲計算和輕量級的微服務架構被提上了日程。
因此,阿里選擇放棄Druid連接池,探索雲原生下的數據庫連接池限制,比如HikariCP連接池,它是一款純Java輕量型連接池庫,速度極快,能極大地提升應用程序性能,也更適合目前的微服務時代。
四、完整的代碼示例
//HikariCP連接池配置示例 package com.example; import javax.sql.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.zaxxer.hikari.HikariDataSource; @Configuration public class AppConfig { @Bean public DataSource dataSource() { HikariDataSource ds = new HikariDataSource(); ds.setJdbcUrl("jdbc:mysql://localhost:3306/spring_test"); ds.setUsername("root"); ds.setPassword("password"); ds.addDataSourceProperty("cachePrepStmts", "true"); ds.addDataSourceProperty("prepStmtCacheSize", "250"); ds.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); return ds; } }
通過以上示例可以看出,HikariCP連接池配置非常簡單,在Spring Boot中只需加入相關的依賴,再在配置文件中添加相關配置即可輕鬆實現HikariCP連接池的使用。相較於Druid連接池,HikariCP連接池的配置可控性更高,使用更加方便。在雲原生時代,越來越多的人開始選擇HikariCP連接池,它也成為了許多企業中微服務時代下的首選連接池庫。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/291269.html