社区1月月报|OceanBase 4.1 即将发版,哪些功能将会更新?

news/2024/4/25 7:52:40/文章来源:https://blog.csdn.net/OceanBaseGFBK/article/details/129245514

我们每个月都会和大家展开一次社区进展的汇报沟通会,希望通过更多的互动交流让OceanBase 开源社区更加透明,实现信息共享,也希望能营造更加轻松的氛围,为大家答疑解惑,让大家畅所欲言。如果您对我们的社区有任何建议,欢迎在GitHub 上提 Issues 或 PR ,也欢迎大家成为 Contributor,参与到社区建设中来。

12月的社区月报中和大家分享了「OMS 4.0 发布」支持 MySQL 到 OceanBase 4.0 的数据同步和迁移,那在1月份 OceanBase 又有哪些产品动态值得关注呢?本文将会和大家分享在过去一个月 OceanBase 内核的版本迭代以及开发者的共建交流。

内核及生态工具有何进展?

经常有小伙伴在社区论坛、钉钉技术交流群、GitHub…提出的需求,我们都进行了收集整理,那下面就来分享一下大家最关心的问题:内核及生态工具的功能开发。

OceanBase 内核 4.1 版本的功能**都已经完成开发,目前在测试中,预计将会在 2023年3月份中旬发布,**主要包括用户功能和系统性能。

  • **用户功能:**direct path load、index_skip_scan,MySQL GIS,latin1字符集、主备库(基于归档)等;
  • **系统功能:**4.x在线升级、系统日志优化、视图性能优化(系统内部表添加索引)等

4.1版本迭代的功能远不止这些,如果大家想要了解整个功能需求,可以关注3月25日的开发者大会,会向大家进行详细的解读,点击报名参会👉大会报名。

随着内核4.1版本的发布,在同一时间我们也会发布一些生态工具,包括以下组件:

  • OBD(包web版):除了对内核版本的适配,还提供了白屏部分的能力,让用户能更好的使用部署能力;
  • OCP:推出 OCP Express,OCP Express 资源消耗更低,也不需要部署其他圆数据库,非常适合小规模的集群;

(大家可以直接通过 OBD 部署 OCP Expres,在使用上会有一个比较统一的体验)

  • ODP(OBProxy)社区版:支持事务内部路由、latin1 字符集合等;
  • ODC、ob-agent、obcdc 等

OceanBase 开源仓库从哪入手?

上文已经带和大家分享了 OceanBase 整体的发布计划,下面在来和大家介绍一下 OceanBase 的开源仓库,以及作为开发者如果你想来 OceanBase 玩,可以从哪些仓库入手?

在 OceanBase Pepositories 下包含了很多仓库,其中 OceanBase 是我们的主仓库;进入主仓后,可以先从 Wiki 入手,在 Wiki 中可以看到开发者手册以及 OceanBase 数据库大赛的赛前培训课程,这些都归档在开发者教程中(如图2)

图1

图2

以上为 OceanBase 的基础模块介绍,关于实操, Contributing 章节 会告诉大家如何去编译,包括如何配置 IDE 以及如何部署源码编译的 OceanBase 等。

图3
下面这段代码是 obd.sh 编译后部署 OceanBase 的例子。libtool 是部署工具的依赖,libaio 是 OceanBase 的运行时依赖。obd.sh deploy 会使用下面示例中 single.yaml 的特定配置文件通过 obd 部署 OceanBase。如果你对 OceanBase 内核研发感兴趣,可以参照这个指南进行尝试。另外,如果在你使用过程中发现我们缺失什么文档,也欢迎在下方评论区反馈,我们非常希望大家能够给我们提供建议。

yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
yum install -y libtool libaio obclient
# go to your oceanbase source code directory and it's subdirectory `tools/deploy`
cd `/your/oceanbase/source/tools/deploy`
# `/your/deploy/home/path` is the directory to deploy oceanbase cluster
./obd.sh prepare -p `/your/deploy/home/path`
./obd.sh deploy -c single.yaml
ob-example

