Bluemix 之云数据库 ClearDB 原理与应用实践

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 随着科技的发展,企业对运营成本、开发部署周期、数据安全性可用性的要求不断提高,很多应用已经选择发布到云平台,数据库采用云端的数据库,有效地统一内存和存储,以加速服务器性能,以解决工作负载变动。重新获得可预测的计算基础架构以处理当前和未来的工作负载需求,当集成到现有计算基础架构上时,工作负载密度增加高达8倍。

随着科技的发展,企业对运营成本、开发部署周期、数据安全性可用性的要求不断提高,很多应用已经选择发布到云平台,数据库采用云端的数据库,有效地统一内存和存储,以加速服务器性能,以解决工作负载变动。重新获得可预测的计算基础架构以处理当前和未来的工作负载需求,当集成到现有计算基础架构上时,工作负载密度增加高达8倍。IT团队现在可以选择通过租赁资产在较少的服务器或云实例上整合工作负载,并避免在基础设施服务器,存储和运营成本上的花费。而且可以减少或消除对现有或未来企业许可证的需求。

为什么选择ClearDB?

ClearDB是一种更快,更强,更安全,更可靠的方式来获取数据到您的MYSQL应用程序,无论您(或您的应用程序)在世界哪里。

总体结构
ClearDB在故障的前提下设计,以便为您的MYSQL驱动的应用程序提供真正的高可用性和低延迟性能。
计划备份
您的数据库支持多个区域和多个时区,以确保您的数据可用。
您还可以使用备份管理工具创建即时备份或还原现有备份。
高度安全
无论您的数据是在数据库中,在线上还是备份中,都是加密的,以保持信息的安全。
我们不会对您的信息感兴趣。
您还可以通过SSL证书加密您的连接。
持续监控
我们的团队每周24小时监控您的数据库,每周7天,以确保它始终可用和安全。
简单有效的工具
我们的图形工具使您能够轻松地对重要数据库统计信息进行快速分析
我们还可以轻松访问只需点击鼠标即可恢复的备份。
简易管理API
直接挂接到ClearDB的管理API中,以自动执行备份操作并获取有关数据库的实时状态信息。

ClearDB工作原理

ClearDB在为您的应用程序提供完全冗余的解决方案,可以为中断服务,网络故障甚至自然灾害提供重要的地区,在多重复制MySQL配置中创建多主机和多主机。
您选择需要多少计算能力和存储空间,然后将其全部设置给您,以便您拥有最适合您需求的安全,强大和可靠的MySQL数据库。

在底层,ClearDB使用高级复制技术,高级集群技术和分层Web服务的组合,为您提供比平常“更智能”的MySQL数据库。
还使用混合二进制复制日志记录和自动递增偏移种子,以便您可以继续使用MySQL的非确定性和基于时间的函数,如UUID(),NOW()以及表中的自动递增键。


通讯和磁盘安全
可以使用由服务器和客户端证书签名的256位SSL加密来加密客户端和数据库节点之间的通信。
还加密了所有的数据库备份,以便在数据库出来之前保护数据的安全。

副本无处不在
ClearDB的master0master配置提供的所有副本都使用相同的二进制日志记录格式进行操作,并使您的数据库能够无限制地扩大所需的副本数。您可以在任何AWS可用区域或AZURE区域中拥有多个副本,以确保数据可用性。
ClearDB就在隔壁
ClearDB主控和副本节点被配置为紧邻应用程序,消除了延迟问题。
这使您能够利用云中的本地“私有”网络,这些网络比通过Internet运行数据库要快得多。

Bluemix 上的ClearDB

Bluemix 上的ClearDB Managed MySQL Database服务是由第三方提供的并接入的。

接入原理:

在技​​术上,为了向Bluemix添加服务,需要开发,托管和注册服务代理。
CloudFoundry定义了一个服务代理API,它定义了如何管理服务代理。
但是这些API并不是第三方直接使用的。
相反,IBM与AppDirect合作,允许开发人员只写一个服务代理并将其部署到各种平台:
“AppDirect提供了唯一的云服务交付平台,超过了最为成熟的按需服务分销渠道提供的功能,如Google应用市场,Salesforce Appexchange和Apple App Store。”
实现服务代理是简单明确的,实质上您只需要实现以下REST API:

  • 返回目录中显示的服务描述和计划
  • 创建一个新的服务实例:这通常是创建用户帐户,资源被保存等等。
  • 将服务实例绑定到(a)特定应用程序:这是将服务的凭据传递给应用程序的位置
  • 取消绑定和删除服务实例
  • 当从Bluemix调用服务的仪表板时,提供单点登录

