简介

在上两篇文章中,尝试了ShardingSphere JDBC和Proxy的相关功能,本篇进行探索ShardingSphere的UI组件部分

示例运行

这个应该是一个管理配置之类的东西,国际惯例,先瞅一瞅文档:

  • ShardingSphere-UI

上面的官方文档中对其做了一个大致的介绍,下面我尝试运行下:

1.代码拉取

运行下面的命令进行相关代码的拉取:

git clone https://github.com.cnpmjs.org/apache/shardingsphere-ui.git

2.编译

直接运行命令,好像一直报错,那只能手动去安装了

下面Nodejs:https://nodejs.org/en/download/ ,并进行相应的安装

配置一下源(安装完成后,重新打开命令行终端,命令是生效的),然后进行相关依赖的安装:

npm config set registry https://registry.npm.taobao.org
npm install
npm run dev
# 运行过程中可能会报错,运行下面的命令,再次运行即可
npm rebuild node-sass
npm run dev

3.后端代码

使用IDEA打开,配置好Java8和Maven

实现修改下跟目录下的配置:pom.xml

修改下ShardingSphere相关依赖版本为:<shardingsphere.version>5.0.0-alpha</shardingsphere.version>

然后运行后台代码:shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/Bootstrap.java

成功跑了起来

4.页面登录访问

在第二步中前端已经跑起来了,访问显示的地址:http://localhost:8080/

进去默认就填好了用户名和密码,点击登录即可,登录后如下图:

5.Proxy连接

启动Zookeeper

使用Docker启动一个zk:

docker run -dit --name zk -p 2181:2181 zookeeper

将源码版本切换到5.0.0-alpha

5.0.0-beta的Proxy注册会有问题,数据匹配不上,我们这里使用5.0.0-alpha版本的,使用命令行,将代码重置到相关版本即可,命令如下:

git checkout 5dc690c2227571e83beada277dbb2dfb43c29427

打了相关标签的,成功的话,会显示下面的一行:

HEAD is now at 5dc690c222 [maven-release-plugin] prepare release 5.0.0-alpha

修改配置,启动Proxy

接下来我们就开始修改配置启动Proxy

首先修改server.yaml:shardingsphere-proxy\shardingsphere-proxy-bootstrap\src\main\resources\conf\server.yaml

放开下面的配置,记住我们的名字:governance_ds

governance:name: governance_dsregistryCenter:type: ZooKeeperserverLists: localhost:2181props:retryIntervalMilliseconds: 5000timeToLiveSeconds: 60maxRetries: 3operationTimeoutMilliseconds: 5000overwrite: falseauthentication:users:root:password: rootsharding:password: shardingauthorizedSchemas: sharding_dbprops:max-connections-size-per-query: 1acceptor-size: 16  # The default value is available processors count * 2.executor-size: 16  # Infinite by default.proxy-frontend-flush-threshold: 128  # The default value is 128.# LOCAL: Proxy will run with LOCAL transaction.# XA: Proxy will run with XA transaction.# BASE: Proxy will run with B.A.S.E transaction.proxy-transaction-type: LOCALproxy-opentracing-enabled: falseproxy-hint-enabled: falsequery-with-cipher-column: truesql-show: truecheck-table-metadata-enabled: false

再讲数据加密配置放开:shardingsphere-proxy\shardingsphere-proxy-bootstrap\src\main\resources\conf\config-encrypt.yaml

schemaName: encrypt_dbdataSource:url: jdbc:mysql://127.0.0.1:3306/demo_ds?serverTimezone=UTC&useSSL=falseusername: rootpassword: rootconnectionTimeoutMilliseconds: 30000idleTimeoutMilliseconds: 60000maxLifetimeMilliseconds: 1800000maxPoolSize: 50rules:
- !ENCRYPTencryptors:aes_encryptor:type: AESprops:aes-key-value: 123456abcmd5_encryptor:type: MD5tables:t_encrypt:columns:user_id:plainColumn: user_plaincipherColumn: user_cipherencryptorName: aes_encryptororder_id:cipherColumn: order_cipherencryptorName: md5_encryptor

