Clickhouse 特性和优势

Posted ibeisbsj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Clickhouse 特性和优势相关的知识,希望对你有一定的参考价值。

导语

如何开发一个自定义的 starter

Java SPI 机制简介

Java SPI 机制示例

Spring Boot SPI 机制底层实现

开发一个自定义 starter

自定义 starter 优化

总结

导语

熟悉 Spring Boot 的同学都知道,Spring Boot 提供了很多开箱即用的 starter,比如 spring-boot-starter-mail、spring-boot-starter-data-redis 等等,使用这些 starter 非常简单,引入依赖,再在配置文件中配置相关属性即可。本课程教您自己开发一个 starter,具备了这个技能后,您可以在工作中封装自己业务相关的各种 starter。

 

如何开发一个自定义的 starter

开发一个 starter 简单来说以下几步即可:

 

一个/多个自定义配置的属性配置类(可选)

一个/多个自动配置类

自动配置类写入到 Spring Boot 的 SPI 机制配置文件:spring.factories

Java SPI 机制简介

Spring Boot 的 starter 的核心其实就是通过 SPI 机制自动注入配置类,不过是它自己实现的一套 SPI 机制,我们先了解一下 Java 的 SPI 机制。

 

SPI 全称 Service Provider Interface,是 Java 提供的一套用来被第三方实现或者扩展的 API,它可以用来启用框架扩展和替换组件。

 

SPI 的大概流程是:

 

调用方 –> 标准服务接口 –> 本地服务发现 (配置文件) –> 具体实现

 

所以 Java SPI 实际上是“基于接口的编程+策略模式+配置文件” 组合实现的动态加载机制。

 

一个 SPI 的典型案例就是 JDBC 的驱动,Java JDBC 定义接口规范(java.sql.Driver),各个数据库厂商(mysql/Oracle/MS SQLServer 等)去完成具体的实现,然后通过 SPI 配置文件引入具体的实现类,如下图:

 

jdbc spi

 

Java SPI 机制示例

一个简单的 Java SPI 开发步骤:

 

定义一个业务接口

编写接口实现类

创建 SPI 的配置文件,实现类路径写入配置文件中

通过 Java SPI 机制调用

java spi例子

 

Spring Boot SPI 机制底层实现

了解了 Java 的 SPI 机制后,基本也能猜出 Spring Boot 的 SPI 实现了,基本流程是一样的:

 

读取配置文件 –> 将具体的实现类装配到 Spring Boot 的上下文环境中

 

接下来我们从源码中查找答案。

 

入口:Spring Boot 的启动类,@SpringBootApplication 注解,查看源码可以发现这是一个组合注解,包括 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan。

 

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Inherited

@SpringBootConfiguration

@EnableAutoConfiguration

@ComponentScan(excludeFilters = {

        @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),

        @Filter(type = FilterType.CUSTOM,

                classes = AutoConfigurationExcludeFilter.class) })

public @interface SpringBootApplication {

    ...

}

@Enab

 

  隐藏内容

以上是关于Clickhouse 特性和优势的主要内容,如果未能解决你的问题,请参考以下文章

TDSQL-A ClickHouse 产品概述 优势和应用场景

[新星计划]一文快速了解ClickHouse 战斗民族的开源搜索引擎(超详细解读+快速入门)

客快物流大数据项目(八十六):ClickHouse的深入了解

云时代,MySQL到ClickHouse数据同步产品对比推荐

Clickhouse Projection 特性探索

ClickHouse入门介绍与其特性