阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 22735阅读
  • 14回复

[OCS]【菜鸟先飞】阿里云OCS入门教程

级别: 论坛版主
发帖
194
云币
484
— 本帖被 随歌 从 开放缓存服务OCS 复制到本区(2014-06-23) —
一直有同学反映说感觉阿里云的OCS(开放缓存服务)应该是很有用,但是不知道究竟该怎么用,今天我们就开个帖,给刚上手的同学们介绍下阿里云的OCS。 咱们这个入门帖子慢慢来,期间如果有已经玩转了OCS的大牛愿意也上来分享一下自己的体会,我们也欢迎。 y4envjl 0  
yil{RfBEr_  
*M KVm)Iv  
俗话说“笨鸟先飞”,但我认为在阿里云看来用户没有什么“笨鸟” ,顶多是还没有成长为骨灰级大神之前的“菜鸟”,所以咱们这个帖子就叫做“菜鸟先飞”。 5(DCq(\P*  
本帖最近评分记录: 1 条评分 云币 +1
fqgj 云币 +1 很有帮助,如果不需要积分就好了 2015-01-20
“Civility is not a sign of weakness, and sincerity is always subject to proof.”  --- J.F.K
级别: 论坛版主
发帖
194
云币
484
只看该作者 沙发  发表于: 2014-06-20
首先“缓存”Cache这个东西是干什么的,我们应该先有些基本的了解。要是不太明白的可以看看网上的解释:http://baike.baidu.com/view/907.htm ~/gqXT">  
6IeHZ)jGj  
aIJ[K  
简单讲,阿里云OCS提供的功能就是提供对热点数据的高速访问。在使用OCS之前(或者在使用任何一种缓存服务之前),我们都应该明白关于缓存的这么几点: c)lMi}/  
  • 缓存里的数据不是持久化保存的,也就是说它像是电脑里的内存,而不像硬盘;我们不能指望OCS里的数据一直保存不丢失。如果你真的需要存储持久化的数据,也许你应该出门左转找阿里云OSS(开发存储服务);
tohYwXN  
  • 缓存里存的应该是“热点”数据。遵循常常出现的“20-80法则”,通常程序应用中都有一定比例的数据常常被请求访问,这就是所谓的热点数据,OCS正是为这种数据设计存在的。假定我们的程序中有100个数据,每次访问这些数据的概率完全是均匀分布的1/100,那么使用缓存的效果就不会太好,因为这其中不存在热点数据。
o3%+FWrVTS  
9I.="b=J)  
  • 数据逐出。我们可以决定哪些数据是热点数据被放到缓存当中,但是如果我们的缓存容量不够大,这些热点数据中某些最近较少被用到的数据还是会被“挤出去”,这种行为叫做数据逐出。如果想减少出现这种情况,我们可以购买更高容量的OCS。
N )&3(A@  
h!MZ 6}zb)  
[ 此帖被唐翰在2014-06-21 17:24重新编辑 ]
“Civility is not a sign of weakness, and sincerity is always subject to proof.”  --- J.F.K
级别: 论坛版主
发帖
194
云币
484
只看该作者 板凳  发表于: 2014-06-20
        在开始使用之前,关于阿里云OCS,我们还需要知道以下这些事: xW!2[.O5H  
  • 阿里云OCS仅支持阿里云内网访问,不支持公网访问。也就是说,我们用办公室或者家里的电脑(都属于公网)是无法连上阿里云OCS的。为什么会这样呢?因为缓存服务的根本目标是要提供低延迟的高速访问,而从公网电脑来连接OCS服务器的场景下,公网的网络环境是不可控的,可能出现延迟很高甚至断连接的情况,这使得缓存服务无法保证“高速、低延迟”的基本特性,所以阿里云OCS是不支持公网直接访问的。如果觉得高延迟的情况对于我们的应用也能接受,那么我们应该去选择阿里云其他的产品(比如OSS开放存储服务),而不应该选择OCS缓存服务。
[N'YFb3"O  
yM=% a3  
  • 阿里云OCS需要与ECS(阿里云服务器)配合使用,而且只能与本地区节点的ECS连通。这一点与上一条相关。OCS只能从阿里云内网访问,也就是说我们只能从阿里云ECS上才能访问并使用OCS服务。所以我们在官网购买OCS的时候,会看到提示信息说需要至少有一台ECS才能买OCS。另外,阿里云ECS是分地区节点的,比如北京、杭州、青岛等,我们在购买OCS缓存的时候也要选相应的地区节点。北京的ECS只能访问北京的OCS,而不能访问杭州或青岛的OCS。
MCjf$pZN]  
$0+AR)  
  • 阿里云OCS是按购买量收费的,而不是按使用量收费。这点需要提醒新同学们注意,在我们购买了OCS缓存之后,计费就已经开始了,即使我们还没有真正使用缓存。也就是说,我们买了1G的OCS缓存后,即使目前使用量为0,系统也会按照1G的标准来计费。所以我们在购买OCS的时候,要选取适合我们业务数据需要的缓存档位。当然了,阿里云OCS也提供在线升降缓存容量的功能。也就是说,如果我们在使用了一段时间之后,发现购买的OCS缓存不够用了(或者缓存使用量太低),我们可以在线的对已有的OCS实例进行升档(或者降档),而OCS缓存服务不会被中断。