在启动的时候,还是遇到了问题,明明没有放开数据分片的配置,但Proxy还是默认加载了数据分片的配置,对数据分片配置进行修改了也不行,由于默认是无密码连接的,导致一直连接不上

于是只能跟踪代码,将默认的数据库连接密码都改为root,让Proxy暂时能跑起来:

修改的文件是:shardingsphere-proxy\shardingsphere-proxy-backend\src\main\java\org\apache\shardingsphere\proxy\backend\communication\jdbc\datasource\factory\JDBCRawBackendDataSourceFactory.java

将密码暂时都设置为root:

public final class JDBCRawBackendDataSourceFactory implements JDBCBackendDataSourceFactory {@SuppressWarnings({"unchecked", "rawtypes"})@Overridepublic DataSource build(final String dataSourceName, final DataSourceParameter dataSourceParameter) {HikariConfig config = new HikariConfig();String driverClassName = JDBCDriverURLRecognizerEngine.getJDBCDriverURLRecognizer(dataSourceParameter.getUrl()).getDriverClassName();validateDriverClassName(driverClassName);config.setDriverClassName(driverClassName);config.setJdbcUrl(dataSourceParameter.getUrl());config.setUsername(dataSourceParameter.getUsername());
//        config.setPassword(dataSourceParameter.getPassword());config.setPassword("root");config.setConnectionTimeout(dataSourceParameter.getConnectionTimeoutMilliseconds());config.setIdleTimeout(dataSourceParameter.getIdleTimeoutMilliseconds());config.setMaxLifetime(dataSourceParameter.getMaxLifetimeMilliseconds());config.setMaximumPoolSize(dataSourceParameter.getMaxPoolSize());config.setMinimumIdle(dataSourceParameter.getMinPoolSize());config.setReadOnly(dataSourceParameter.isReadOnly());DataSource result = new HikariDataSource(config);Optional<JDBCParameterDecorator> decorator = findJDBCParameterDecorator(result);return decorator.isPresent() ? decorator.get().decorate(result) : result;}
}

但是为啥默认一直有数据分片的配置,时间不够,后面再跟踪研究下

这样,我们就可以启动Proxy了,在ZK中查看,我们生成了节点:governance_ds

注册中心设置

在页面上添加一个注册中心,操作大致如下,填入Proxy中我们配置的名称:governance_ds,注意一定要对应上,这个涉及到ZK的读取路径

添加完成后,点击激活,后面就会显示已经连接了注册中心,如下图:

在配置管理中,我们能看到相关的配置:

运行状态中也看到了我们的Proxy节点:

总结

本篇中体验了下ShardingSphere UI的基本功能,使用Proxy连接了上去

后面的动态数据同步,由于时间问题,还没来得及去尝试,但问题不大,感兴趣的老哥可以自定尝试

核心的组件基本上体验完了,并且都是源码上直接启动的,后面准备开始源码上的阅读了

ShardingSphere UI 初步体验相关推荐

  1. Tez的web UI简单体验

    Tez的web UI简单体验 前言 由于CDP7默认是Hive On Tez,不再有Map Reduce和Spark什么事,查看监控.分析数据倾斜等原因导致的HQL任务跑不快的问题没有使用Spark那 ...

  2. mysql connector api_mysql connector c++ 1.1 API初步体验

    mysql connector c++ 1.1 API初步体验 1,常用的头文件 #include #include #include #include #include #include 2,创建连 ...

  3. 初步体验数据驱动之美---TreeView

    1.前言 继上一篇<WPF应用基础篇---TreeView>的发布之后,有部分朋问我关于里面一些基础应用的问题,可能是我写得不够详细,所以在这里,我想再次那文章中的案例来谈谈初步体验数据驱 ...