创建 ClearDB 数据库服务

1、登录国际版 Bluemix 打开目录页面;

2、可以通过左侧的类别快速定位,找到 ClearDB Managed MySQL Database,点击它;


3、输入服务名称,或者可以保持默认的;

4、在左侧连接到下拉列表中选择要连接的Java应用程序;

提示:只有连接到一个应用程序,才能拿到服务的访问凭据。


5、点击创建按钮;

ClearDB 服务管理

服务创建成功后,会进入服务详细信息页面;如下图:


你可以点击右侧的菜单,查看文档,重命名服务或者删除服务。

点击:打开 CLEARDB MANAGED MYSQL DATABASE 仪表板进入ClearDB 服务的仪表板页面。

可以看到已有的数据库列表,如下图:

如果您想查看有关特定数据库的更多详细信息,请单击其名称。


向下滚动页面,可以看到:

管理您的数据库

如果要在ClearDB数据库中管理表,数据和其他设置,建议您使用常用的图形工具,如Oracle的MySQL Workbench,用于Mac OS X的Sequel Pro或Navicat。 您还可以使用任何捆绑的MySQL工具,如mysql和mysqldump命令行实用程序。 SSL证书

强烈建议您使用SSL加密与ClearDB的服务来加密您的应用程序和您的ClearDB数据库之间的通信。 您使用哪些证书取决于您正在使用的编程语言。 需要帮忙? 查看SSL连接指南,了解如何开始使用。


ClearDB 连接管理

进入服务详细信息页面,点击左侧菜单的连接,可以查看已经连接的应用程序或创建新的连接;


创建新的连接

点击右上角的“创建连接按钮”


选择一个已经存在的应用程序,然后点击“连接”按钮。

使用客户端工具管理ClearDB 数据库

应用程序和数据库服务已经创建完成了,并且我们选择将数据库服务连接到Java应用程序,这时我们可以打开Java应用程序的详细信息页面,获取数据库访问凭据;

1、点击左上角的菜单,选择仪表板,进入仪表板页面;


2、找到刚刚创建的应用程序,点击空白处;


3、点击左侧的“连接”,然后点击右侧的查看凭证;


4、复制凭证到一个文本文件中,方便使用;


完整的凭据示例:

{
  "cleardb": [
    {
      "credentials": {
        "jdbcUrl": "jdbc:mysql://us-cdbr-sl-dfw-01.cleardb.net/ibmx_ea6d0796680534e?user=b8370b2ea2c12b&password=08b457af",
        "uri": "mysql://b8370b2ea2c12b:08b457af@us-cdbr-sl-dfw-01.cleardb.net:3306/ibmx_ea6d0796680534e?reconnect=true",
        "name": "ibmx_ea6d0796680534e",
        "hostname": "us-cdbr-sl-dfw-01.cleardb.net",
        "port": "3306",
        "username": "b8370b2sea2sc12b",
        "password": "08b45s7asf"
      },
      "syslog_drain_url": null,
      "label": "cleardb",
      "provider": null,
      "plan": "cb5",
      "name": "ClearDB Managed MySQL Database-l0",
      "tags": [
        "Data Stores",
        "DBA",
        "(S) Cloud",
        "(P) Analytics",
        "Bluemix",
        "Platform",
        "ibm_dedicated_public",
        "Infrastructure",
        "Service",
        "data_management",
        "IT Operations",
        "web and app",
        "ibm_third_party"
      ]
    }
  ]
}

5、使用Navicat for MySQL 连接到ClearDB;


主机名或IP地址对应凭证中的:hostname;

6、新建查询,初始化数据表;


执行的SQL语句如下:

SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
--  Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
  `NAME` varchar(30) NOT NULL COMMENT '用户名',
  `PASSWORD` varchar(32) NOT NULL COMMENT '用户密码',
  `MOBILE` varchar(20) NOT NULL COMMENT '手机号码',
  `EMAIL` varchar(50) NOT NULL COMMENT '电子邮件',
  `STATUS` tinyint(4) NOT NULL DEFAULT '0' COMMENT '用户状态,默认为0,不可用,1为可用\r\n 0: 表示新建\r\n1:表示激活\r\n2:表示禁用\r\n3:表示删除\r\n',
  `TRUE_NAME` varchar(50) DEFAULT NULL COMMENT '真实姓名',
  `USER_CODE` varchar(50) DEFAULT NULL COMMENT '用户编码',
  `PHOTO` varchar(100) DEFAULT NULL COMMENT '头像相对路径',
  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '最后修改时间',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

