CloudBridge服务简单入门
CloudBridge是SAE开发的VPN服务,开发者通过OpenVPN 客户端连接到CloudBridge之后,可以像使用本地服务一样使用SAE内网的一些服务,目前只有独享型MySQL可以只用。
1.CloudBridge介绍
1 SAE CloudBridge整体架构
CloudBridge包括了从外到内、内部以及从内到外的网络控制和安全隔离,从下图中可以看到,Controler负责各应用和资源间的网络流控制,而Forwarder则负责实际的代理转发。与某些IaaS中SDN不同的是,CloudBridge不依赖于特殊网络设备而实现在OS层,并且主要负责L2以上网络流控制。目前,项目中涉及VPC部分的Data Connection仍在开发中。完成后,将可以提供一套跨企业内外网的PaaS网络解决方案。
CloudBridge
2 服务限制
用户连接CloudBridge之后,CloudBridge中做了隔离,用户只能操作自己应用的数据。
CloudBridge对用户的带宽做了限制,带宽大小跟用户等级有关。
2.CloudBridge简单入门
由于该服务刚刚上线不久,相信很多小伙伴都很喜欢,但是又苦于没有教程。其实官方文档已经非常详细了,我这里只是在造个轮子而已。
1 初始化CloudBridge服务
非常简单,登陆你的SAE控制台,切换到CloudBridge服务,点击初始化即可。然后在控制台还可以查看accesskey和secretkey,待会有用。
cloudbridge
2 Window客户端
下载openVPN客户端,但是在国内呢,总是有一股神秘的力量阻挡着我们。这个不用担心,SAE的CloudBridge控制台已经可以下载了,我这里也会提供相应的安装包。不多说,下载后直接安装,我这里使用的是Window10测试,好了之后会在电脑桌面出现OpenVPN GUI客户端图标。
直接右键选择管理员打开,这时你可以在右下角任务栏看到openVPN的图标。但是右键点击却发现并没有connect的选项,这是为什么呢?
openVPN
原因就是没有配置文件,这时就要下载并且导入配置文件。
3 导入配置文件
在CloudBridge的控制台面板,下载配置文件,并且重新命名为client.ovpn,然后放到你的openVPN的安装目录下的config文件夹里面。这时你再右键一下即可出现connect选项
4 连接CloudBridge
很简单,点击connect选项,在弹出的对话框中输入用户名密码,用户名为应用的accesskey,密码为应用的secretkey,点击确定即可出现连接成功的提示。
CloudBridge
好了,现在你就已经成功连接上了CloudBridge服务,尽情使用吧。我们这里演示一下操作独享型MySQL服务。
3.独享型MySQL
1 新建MySQL实例
登陆SAE的控制台,切换到MySQL的面板,选择独享型MySQL。根据需要,初始化相应配置,这里选择微型的一主一从的实例
独享型MySQL
2 创建账号
初始化后SAE不会帮我们创建数据库账号,需要手动创建,该账号待会就是拿来连接使用的。
独享型mysql
3 创建数据库
同样,我们需要创建数据库,并且绑定用户,设置权限。
独享型mysql
好了,现在你就已经把SAE的独享型MySQL搬到你的本地环境中了,尽情使用吧。
4.使用CloudBridge连接独享型MySQL
1 MySQL控制台操作
这个需要你电脑上有安装MySQL。使用cmd切换到MySQL的bin目录,然后就可以使用常规命令连接独享型MySQL了
独享型MySQL连接
注意连接的时候那个主机是在控制台写着的,每个人的都不一样,然后端口是12150,用户名密码就是你刚才创建的账号。
做增删改查操作:
QQ截图20150915162234
QQ截图20150915162242
QQ截图20150915162420
2 Navicat操作
这个也是很简单,在控制台找到实例地址和端口,然后用你设置的账号和密码登陆即可。不过要注意的是,在连接的时候从库是只能查询的。
QQ截图20150915162606
插入和查询操作
QQ截图20150915162749
QQ截图20150915162908
可以看到,在连接从库的时候只能进行查询操作,而主库都可以
3 PHP程序操作
当然,数据库最好的还是使用程序来操作,当你做完了CloudBridge连接之后就相当于把独享型MySQL搬到了你的本地中。我写了一个类来操作:
/**
* SAE RDS本地操作类
* @data 2015-09-15
* @author summer
* @site http://www.xtwind.com
* @e-mail wenghang1228@me.com
*/
class SaeRds{/*** 定义主库实例名称*/private $masterName = null;/*** 定义从库实例名称*/private $slaveName = null;/*** 定义数据库用户名*/private $username = null;/** 定义数据库密码*/private $password = null;/** 定义数据库名*/private $dbName = null;/*** 全构造函数*/public function __construct($masterName = null, $slaveName = null, $username = null, $password = null){$this->masterName = $masterName;$this->slaveName = $slaveName;$this->username = $username;$this->password = $password;}/*** 魔术设置* @param string $name 属性名* @param string $value 属性值* @throws Exception* @return void*/public function __set($name, $value){if(property_exists(get_class(), $name)){$this->$name = $value;}else{throw new Exception("Property not exists"); }}/*** 魔术调用* @param string $name 变量名* @return string*/public function __get($name){return $this->$name ?: false;}/*** 获取主库PDO实例* @throws Exception* @return PDO*/public function getMaster(){if(isset($this->masterName)){return $this->connect($this->masterName);}throw new Exception("Master not defined"); }/*** 获取从库PDO实例* @throws Exception* @return PDO*/public function getSlave(){if(isset($this->slaveName)){return $this->connect($this->slaveName);}throw new Exception("Slave not defined"); }/*** 数据库连接* $param string $db 连接的数据库实例名称* @throws Exception* $return PDO*/private function connect($db){if(!$this->username | !$this->password | !$this->dbName){throw new Exception("Some message not defined");}$dsn = 'mysql:host='.$db.'.rds.sae.sina.com.cn;dbname='.$this->dbName.';port=12150';return new PDO($dsn,$this->username,$this->password);}
}
然后测试用例:/**
* @example 测试
*/
$t = new SaeRds();
try{$t->masterName = 'yourmastername';$t->slaveName = 'yourslavename';$t->dbName = 'summer';$t->username = 'yourusername';$t->password = 'yourpassword';$sql = 'select * from sum_user';$ret = $t->getMaster()->query($sql)->fetchAll();var_dump($ret);
}catch(Exception $e){var_dump($e->getMessage());
}
可以得到如下的结果:
QQ截图20150915172341
总结
感谢SAE提供这么优秀的平台!
作者博客:夏天的风
原文地址:CloudBridge服务简单入门
CloudBridge服务简单入门相关推荐
- python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门
1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...
- 基于vue-cli、elementUI的Vue超简单入门小例子
基于vue-cli.elementUI的Vue超简单入门小例子 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单 ...
- 分布式锁简单入门以及三种实现方式介绍(滴滴)
很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的 ...
- CQRS简单入门(Golang)
一.简单入门之入门 CQRS/ES和领域驱动设计更搭,故整体分层沿用经典的DDD四层.其实要实现的功能概要很简单,如下图. 基础框架选择了https://github.com/looplab/even ...
- python仿真搭建_mock搭建——python——搭建一个简单的mock服务——简单版本
1.无聊的背景.起源: 如今的业务系统越来越复杂庞大,各个功能直接的调用也是多如牛毛,但如果在联调的时候,恰好被调的接口正在开发,怎么办? 傻傻的等么,不存在的!这时会搭建一些server来进行moc ...
- Express(一) ——简单入门
Express(一) --简单入门 背景:参加的青训营项目,使用Express来实现后端,个人被分配到后端去.于是,简单速通了下Express.项目结束,回头写下笔记,沉淀一下. 个人博客:Expre ...
- Seneca :NodeJS 微服务框架入门指南
Seneca :NodeJS 微服务框架入门指南 原文:http://onmr.com/press/getting-started-seneca.html Seneca 是一个能让您快速构建基于消息的 ...
- Sers微服务快速入门-01.简介
微服务给我们的第一映像是分布式.架构复杂庞大,部署起来非常麻烦.其实并非如此,不同的架构选型必然带来不同的优点和缺点,没有一劳永逸的方法,配置简单是因为适用的功能场景简单.在项目或产品的实际开发中往往 ...
- Sers微服务快速入门-02.快速接入
微服务给我们的第一映像是架构复杂,部署起来麻烦.其实并非如此,不同的架构选型必然带来不同的优点和缺点,没有一劳永逸的方法,配置简单是因为适用的场景面窄.在项目或产品的实际开发中往往随着时间的推进需要实 ...
最新文章
- python上机实验报告读取文件_Python程序设计实验报告:实验八 文件
- javascript如何释放内存
- 嵌入式FreeRTOS系统,在中断中调用FreeRTOS系统的API函数
- vba遍历数组_VBA代码解决方案的第59讲内容:如何在代码运行时创建数组
- win10系统winsxs文件夹该如何删除
- 请求参数绑定集合类型
- go语言按行读取文件
- 一文了解MySQL的Buffer Pool
- 敏捷、TDD(测试驱动开发)、OO--前奏
- KmdKit4D 0.01正式版发布了(0.02版已放出)
- 浙江大学计算机程序设计能力考试(PAT)简介
- matlab直方图均衡化代码
- java游戏 麦克斯 狗,我的主角麦克斯----记南极大冒险中的狗狗们
- QT中使用以管理员权限启动一个进程
- Microsoft Visio 2013在安装过程中出错的一种解决方案
- 更改csv默认分隔符
- 不使用转换器,DWG转DXF能否快速完成呢?
- Paper Note - 基于高效数据流标记和跟踪的可精炼跨主机攻击调查
- 难忘的童年~~~~~~真的好怀念!
- 爬取沪深股票并找出最近1个月创出新高的股票
热门文章
- sqlserver 目录名称无效解决办法 在执行批处理时出现错误。错误消息为: 目录名无效
- Chrome插件-Talend API Tester
- nvidia-smi 输出“No devices were found
- RESA: Recurrent Feature-Shift Aggregator for Lane Detection (AAAI 2021)
- 统计过去一年A股涨停板
- 中文编程,最精致的python访客登记系统实例项目,微信机器人不再只当人工智障------05
- javaScript中arguments.callee知识点
- [MATLAB]逐步回归详解(stepwise使用指南)
- 易度文档管理系统功能特性之预览
- 软考项目管理师三年备课心得