  4. Docker Compose 简介、安装、初步体验

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  5. 百度无线音乐盒刷打印服务器,百度 M-100 无线音乐盒 初步体验+简单拆解

    百度 M-100 无线音乐盒 初步体验+简单拆解 2014-01-23 13:26:55 18点赞 26收藏 15评论 前段时间京东上面这个盒子做活动,虽然手头蓝牙音箱啥子的也有几个,不过受到这个盒子 ...

  6. Azure Data Science Virtual Machine Linux的初步体验

    背景信息 微软Azure 提供1元免费试用的活动,可以使用$200的积分额度或30天试用期(先到为准).由于之前工作的原因看过很多阿里云和微软Azure的产品文档,但一直没有使用过云计算产品,所以很多 ...

  7. 三星oneui主屏幕费电_三星One UI初体验,你想要的使用感受都在这里

    点击右上角,关注:唆麻,了解更多行业内幕.精彩八卦.实用干货.神秘福利,带你深扒科技互联网圈! 11月30日上午,三星盖乐世社区正式宣布将开启盖乐世S9和S9+的安卓9.0 Beta办新系统的内侧招募 ...

  8. Mac Catalyst 初步体验+排坑

    Mac Catalyst 是苹果在今年WWDC上发布的一个帮助开发者将iPad 应用移植到macOS上的服务.苹果在发布会上说这将会是一个"一键式的操作","只需要稍加优 ...

  9. Win10《芒果TV》商店内测版更新至v3.7.65.0:跨平台UI新体验,铺路SP

    Win10<芒果TV - Preview>是Win10<芒果TV>官方唯一指定内测预览版,最新的改进和功能更新将会在此版本优先体验. 春去夏来,初心犹在,Win10<芒果 ...

最新文章

  1. netty里集成spring注入mysq连接池(一)
  2. 关于Qomo于ajax的异同~
  3. ruby打印_Ruby程序打印数字的力量
  4. ASP.NET无法识别的配置节connectionStrings的解决方法
  5. 设置darktable为中文
  6. 代码测试意味着完全消灭了 Bug?
  7. VC2013生成的程序兼容WindowsXP操作系统
  8. java 数组有序_Java有序数组
  9. Visual Studio 2017 配置AnkhSVN
  10. 这样来理解委托,代理,协议三者的区别
  11. 屁孩君儿子讲解 2022 【例4.7】最小n值
  12. matlab一维数组操作,Matlab创建一维数组的具体操作方法
  13. SSM遇到的表单问题:The server cannot or will not process the request due to something that is perceived to b
  14. robot_marm catkin_make报错
  15. C语言怎么把单词拆成字母,如何用C语言切出汉语单词和英语单词混合字符串
  16. java题算工资_Java模版方法的小练习——工资系统
  17. 铜仁一中2021高考成绩查询,贵州铜仁第一中学2021年招生录取分数线
  18. 互联网公司的软件开发流程
  19. 交大计算机专硕研究生经验贴,交大软件工程专硕经验帖
  20. 涨握在线收评 | 沪指跌1.73%失守3000点 创两个月最大单日跌幅

热门文章

  1. c#开发Mongo笔记第五篇
  2. hdu 3657 最大点权独立集变形(方格取数的变形最小割,对于最小割建图很好的题)...
  3. JavaScript 类型的隐式转换
  4. petshop4.0 详解之七(PetShop表示层设计)
  5. C++ 出现异常“.... \debug_heap.cpp Line:980 Expression:__acrt_first_block==header“
  6. 上传文件时$_FILES为空,可能的原因及解决方法
  7. vs2015运行项目时出现“编译器失败,错误代码为 1”的解决方案
  8. Pycharm 加载pygame解决方案
  9. 【报告分享】中国隐私计算产业发展报告(2020-2021).pdf(附下载连恶疾)
  10. SIGIR 2020 | 知识图谱上推荐推理的模仿学习框架