小白新手一篇看懂PolarDB-X

news2025/2/22 20:21:53

小白新手一篇看懂PolarDB-X

  • 什么是PolarDB-X
  • 如何安装
    • 安装PolarDB-X
    • 安装Mysql
    • 安装jdk
  • Spring Boot+PolarDB-X应用测试
    • 安装Git及下载模板代码
    • 创建数据库
    • 业务操作
  • 体验感受

什么是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 -p 8527:8527 polardbx/polardb-x:2.1.0

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

安装Mysql

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

yum install mysql -y

在这里插入图片描述
安装完成之后可以通过查看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

在这里插入图片描述

Spring Boot+PolarDB-X应用测试

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

安装Git及下载模板代码

执行命令安装Git

yum -y install git

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

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

在这里插入图片描述
可以看到模板代码下载成功,执行命令查看下载的文件

cd gs-accessing-data-mysql/initial

git checkout b8408e3a1e05008811d542b706107d45160556ac

ls

在这里插入图片描述

创建数据库

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

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

create database db_example;

create user 'springuser'@'%' identified by 'ThePassword';

grant all on db_example.* to 'springuser'@'%';

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

vim src/main/resources/application.properties

在这里插入图片描述
修改端口号为我们刚才创建的8527,保存并退出

vim src/main/java/com/example/accessingdatamysql/User.java

创建实体类User

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 -d name=First -d email=username@example.com

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

curl 'localhost:8080/demo/all' 

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

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

use 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团队为我们准备的内容很多,相信我以上的疑惑也一定能在后续的学习中找到答案的。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java17 --- SpringCloud之seate

