小白新手一篇看懂PolarDB-X

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 简要讲述什么是PolarDB-X,以及基础安装,与srpingboot项目整合等

什么是PolarDB-X

在使用一款新的产品之前,首先就是要对这个产品有一个基础的理解,适应什么场景,性价比如何,通过功能性及其他辅助性评测之后才会考虑是否接受对应的新产品,那么什么是PolarDB-X呢?

PolarDB-X是一款云原生分布式数据库系统,那么是一款什么样的PolarDB-X呢?是一款面向超高并发、海量存储、复杂查询场景,支持水平扩展、分布式事务、混合负载等能力,具备企业级、云原生、高可用、高度兼容 MySQL 系统及生态等特点的云原生分布式数据库系统,重点是高度兼容Mysql哦,这对于大多数使用开源数据库Mysql的中小企业无疑是最大的福音。

如何安装

为了方便我们快速上手使用PolarDB-X,快速掌握安装的基本流程以及后续的使用流程,阿里云起实验室贴心为我们提供了免费的实验室资源可以无限次体验,实验室地址:https://developer.aliyun.com/adc/scenario/6e7827274b004c7b9fad58ecf5404c6c 说到这里,你是否心中蠢蠢欲动想体验一下Mysql的云原生分布式数据库呢?

安装PolarDB-X

首先安装docker,并且启动docker

curl-fsSL https://get.docker.com | bash-s docker --mirror Aliyun
systemctl start docker

安装PolarDB-X

docker run -d--name some-polardb-x -p8527:8527 polardbx/polardb-x:2.1.0

安装完成之后就可以通过MySQL Client命令行连接PolarDB-X。

安装Mysql

PolarDB-X支持通过MySQL Client命令行、第三方客户端以及符合MySQL交互协议的第三方程序代码进行连接。

安装mysql

yum install mysql -y

image.png

安装完成之后可以通过查看mysql版本命令来验证mysql是否安装成功

mysql -V

返回mysql  Ver 8.0.26 for Linux on x86_64 (Source distribution)

登录PolarDB-X数据库,实验室场景下预设密码123456

mysql -h127.0.0.1 -P8527-upolardbx_root-p123456

测试登录成功之后继续安装jdk

安装jdk

执行如下命令安装jdk 1.8并验证是否安装成功

yum -y install java-1.8.0-openjdk*
java -version

image.png

Spring Boot+PolarDB-X应用测试

首先需要安装git来下载模板代码

安装Git及下载模板代码

执行命令安装Git

yum -y install git

git安装成功之后下载模板代码

git clone https://github.com/spring-guides/gs-accessing-data-mysql.git

image.png

可以看到模板代码下载成功,执行命令查看下载的文件

cd gs-accessing-data-mysql/initial
git checkout b8408e3a1e05008811d542b706107d45160556ac
ls

image.png

创建数据库

登录PolarDB-X数据库,同时创建数据库并创建数据库用户及授权,这里悄悄说一点,有没有注意到你操作PolarDB-X数据库的语句和平时操作mysql的语句一致呢!

mysql -h127.0.0.1 -P8527-upolardbx_root-p123456create database db_example;
create user 'springuser'@'%' identified by 'ThePassword';
grant all on db_example.* to 'springuser'@'%';

配置模板项目

打开项目数据库配置文件application.properties

vim src/main/resources/application.properties

image.png

修改端口号为我们刚才创建的8527,保存并退出。

创建实体类User

vim src/main/java/com/example/accessingdatamysql/User.java
package com.example.accessingdatamysql;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity // This tells Hibernate to make a table out of this class
public class User {
  @Id
  @GeneratedValue(strategy=GenerationType.AUTO)
  private Integer id;
  private String name;
  private String email;
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getEmail() {
    return email;
  }
  public void setEmail(String email) {
    this.email = email;
  }
}

创建数据库连接层UserRepository,保存并退出

vim src/main/java/com/example/accessingdatamysql/UserRepository.java
package com.example.accessingdatamysql;
import org.springframework.data.repository.CrudRepository;
import com.example.accessingdatamysql.User;
// This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository
// CRUD refers Create, Read, Update, Delete
public interface UserRepository extends CrudRepository<User, Integer> {
}

创建控制类MainController  保存并退出

