阿里为什么放弃Druid连接池?

一、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/n/291269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-24 13:14
下一篇 2024-12-24 13:14

相关推荐

  • 阿里云邮箱主机名

    阿里云邮箱主机名是指在阿里云购买并绑定域名后,为邮件服务配置的一个记录类型。在这篇文章中,我们将从多个方面对阿里云邮箱主机名进行详细阐述,帮助您更好地了解它的作用、使用方法和注意事…

    编程 2025-04-27
  • 阿里Python技术手册

    本文将从多个方面对阿里Python技术手册进行详细阐述,包括规范、大数据、Web应用、安全和调试等方面。 一、规范 Python的编写规范对于代码的可读性和可维护性有很大的影响。阿…

    编程 2025-04-27
  • 阿里云Grass使用指南

    本文将为大家详细介绍阿里云Grass平台,包括核心概念、使用场景、基本操作、高级特性等内容,帮助大家全面掌握Grass的使用。 一、核心概念 Grass是阿里云开发的一款全新PAA…

    编程 2025-04-27
  • Maven配置阿里云镜像详解

    Maven是一个基于项目对象模型(POM)的构建工具,用于管理Java项目的构建、依赖和发布。在使用Maven下载依赖库时,原始仓库服务器可能因为网络原因导致下载速度缓慢或者失败。…

    编程 2025-04-25
  • 深入理解Druid数据库连接池配置

    一、数据源配置 首先,我们需要在代码中配置数据源。Druid支持配置不同类型的数据源,如下所示: @Bean public DataSource druidDataSource()…

    编程 2025-04-24
  • 阿里镜像库:解决开发和运维中的痛点

    阿里镜像库是一种镜像服务,旨在解决开发和运维中的痛点,提供了稳定高效的镜像服务。它是由阿里云推出的,为用户提供了一个全面的基础设施和应用部署工具。 一、方便快捷的镜像服务 阿里镜像…

    编程 2025-04-24
  • 阿里百秀介绍及开发实现

    一、什么是阿里百秀 阿里百秀是一个内容分享社区,用户可以发布自己的文章、图片和视频等内容,其宗旨是让每个人都可以分享自己的知识和经验。 阿里百秀提供了优雅的排版和多种丰富的内容展示…

    编程 2025-04-24
  • 阿里云实名认证全面解析

    一、什么是阿里云实名认证? 阿里云实名认证是指通过正规渠道提供个人或企业信息,以确保其真实有效性,并为其提供云服务的行为。在阿里云的使用中,实名认证是一个非常重要的流程,它能够保障…

    编程 2025-04-23
  • 阿里编码规范详解

    一、阿里编码规范精简版 如果你只是初学者或者有严格的时间限制,可以使用阿里编码规范的精简版。这个简化版是针对 Java 开发者的,它包含了大部分基础的规范和原则。主要包括: 命名规…

    编程 2025-04-23
  • MongoDB连接池详解

    MongoDB连接池是一个重要的组件,可以优化MongoDB的访问性能和资源利用率。在本文中,我们从多个方面探讨MongoDB连接池的配置、错误、模式、大小、参数设置和代码实现步骤…

    编程 2025-04-23

发表回复

登录后才能评论