除了内核开发,在 OceanBase 仓库中还有 OceanBase 的应用,或中间件生态。这些仓库的入门成本相较于 OceanBase 内核会更低一些。以 ob-example 为例,ob-example仓库(如图4)主要是告诉大家不同的语言如何连接 OceanBase 代码,包括 go 语言、java语言等等,我们也欢迎广大的开发者,贡献出大家常用的语言及中间件的示例代码。

图4

ob-example 仓库,基于 Gitpod 搭建了在线快速使用平台,大家可以点击链接直接进入:https://gitpod.io/#https://github.com/oceanbase/ob-example,当你点击 Gitpod 链接时可以将 OceanBase 拉起来。利用这个功能,大家可以不需要借助额外的服务器,就可以体验自己的连接示例代码是否能够正常访问 OceanBase。

ob-example 仓库的 Contributors 的章节包含了已经完成的连接器示例和将来需要添加的示例,我们也希望有开发者能一起去共建这个仓库。


图5
我们每个仓库都包含了一个env.sh(环境准备)和run.sh.sh(运行用例);以java connector为例,java connector 的环境准备只需要我们下载 MySQL Connector 就可以了;在运行用例时,实际上就是编译运行 Test.java;最后给大家展现一个简单的示例程序,该程序会告诉大家如何连本机,创建一张表,插入数据,查询数据。如果大家感兴趣可以在环境上去执行一下代码:https://github.com/oceanbase/ob-example/tree/master/java-jdbc

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {public static void main(String[] args) {try {Class.forName("com.mysql.jdbc.Driver");try{Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:2881/test?user=root&password=");System.out.println("success to connect OceanBase with java jdbc");Statement sm = connection.createStatement();String q1="drop table if exists test";String q2="CREATE TABLE test( name varchar(36) NOT NULL DEFAULT ' ') DEFAULT CHARSET = utf8mb4";String q3="insert into test values ('Hello OceanBase')";String q4="select * from test limit 1";sm.executeUpdate(q1);sm.executeUpdate(q2);sm.executeUpdate(q3);                  ResultSet rs = sm.executeQuery(q4);rs.beforeFirst();while(rs.next()){String Name = rs.getString("name");System.out.printf("%s\n",Name);}rs.close();} catch (SQLException se) {System.out.println("error!");se.printStackTrace() ;}} catch (Exception ex) {ex.printStackTrace();}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_74819.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#多窗口切换

多窗口切换【功能目标】1、实现多窗口切换(Panel)2、动态生成窗口内文本框以及标签(重点)3、改变文本框内容【效果图】【代码详解】1、多窗口切换如要实现多窗口切换,需要用到Panel,对于这个控件不熟悉的可…

13-mvc框架原理与实现方式

1、mvc原理 # mvc 与框架## 1.mvc 是什么1. m:model,模型(即数据来源),主要是针对数据库操作 2. v:view,视图,html 页面。视图由一个一个模板构成(模板是视图的一个具体展现或载体,视图是模板的一个抽象) 3. c:controller,控制器,用于mv之间的数据交互## 2.最简单的 mvc 就是一…

锁相环的组成和原理及应用

一.锁相环的基本组成 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步,利用锁相环路就可以实现这个目的。 锁相环路是一种反馈控制电路,简称锁相环(PLL)。锁相环的特点是:利用外部输入的参考信号控制环路内…

阶段八:服务框架高级(第五章:服务异步通信-高级篇(RabbitMQ高级))

阶段八:服务框架高级(第五章:服务异步通信-高级篇(RabbitMQ高级))Day-第五章:服务异步通信-高级篇(RabbitMQ高级)0.学习目标1.消息可靠性1.1.生产者消息确认1.1.1.修改配…

400G光模块知识大全

400G光模块是目前高速传输领域中的一种先进产品,被广泛应用于高性能数据中心、通信网络、大规模计算、云计算等领域。本文将从400G光模块的定义、技术、产品型号、应用场景以及未来发展方向进行详细介绍。一、什么是400G光模块?400G光模块是指传输速率达…

Android zygote进程启动流程

zygote启动过程中涉及到以下模块: app_processzygote USAPsocketFileDescriptor (FD) AndroidRuntimeAppRuntime (定义于app_process模块,继承自AndroidRuntime。) init进程启动zygote进程: #init.zygote32_64.rc s…

前端开发_快应用开发

目录快应用官网真机调试组件组件嵌套问题tab组件list组件web组件css 样式问题[1]选择器[2]盒模型[3]样式布局-弹性布局[4-1]样式切换 - 类名的动态切换[4-2] 样式切换 - 行内样式动态切换[5]background[6]overflow[7]border-radius[8]盒子阴影[9] 单位系统接口[1] 检查某app是否…

redis五种数据结构

redis五种数据结构1. redis 其他相关1.1 redis 的安装1.2 redis 的持久化1.3 redis 配置文件2. redis 常见命令2.1 key2.2 设置 key 的生存时间或过期时间3. redis的5种常见的数据结构3.1 String3.2 list3.3 hash3.4 set3.5 zset(SortedSet(有序集合&…

2023年“网络安全”赛项浙江省金华市选拔赛 任务书

2023年“网络安全”赛项浙江省金华市选拔赛 任务书 任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 Windows操作系统渗透测试 任务二 Linux操作系统渗透测试 任务三 网页渗透 任务四 Linux系统…

《爆肝整理》保姆级系列教程python接口自动化(二十四)--unittest断言——中(详解)

简介 上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言。这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京的天气,一个是查询 南京为例&#xf…

继电器的工作原理、构成和功能介绍

随着电力应用的不断发展,电气设备已经深入到我们的日常生活中,电气自动化技术大量使用在电力系统和生产型企业中,人们在享受电带来方便的同时要注意用电保护。继电器就是为了保护电路而生的,可以提高电路可靠性,保障用…

RabbitMQ实现死信队列

目录死信队列是什么怎样实现一个死信队列说明实现过程导入依赖添加配置编写mq配置类添加业务队列的消费者添加死信队列的消费者添加消息发送者添加消息测试类测试死信队列的应用场景总结死信队列是什么 “死信”是RabbitMQ中的一种消息机制,当你在消费消息时&#…

wafw00f 防火墙探测

kali机器自带防火墙探测工具wafw00,它可以通过发送正常以及不正常甚至包含恶意代码的HTTP请求,来探测网站是否存在防火墙,并识别防火墙的厂商及类型。安装:git clone https://github.com/EnableSecurity/wafw00f.git python setup…

Windows如何查看某个端口被占用的情况?

在工作中,有时会发现端口被占用的情况,导致软件报错或者服务无法启动等问题。在不知道具体哪个进程占用该端口号的情况下,我们可以用下面方法来查找。 举例:我现在发现8090端口被占用了,我现在需要找到并杀掉该进程。…

TCP状态转换

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 TCP状态转换专栏:《Linux从小白到大神》《网络编程》 TCP状态转换示意图如下 针对上面的示…

高并发之读多写少的场景设计(用户中心)

用户中心是一个典型的读多写少系统,可以说我们大部分的系统都属于这种类型,而这类系统通过缓存就能获得很好的性能提升。并且在流量增大后,用户中心通常是系统改造中第一个要优化的模块,因为它常常和多个系统重度耦合,…

消息队列介绍和RabbitMQ的安装

1.消息队列 1.1 MQ的相关概念 1.1.1 什么是MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在…

高阶人生从在职读研开始——中国社科院与美国杜兰大学金融管理硕士

说到学历,好多人都不太在意,感觉学历没什么用。等升职学历被卡时,等你想考公学历达不到时,当你想跳槽更大的平台时,学历会显得尤其重要。当机会来临时,我们应该做好全足的准备,而不是眼瞅着机会…

SpringBoot相关操作

01-今日内容 Spring概述、快速入门SpringBoot配置SpringBoot整合 02-SpringBoot概述 SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的…

金融信创步入快车道,应“需”而生的监控易运维方案为国产化助力

在我国“28N”信创三步走战略中,金融信创赫然名列其中,成为最早践行信创理论与实操的行业之一。截止到目前,金融信创渗透率业已仅次于党政部门,位列“8”大重点行业之首。超快的发展速度,让金融信创较早的步入“买方市…