vim src/main/java/com/example/accessingdatamysql/MainController.java
package com.example.accessingdatamysql;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller // This means that this class is a Controller
@RequestMapping(path="/demo") // This means URL's start with /demo (after Application path)public class MainController {  @Autowired // This means to get the bean called userRepository         // Which is auto-generated by Spring, we will use it to handle the data  private UserRepository userRepository;  @PostMapping(path="/add") // Map ONLY POST Requests  public @ResponseBody String addNewUser (@RequestParam String name      , @RequestParam String email) {    // @ResponseBody means the returned String is the response, not a view name    // @RequestParam means it is a parameter from the GET or POST request    User n = new User();    n.setName(name);    n.setEmail(email);    userRepository.save(n);    return "Saved";  }  @GetMapping(path="/all")  public @ResponseBody Iterable<User> getAllUsers() {    // This returns a JSON or XML with the users    return userRepository.findAll();  }}

运行模板项目

./gradlew bootRun

业务操作

模板项目启动之后,我们通过项目来增加一条用户数据

curl localhost:8080/demo/add -dname=First -demail=username@example.com

增加用户数据成功之后我们查看一下用户记录

curl'localhost:8080/demo/all'

后续再登录一下 PolarDB-X数据库 查询一下数据库数据

mysql -h127.0.0.1 -P8527-upolardbx_root-p123456use db_example;
select * from user;


均可以看到数据已经通过模板项目成功添加进数据库,至此本次实验内容操作完成。

体验感受

整体操作下来,基本上没有什么卡顿,操作很流畅,从PolarDB-X的安装到下载模板项目,配置项目数据库连接信息到最后的通过项目添加数据查看数据等,基本和现在的使用开源Mysql进行的springboot项目开发无任何差别,可以说引入PolarDB-X云原生分布式数据库,除了给了高性能、高稳定、高时效性的分布式数据库外,并没有任何的不适感,同时也解决了项目后期数据库压力大,分库分项目时面临的分布式问题,是不是一举多得呢?

但是体验过程中也有一些疑问,比如说官方文档是否提供了可以在阿里云服务器ECS上面安装PolarDB-X的安装文档,个人找了一下PolarDB-X的官方文档 https://www.polardbx.com/document ,没有找到相应的内容;另外就是作为开源版的数据库,在公司自购服务器或者本地windows电脑是否支持安装,如何安装,是否有相应的逐步操作的文档方便查阅;

在使用方面,作为云原生分布式数据库,分布式的实例demo是否可以提供一下,方便后续项目数据量大时分库数据一致性的保证,有了demo方便后期项目做分布式事务时的效率提升。

另外,在最后给大家推荐一些关于PolarDB-X的官方视频和文档地址,官方很细心,准备的内容很丰富,如果有时间全部掌握的话,个人觉得你的PolarDB-X云原生分布式数据库使用熟练度基本就没有任何问题了,我本人也需要继续努力。文档地址:PolarDB-X体验室 https://developer.aliyun.com/adc/series/activity/polardb-x/2跟我学的PolarDB-X https://developer.aliyun.com/adc/scenarioSeries/cf58beaf1d3d4aafb127dfb3f7bfd549,跟着视频学PolarDB-X https://developer.aliyun.com/learning/course/1032/detail/15141 以及PolarDB-X官方网站 https://www.polardbx.com/home 总之,阿里云社区PolarDB-X团队为我们准备的内容很多,相信我以上的疑惑也一定能在后续的学习中找到答案的。