-- ----------------------------
--  Records of `user`
-- ----------------------------
BEGIN;
INSERT INTO `user` VALUES ('1', 'admin', 'admin', '', '', '1', null, null, null, null, null);
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

在你已有的应用程序中使用ClearDB

要将您的应用程序使用的数据库改为ClearDB非常简单,您只需要修改数据库连接字符串就可以了。

1、修改jdbc.properties 文件,修改数据库链接凭证;

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://us-cdbr-sl-dfw-01.cleardb.net/ibmx_ea6d0796680534e?user=b8370b2ea2c12b&password=08ab4a57af
username=b8370ba2ea2c12b
password=08b457af
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000
#&character_set_server=utf8mb4&
jdbc链接字符串刚刚获取的凭证中已经给出;
2、本地运行服务测试;

访问:http://localhost:8080/ssmcleardb/webapi/user/findList.do  以看到下面的输出:


3、项目文件结构;


让你的应用在云上运行

1、打包应用程序,执行maven clear,maven install;

2、在项目的根目录创建应用程序清单文件;


内容如下:

applications:
- path: target/ssmcleardb.war
  memory: 512M
  instances: 1
  domain: mychinabluemix.net
  name: ssmcleardb
  host: ssmcleardb
  disk_quota: 1024M
path: target/ssmcleardb.war 就是应用程序打包后输出的路径名称;

name 就是应用程序的名称;

host 是一个二级域名的前缀,发布成功之后我们可以通过它来访问自己的应用;
3、下载安装CF命令行工具

具体细节请参考我的其它文章,如:Java中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具

也可以参考文末给出的相关视频:一个简单应用程序的上云过程

4、发布应用程序



5、发布成功,访问测试:


我这里是将应用程序发布到了Bluemix 中国版上。

到这里可以看出,我没有使用刚刚在Bluemix上创建的Java应用程序名称,而是通过创建一个应用程序清单文件来创建了一个应用程序。

不要试图访问我发布的,做点小动作,偷笑

我提供了所有必要代码,可以到Github下载:https://github.com/ivu4e/ssmcleardb

结束语

通过本实践我们可以发现:基于 Bluemix 提供的云应用程序容器以及数据库服务,将现有的应用程序部署到云平台上,以及将数据库切换为云平台上的数据库服务,都非常的简单方便,您不需要做大的改动,就可以很轻松的拥有云平台带来的优势。

不需要担心扩展机架以吸收不断增长的服务器功率负载具有的功率和冷却​​限制。

并避免在基础设施服务器,存储和运营成本上的花费

相关学习资源

Bluemix 中国版 云服务登录: https://console.chinabluemix.net/

Bluemix 国际版 云服务登录: https://console.ng.bluemix.net/

Bluemix资源中心(中文):https://www.ibm.com/developerworks/cn/cloud/bluemix/
学习视频(中文):http://www.youku.com/playlist_show/id_22801997.html
专家答疑(中文) : https://developer.ibm.com/cn_answers

自学课程系列(英文): https://developer.ibm.com/courses/all-courses/category/learning-path/
Bluemix Q&A (英文): http://stackoverflow.com/questions/tagged/ibm-bluemix

相关视频

云服务助力Java 应用程序开发及部署


一个简单应用程序的上云过程


基于云应用的公众号后台程序开发


====================文档信息==================

版权声明:非商用自由转载-保持署名-注明出处

署名(BY) :testcs_dn(微wx笑)

文章出处:[无知人生,记录点滴](http://blog.csdn.NET/testcs_dn)

目录
相关文章
|
8月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
11月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
9月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
476 8
|
9月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
11月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
10月前
|
存储 人工智能 数据库
视图是什么?为什么要用视图呢?数据库视图:定义、特点与应用
本文三桥君深入探讨数据库视图的概念与应用,从定义特点到实际价值全面解析。视图作为虚拟表具备动态更新、简化查询、数据安全等优势,能实现多角度数据展示并保持数据库重构的灵活性。产品专家三桥君还分析了视图与基表关系、创建维护要点及性能影响,强调视图是提升数据库管理效率的重要工具。三桥君通过系统讲解,帮助读者掌握这一常被忽视却功能强大的数据库特性。
2600 0
|
10月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
9月前
|
弹性计算 关系型数据库 数据库
云数据库RDS数据库迁移上云
阿里云RDS是一种安全稳定、高性价比的在线数据库服务,支持弹性伸缩,帮助用户轻松部署与扩展数据库。提供实例创建、白名单设置、数据库与账号管理、便捷连接等功能,简化运维操作,保障数据安全。
|
运维 数据库 数据库管理
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
245 3