目录 一、创建seata需要的mysql数据库表 二、修改seata的配置文件 三、启动nacos及seata 四、创建需要的数据库及表 一、创建seata需要的mysql数据库表 CREATE DATABASE seata;CREATE TABLE IF NOT EXISTS global_table(xid VARCHAR(128) NOT NULL,…

RK3568技术笔记之三 SAIL-RK3568开发板板卡功能测试

从这里开始&#xff0c;就是老生常谈系列之一&#xff1a;板卡功能测试。 放一张图镇一下帖 按照我自己顺手的方式&#xff0c;把这板子功能测一下。 先把开发板串口信息打印出来。 工具 功能 备注 电脑&#xff08;必备&#xff09; 提供使用终端软件环境 需要具备至少…

【Linux】进程(8):Linux真正是如何调度的

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解Linux进程&#xff08;8&#xff09;&#xff1a;Linux真正是如何调度的&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 之前我们讲过&#xff0c;在大…

【一】apollo 环境配置

域控制器配置 google输入法安装 安装输入google pinyin法 sudo apt install fcitx-bin sudo apt install fcitx-table sudo apt-get install fcitx fcitx-googlepinyin -y 最后需要reboot 系统环境 修改文件夹名称为英文 export LANGen_US xdg-user-dirs-gtk-update 挂载硬…

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第326p-第p331的内容 关注的问题 sentinel&#xff08;哨兵&#xff09; sentinel来实现熔断、降级、限流等操作 腾讯开源的tendis&#xff0c…

[已解决] Android手机如何通过Wi-Fi连接电脑?

在当前的数字化时代&#xff0c;Android和PC之间的文件传输需求日益增长。如果您正在寻找一种无需USB线即可将Android手机连接到PC的方法&#xff0c;那么您来对地方了。本文将向您介绍6种实用的方法&#xff0c;让您轻松通过Wi-Fi将Android手机连接到PC。 方式1&#xff1a;通…

什么是输入偏置电流?

输入偏置电流&#xff08;input bias current&#xff09;&#xff1a;运放同相与反相端流入和流出的电流。理想的运放同相和反相端的阻抗是无穷大的&#xff0c;所以是无法流进和流出电流。 第一种定义&#xff1a;同相与反相端电流和的平均值 以AD8031运放举例&#xff0c;…

DVWA-XSS(Reflected)

反射型XSS可以用来窃取cookie Low 输入1111进行测试&#xff0c;发现1111被打印 输入<script>alert(document.cookie)</script>&#xff0c;出现弹窗&#xff0c;获得cookie Medium 查看后端代码&#xff0c;发现对<script>进行了转义&#xff0c;但是…

docker部署fastdfs

我的镜像包地址 链接&#xff1a;https://pan.baidu.com/s/1j5E5O1xdyQVfJhsOevXvYg?pwdhcav 提取码&#xff1a;hcav docker load -i gofast.tar.gz拉取gofast docker pull sjqzhang/go-fastdfs启动gofast docker run -d --name fastdfs -p 8080:8080 -v /opt/lijia/lijia…

MyBatis总结(1)- 初探

初次学习应该冒出来的几个问题点&#xff1a; 1. 是什么&#xff1f; 一款ORM框架&#xff08;对象关系映射&#xff0c;用来作为连接数据库的桥梁&#xff09;&#xff1b;Mybatis通过定义配置(mybatis-config)&#xff0c;映射&#xff08;mapper&#xff09;关系&#xff…

Vulnhub-DC-4

靶机IP:192.168.20.138 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 nmap扫下端口及版本 dirsearch扫下目录 没发现什么敏感信息&#xff0c;看下前端界面 想到会不会存在SQL注入&#xff0c;弱密码等漏洞。 经过测试SQL注入…

使用紫铜管制作半波天线的折合振子

一、概述 半波天线是一种简单而有效的天线类型&#xff0c;其长度约为工作波长的一半。它具有较好的辐射特性和较高的增益&#xff0c;广泛应用于业余无线电、电视接收等领域。使用紫铜管制作折合振子&#xff0c;不仅可以提高天线的机械强度&#xff0c;还能增强其导电性能。 …

实现开源可商用的 ChatPDF RAG:密集向量检索(R)+上下文学习(AG)

实现 ChatPDF & RAG&#xff1a;密集向量检索&#xff08;R&#xff09;上下文学习&#xff08;AG&#xff09; RAG 是啥&#xff1f;实现 ChatPDF怎么优化 RAG&#xff1f; RAG 是啥&#xff1f; RAG 是检索增强生成的缩写&#xff0c;是一种结合了信息检索技术与语言生成…

【C++软件调试技术】什么是pdb文件?如何使用pdb文件?哪些工具需要使用pdb文件?

目录 1、什么是pdb文件? 2、如何配置生成pdb文件? 3、pdb文件的时间戳和文件名称 3.1、pdb文件的时间戳 3.2、pdb文件的文件名称 4、有pdb文件才能在Visual Studio中调试代码 5、在Windbg中使用pdb文件 5.1、使用lm命令查看二进制文件的时间戳,去查找对应版本的pdb文…

k8s——secret配置资源管理

一、Secret 1.1 Secret定义 Secret是用来保存密码、token、密钥等敏感数据的k8s资源&#xff0c;这类数据虽然也可以存放在Pod或者镜像中&#xff0c;但是放在Secret中是为了更方便的控制如何使用数据&#xff0c;并减少暴露的风险。 1.2 Secret类型 kubernetes.io/service-ac…

优思学院|精益生产学习过程中如何提高自己的能力水平?

精益生产是一项实践多过理论的课题。 优思学院认为实践并不限于实际的工作&#xff0c;日常的思考同样重要&#xff0c;例如我们会要求学员在学习时不断思考各种事物&#xff0c;不限于自己的企业。例如当你去到一家餐厅&#xff0c;你能夠观察到什么浪费&#xff1f;你可否把…

JVM 虚拟机

JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java 虚拟机&#xff0c;虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机有&#xff1a;JVM、VMwave、Virtual Box等。JVM 是一台被定制过的现实当中不存在的计算…

【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP+Uniapp)

&#x1f50d;防伪溯源一体化管理系统&#xff1a;守护品质&#xff0c;追溯无忧 一款基于FastAdminThinkPHP和Uniapp进行开发的多平台&#xff08;微信小程序、H5网页&#xff09;溯源、防伪、管理一体化独立系统&#xff0c;拥有强大的防伪码和溯源码双码生成功能&#xff0…

EXCEL多sheet添加目录跳转

EXCEL多sheet添加目录跳转 背景 excel中有几十个sheet&#xff0c;点下方左右切换sheet太耗时&#xff0c;希望可以有根据sheet名超链接跳转相应sheet&#xff0c;处理完后再跳回原sheet。 方案一 新建目录sheet&#xff0c;在A1写sheet名&#xff0c;右键选择最下方超链接…

usock: No such file or directory

在搭建T113的tina系统时&#xff0c;运行ubusd报错&#xff0c;“usock: No such file or directory” rootTinaLinux:/# ifup -a Failed to connect to ubus /sbin/ifup: line 51: /sbin/wifi: not foundrootTinaLinux:/# ubusd usock: No such file or directory因为运行 ubu…