6;"jq92in*  
3g0[( ;  
  • 阿里云OCS对于存贮的对象大小是有限制的。缓存通常对其内部存储的数据尺寸是有限制的,阿里云OCS也一样。目前OCS支持存储的数据对象的上限是1,000,000Byte。如果要存的值超过这个限制,我们应该考虑把数据压缩,或从逻辑上分成不同键存储的几个值。
CcG{+-= H)  
AKzhal!  
[ 此帖被唐翰在2014-06-21 17:26重新编辑 ]
“Civility is not a sign of weakness, and sincerity is always subject to proof.”  --- J.F.K
级别: 论坛版主
发帖
194
云币
484
只看该作者 地板  发表于: 2014-06-21
现在我们开始在阿里云官网上购买OCS实例  http://buy.aliyun.com/ocs  首先我们需要已经有了一台阿里云ECS,否则我们无法在这个页面成功购买OCS。 ;W2Rl%z88  
Js0hlWu  
H]<@\g*l@P  
购买的第一步,我们先要确定选择买哪个地区的OCS;这个很重要,如上面所说,如果我们的ECS是属于北京,而我们在这里购买了杭州的OCS,那么这两者是无法配合协同工作的。所以,在购买OCS的时候一定要选择应用服务器ECS所在地区的OCS <ZXK}5SZ#  
wyC1M  
^)i1b:4  
下一步是要选择OCS缓存容量。我们要购买多大的缓存,这个取决于我们对自身业务应用中热点数据总量大小的判断。如果一时难以准确判断数据量,也不用担心:我们可以先买一个大致容量的OCS(比如1GB),随后在使用过程中,通过OCS控制台提供的监控功能,我们可以了解到目前OCS缓存的使用量等数据,然后可以自主的调整所需的缓存量,购买更大的缓存(比如升到5GB)或者减少已购的缓存量(比如降到512MB),阿里云会根据我们选择的新配置来调整对应的收费。 hTS?+l  
YkJnZ_k/P  
LO@='}D=  
此外在选择缓存容量的时候,要知道不同容量的缓存档位对应着不同的性能配额,具体来说包括两个指标:吞吐量带宽每秒请求处理数(QPS)。比如以现在的配额标准,1GB的OCS缓存对应5MB/sec的吞吐量带宽和3000次/sec的请求处理峰值。当我们使用OCS的时候,如果数据量传输的带宽超过了5MB/s, 或者每秒的请求数超过了3000次,都会触发性能配额控制机制,导致某些请求无法返回正常结果。 L; (J6p]h  
tEl_a~s*3?  
(;T g1$  
在确定了地区和缓存容量之后,我们就可以直接下单购买OCS了。 Sf"]enwB  
LmjzH@3  
RS9mAeX4h  
d'UCPg<Y  
grbUR)f<?-  
[ 此帖被唐翰在2014-06-21 18:24重新编辑 ]
“Civility is not a sign of weakness, and sincerity is always subject to proof.”  --- J.F.K
级别: 论坛版主
发帖
194
云币
484
只看该作者 4楼 发表于: 2014-06-21
在成功购买OCS之后,我们的联系邮箱和手机都会收到OCS创建成功的通知,里面会包括OCS的实例ID和初始密码(关于密码的用处后面会讲到)。 :OT~xU==H  
zZ@]Kq;.s  
:FcYjw  
我们现在登录OCS控制台, http://ocs.console.aliyun.com/ 就可以看到已经购买到的OCS实例列表。 kmXpj3  
Y]!8Ymuww@  
Ou/JN+2A  
bL v_<\:m  
w 4-E@>%  
3\j{*f$J  
J{<,V\t)  
在列表页面上对应OCS实例的后面点击“管理”,就可以进入该OCS实例的详情页,看到更多的详细信息。 ?0QoYA@.$  
mF7T=pl  
@62QDlt;  
x=7hOI5u  
“Civility is not a sign of weakness, and sincerity is always subject to proof.”  --- J.F.K
级别: 论坛版主
发帖
194
云币
484
只看该作者 5楼 发表于: 2014-06-22
我们现在已经有了一个OCS缓存实例,现在是时候试玩OCS了。要使用OCS就要写一点程序代码,不过不用担心,我们在这里采用“Happy-Path”的方法,从最简单的操作开始,让新上手的菜鸟们能马上就有一个能调用OCS缓存服务的程序。 Z+FJ cvYx  
| [P!9e  
X8y&|uH  
OCS提供缓存服务,它并不要求我们的程序是哪种语言来写的。我们这里先以Java程序为例,写一个最简单的“Hello World”。(其他编程语言的例子,我们随后附上。)  w8$8P  
5_0Eh!sx  
'\=aSZVO  
第一步,登录你的阿里云ECS服务器,在上面安装Java JDK和你常用的IDE(比如Eclipse)。一定要记得我们之前说过的,只有在阿里云内网的ECS服务器上,才能访问我们的OCS实例。所以,用家里或是公司的电脑执行下面的代码示例是看不到结果的。
Java JDK和Eclipse都很容易从网上找到下载,比如 http://download.eclipse.org/ 或者 http://www.onlinedown.net/soft/32289.htm
}-!0d*I  
kp LDK81I  
x7>' 1  
第二步,在把Java开发环境准备好了之后,下载第一个代码示例(Sample-Code-1 OcsSample1.zip (2 K) 下载次数:265 ),直接把里面的Java代码复制到我们的Eclipse Project里面去。这时候我们的代码是编译不成功的,因为要想调用OCS缓存服务还需要一个第三方提供的jar包。这个jar包可以在这里找到(http://help.aliyun.com/view/11108324_13444507.html )或者直接在这里下载。添加这个jar包之后,代码就能编译通过了。 K#tT \  
1Sx2c  
"V}WV!w  
yIA- +# r[  
B[epI3 R  
第三步,在Eclipse里面打开刚下载的OcsSample1.java,我们要根据自己的OCS实例信息修改几个地方。 6 -N 442  
;y/&p d+  
-LhO </l  
        我们每个人买到的OCS实例的ID都是不重复的,其对应的阿里云内网地址也是独一无二的,这些信息都在OCS控制台上显示出来。我们在同自己的OCS实例建立连接的时候,需要根据这些信息修改OcsSample1.java中的对应地方。 /R!:ll2  
GO2mccIB  
T1_O~<  
         public static void main(String[] args) {   r roI  
                   QVJq%P  
                   final String host = "b2fd2f89f49f11e3.m.cnqdalicm9pub001.ocs.aliyuncs.com"; //控制台上的“内网地址” 3f@@|vZF  
                   final String port ="11211";       //默认端口 11211,不用改 n 9PYZxy  
                   final String username = "b2fd2f89f49f11e3"; //控制台上的“访问账号” j4k\5~yzS  
                   final String password = "my_password"; //邮件或短信中提供的“密码” _(l?gj  
                   …… …… …… nm Y_)s  
lE'3UqK  
-Aaim`06bv  
       信息修改完毕,我们可以运行自己的程序了。运行main函数,我们会在Eclipse下面的console窗口看到下面这样的结果(请忽略可能出现的红色INFO调试信息): 9kHVWDf  
1-0tG+  
OCS Sample Code f$ 9O0,}%O  
Set操作完成! }IEwGoDwNs  
Get操作: Open Cache Service,  from www.Aliyun.com
    OK,搞定!我们已经成功的连接上了阿里云的OCS并且调用缓存服务成功,就这么简单。
[ 此帖被唐翰在2014-06-22 16:57重新编辑 ]
“Civility is not a sign of weakness, and sincerity is always subject to proof.”  --- J.F.K
级别: 论坛版主
发帖
194
云币
484
只看该作者 6楼 发表于: 2014-06-22
我们已经成功运行了第一个调用阿里云OCS缓存服务的Sample程序OcsSample1.java,现在我们看看这个程序里都做了什么。       {Jbouj?V!  
B:)PUBb  
                           …… …… ……
w{8O$4 w  
%Ev)Hk  
                            System.out.println("OCS Sample Code"); hy&WG&qf  
                             pk8`suZ  
                            //向OCS中存一个key为"ocs"的数据,便于后面验证读取数据,
HIGTo\]Z  
                            //这个数据对应的value是字符串 Open Cache Service,  from www.Aliyun.com PGd?c#v#  
                            OperationFuture future = cache.set("ocs", 1000," Open Cache Service,  from www.Aliyun.com"); y3XR:d1cg  
jXPf}{^  
                           //向OCS中存若干个数据,随后可以在OCS控制台监控上看到统计信息 <) cJz  
                            for(int i=0;i<100;i++){ C5,\DdCX,  
                                String key="key-"+i; Tuz~T _M  
                                String value="value-"+i; |zbM$37 ?k  
^*G UcQ$  
                                //执行set操作,向缓存中存数据 '}l7=r   
                                cache.set(key, 1000, value); ~@#s<a,%;  
                            } _TwE ym.V  
f4O}WU}l{s  
                            System.out.println("Set操作完成!"); "M;[c9  
lT?Vt`==~M  
                            future.get();  //  确保之前(cache.set())操作已经结束 BN&eU'Dl]  
B.A;1VE5  
                        //执行get操作,从缓存中读数据,读取key为"ocs"的数据 vYybQ&E/  
                            System.out.println("Get操作:"+cache.get("ocs")); ux8K$$$  
                           …… …… …… i"0*)$ h W  
6W< Ig;  
}#q0K  
从这些代码中可以看出: _WGWU7h  
1. 我们在建立与OCS缓存服务器的连接后,先是向缓存中存(set)了一个“key-value”(键值对)形式的数据,这个数据的key是字符串“ocs”,其对应的value也是字符串; y*Gq VA[  
2. 接着我们继续向缓存中存(set)了100个其他简单的“key-value”数据。 |H(i)yu"5'  
3. 最后我们进行功能验证。根据之前给定的key,从缓存中获取(get)其对应的value:也就是输入字符串“ocs”,缓存给我们返回value对应的字符串。 ]n! oa  
' %&-`/x  
Z,-J tl  
以上的步骤中,1与3是相对应的,我们只有先向缓存中set了某个数据,后面才能从缓存中get到这个数据。 HBNX a  
d(j g "@  
Jt:)(&-t   
步骤2中程序向缓存set了100个数据,是为了从另一个方面进行验证。我们回到阿里云OCS控制台,打开“实例详情”页,在“实例监控”的部分点击刷新,会看到其中一些监控项的值已经发生了变化(注:监控信息的刷新可能存在数秒的延迟), 其中的“Key的个数”已经变成了101,也就是说我们程序已经成功地向OCS缓存中存放了101个数据。 CHi t{ @9  
[ 此帖被唐翰在2014-06-22 18:56重新编辑 ]
“Civility is not a sign of weakness, and sincerity is always subject to proof.”  --- J.F.K
级别: 小白
发帖
1
云币
1
只看该作者 7楼 发表于: 2014-07-06
Re【菜鸟先飞】阿里云OCS入门教程
( ^_^ )不错嘛,很好
级别: 码农
发帖
239
云币
530
只看该作者 8楼 发表于: 2014-07-07
好。
级别: 菜鸟
发帖
79
云币
101
只看该作者 9楼 发表于: 2014-07-08
Re【菜鸟先飞】阿里云OCS入门教程
指导了那么多 真不错 收藏了  谢谢
级别: 小白
发帖
1
云币
1
只看该作者 10楼 发表于: 2014-08-30
Re【菜鸟先飞】阿里云OCS入门教程
     很不错的教程
级别: 新人
发帖
1
云币
2
只看该作者 11楼 发表于: 2015-08-22
为什么我购买了开放缓存服务OCS,但是控制台说我还没开通呢?
为什么我购买了开放缓存服务OCS,但是控制台说我还没开通呢?而且订单管理中也显示已支付!
级别: 新人
发帖
9
云币
16
只看该作者 12楼 发表于: 2015-08-26
Re【菜鸟先飞】阿里云OCS入门教程
受教了~~~!!
级别: 新人
发帖
7
云币
12
只看该作者 13楼 发表于: 2015-10-15
Re【菜鸟先飞】阿里云OCS入门教程
进来学习一下
级别: 新人
发帖
1
云币
2
只看该作者 14楼 发表于: 2015-12-07
Re【菜鸟先飞】阿里云OCS入门教程
学习学习~这个究竟有什么用
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)