相关文章
|
存储 运维 关系型数据库
开源新发布|PolarDB-X v2.4.1 增强企业级运维能力
PolarDB-X 是阿里云推出的云原生分布式数据库,自2021年10月开源以来,持续迭代升级,至2024年4月发布的v2.4.1版本,重点增强了企业级运维能力,如无锁变更、物理扩缩容、数据TTL等,提供金融级高可用、透明分布式、HTAP一体化等特性。PolarDB-X 支持集中式和分布式一体化形态,兼容MySQL生态,适用于金融、通信、政务等行业。
2079 101
|
9月前
|
SQL 关系型数据库 分布式数据库
PolarDB开源数据库入门教程
PolarDB是阿里云推出的云原生数据库,基于PostgreSQL、MySQL和Oracle引擎构建,具备高性能、高扩展性和高可用性。其开源版采用计算与存储分离架构,支持快速弹性扩展和100%兼容PostgreSQL/MySQL。本文介绍了PolarDB的安装方法(Docker部署或源码编译)、基本使用(连接数据库、创建表等)及高级特性(计算节点扩展、存储自动扩容、并行查询等)。同时提供了性能优化建议和监控维护方法,帮助用户在生产环境中高效使用PolarDB。
2901 21
|
存储 关系型数据库 MySQL
深度评测:PolarDB-X 开源分布式数据库的优势与实践
本文对阿里云开源分布式数据库 PolarDB-X 进行了详细评测。PolarDB-X 以其高性能、强可用性和出色的扩展能力在云原生数据库市场中脱颖而出。文章首先介绍了 PolarDB-X 的核心产品优势,包括金融级高可靠性、海量数据处理能力和高效的混合负载处理能力。随后,分析了其分布式架构设计,包括计算节点、存储节点、元数据服务和日志节点的功能分工。评测还涵盖了在 Windows 平台通过 WSL 环境部署 PolarDB-X 的过程,强调了环境准备和工具安装的关键步骤。使用体验方面,PolarDB-X 在处理分布式事务和实时分析时表现稳定,但在网络问题和性能瓶颈上仍需优化。最后,提出了改进建
|
Cloud Native 关系型数据库 分布式数据库
开发者如何使用云原生数据库PolarDB
【10月更文挑战第5天】开发者如何使用云原生数据库PolarDB
470 2
|
Java API 开发者
如何在Spring Boot中使用GraphQL
如何在Spring Boot中使用GraphQL
|
关系型数据库 分布式数据库 PolarDB
PolarDB产品使用问题之如何基于Docker进行PolarDB-X单机模拟部署
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB产品使用问题之如何基于Docker进行PolarDB-X单机模拟部署
|
存储 关系型数据库 分布式数据库
数据管理的艺术:PolarDB开源版详评与实战部署策略(二)
PolarDB-PG是阿里云的一款云原生关系型数据库,100%兼容PostgreSQL,支持Oracle语法,采用Shared-Storage存储计算分离架构,提供极致弹性、毫秒级延迟的HTAP能力。具备高可用、高可靠和弹性扩展特性,支持单机、存储计算分离和X-Paxos三节点等多种部署形态。通过Docker可快速部署实例,包括单节点、一主一备和HTAP(一主两备)实例。此外,文章还介绍了在ECS上使用ESSD云盘搭建PolarDB-PG的详细步骤,适合开发和测试环境。
224950 22
|
关系型数据库 MySQL 数据库
测试部署PolarDB-X 分布式与集中式
在本文中,作者详述了在CentOS 7.9上部署测试PolarDB-X分布式与集中式数据库的过程。PolarDB-X作为阿里云优化的分布式数据库,提供高稳定性和与MySQL的兼容性,是应对单体数据库扩展性和性能瓶颈的解决方案,同时也符合国产化需求。文章介绍了部署环境准备,包括关闭防火墙和SELinux,设置系统参数,安装Python3和Docker,以及配置MySQL客户端。接着,通过PXD工具部署了PolarDB-X的集中式和分布式版,遇到的问题包括阿里云镜像源异常导致的部署失败以及指定版本安装的困扰。最后,作者进行了初步的压力测试,并对文档完善、生态工具建设以及提供更多使用案例提出了建议。
48810 10
测试部署PolarDB-X 分布式与集中式
|
存储 关系型数据库 MySQL
PolarDB-X 开源 | 基于Paxos的MySQL三副本
PolarDB-X 作为PolarDB分布式版,是阿里巴巴自主设计研发的高性能云原生分布式数据库产品,采用 Shared-nothing 与存储分离计算架构,支持集中式和分布式一体化形态,具备金融级数据高可用、分布式水平扩展、混合负载、低成本存储和极致弹性等能力,坚定以兼容MySQL开源生态构建分布式能力,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。
PolarDB-X 开源 | 基于Paxos的MySQL三副本
|
缓存 运维 Linux
保姆级python项目离线部署服务器教程只需这一篇就够了(建议收藏)
这篇文章提供了详尽的Python项目在离线Linux(CentOS)服务器上的部署教程。作者首先介绍了环境背景,强调了无网络环境和使用有网络的CentOS虚拟机准备安装包的重要性。教程分为两部分:外网环境搭建和内网离线安装。在外网环境中,包括下载Python 3.9.0安装包、传输至服务器、安装依赖包,并使用pip3下载项目所需依赖。内网安装则涉及依赖包的复制和Python环境的同样步骤。最后,作者分享了运行项目的命令,并总结了离线安装的整个流程,提醒读者注意可能出现的问题。
保姆级python项目离线部署服务器教程只需这一篇就够了(建议收藏)

热门文章

最新文章