Jboot v3.9.0 发布,面向大数据,新增对 Clickhouse 数据源支持

Jboot 一个更简单的分布式、微服务框架。

Jboot是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务、分布式开发门槛。爽爽开发,快乐生活。

到目前为止,Jboot 已经开源超过了 5 年的时间,迭代了 160+ 个版本,已经被超过 1000+ 公司在使用,其中包含了多个知名的上市公司。

Jboot 从 v3.8.1 版本直接跳到了 v3.9.0 版本,主要原因是新增了对列式数据库管理系统(DBMS)ClickHouse 的支持,在 Jboot 中,我们可以直接通过 Model 把对 ClickHouse 进行增删改查。

ClickHouse 是 Yandex(俄罗斯最大的搜索引擎)开源的一个用于实时数据分析的基于列存储的数据库,其处理数据的速度比传统方法快 100-1000 倍。ClickHouse 的性能超过了目前市场上可比的面向列的 DBMS,每秒钟每台服务器每秒处理数亿至十亿多行和数十千兆字节的数据。

ClickHouse 有多强呢?

我们大概测试了单表大概 1 亿左右的数据,通过 select count() 进行查询数量:

  • ClickHouse 需要的时间是:0.5秒
  • Mysql 需要的时间是:35秒

更多的测试,大家可以自行测试、参考网络或者查看官网 https://clickhouse.tech/benchmark/dbms 

在 Jboot 中使用 ClickHouse ,和我们使用 Mysql 没什么区别,主要分为 2 个步骤:

  • 1、添加驱动 Maven 依赖
  • 2、在 jboot.properties  添加配置
<dependency>
    <groupId>com.github.housepower</groupId>
    <artifactId>clickhouse-native-jdbc-shaded</artifactId>
    <version>2.5.2</version>
</dependency>
jboot.datasource.type=clickhouse
jboot.datasource.url=jdbc:clickhouse://localhost:9000/your-db-name

然后,就可以开心在使用 JFinal 里的 Model 进行 save()、update()、find()、paginate()... 等等操作了。比如:

1、直接通过 Db 来查询:

List<Record> records = Db.find("select * from user_info");

2、通过 Jboot 的 Columns 来查询:

Columns columns = Columns.create();
columns.between("id",1,5);

List<User> users = dao.findListByColumns(columns);

3、保存数据:

UserInfo user = new UserInfo();
user.set("id",100);
user.set("age",20);
user.set("name","张三");
user.save();

4、更新 或者 删除数据:

//更新
UserInfo user = new UserInfo();
user.set("id",100);
user.set("name","李四");
user.update();


//删除
dao.deleteById(100);

5、不再一一举例,直接使用 JFinal API 来操作就可以,当然在 Jboot 中,我们可以配置多数据源,部分 Model 使用 Mysql ,同时部分 Model 使用 Clickhouse 都是没问题。

 

开发文档:

https://jbootprojects.gitee.io/docs/

同时,Jboot 官方也推出了收费的企业级开发框架 JbootAdmin,

详情 https://jbootprojects.gitee.io/docs/jbootadmin/

maven 依赖:

<dependency>
    <groupId>io.jboot</groupId>
    <artifactId>jboot</artifactId>
    <version>3.9.0</version>
</dependency>

Hello World:

@RequestMapping("/")
public class HelloworldController extends JbootController {

    public void index(){
        renderText("hello world");
    }

    public static void main(String[] args){
        JbootApplication.run(args);
    }
}

猜你喜欢

转载自www.oschina.net/news/127482/jboot-3-9-0-released