﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-decker502-文章分类-分布式</title><link>http://www.cppblog.com/decker502/category/13688.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 29 Apr 2010 19:29:06 GMT</lastBuildDate><pubDate>Thu, 29 Apr 2010 19:29:06 GMT</pubDate><ttl>60</ttl><item><title>收集的一些分布式资源</title><link>http://www.cppblog.com/decker502/articles/113955.html</link><dc:creator>decker</dc:creator><author>decker</author><pubDate>Thu, 29 Apr 2010 07:17:00 GMT</pubDate><guid>http://www.cppblog.com/decker502/articles/113955.html</guid><wfw:comment>http://www.cppblog.com/decker502/comments/113955.html</wfw:comment><comments>http://www.cppblog.com/decker502/articles/113955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/decker502/comments/commentRss/113955.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/decker502/services/trackbacks/113955.html</trackback:ping><description><![CDATA[http://hi.baidu.com/jrckkyy<br><img src ="http://www.cppblog.com/decker502/aggbug/113955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/decker502/" target="_blank">decker</a> 2010-04-29 15:17 <a href="http://www.cppblog.com/decker502/articles/113955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cassandra 的集群 测试</title><link>http://www.cppblog.com/decker502/articles/113631.html</link><dc:creator>decker</dc:creator><author>decker</author><pubDate>Mon, 26 Apr 2010 11:52:00 GMT</pubDate><guid>http://www.cppblog.com/decker502/articles/113631.html</guid><wfw:comment>http://www.cppblog.com/decker502/comments/113631.html</wfw:comment><comments>http://www.cppblog.com/decker502/articles/113631.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/decker502/comments/commentRss/113631.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/decker502/services/trackbacks/113631.html</trackback:ping><description><![CDATA[http://blog.chinaunix.net/u3/93118/showart_2215041.html<br><br><a href="http://incubator.apache.org/cassandra/" target="_blank">Cassandra</a> <br>
Cassandra的主要特点就是它<span style="color: #000102; font-weight: bold;">不是一个数据库</span>，而是由一堆数据库节点共同构成的一个<span style="color: #000102; font-weight: bold;">分布式网络服务</span>，对Cassandra的一个<span style="color: #ff0102;">写</span>操作，会
被<span style="color: #ff0102;">复制</span>到其他节点上去，对Cassandra的<span style="color: #ff0102;">读</span>操作，也会被<span style="color: #ff0102;">路由</span>到某个节点上面去读取。对于一个Cassandra群集来说，扩展性能是比较简单的事
情，只管在群集里面添加节点就可以了。我看到有文章说Facebook的Cassandra群集有超过100台服务器构成的数据库群集。<br><br>本文目的 是 <span style="font-weight: bold;">写-复制</span> 和 <span style="font-weight: bold;">读-路由 </span>的功能测试<span style="font-weight: bold;"> </span>。<br><br>0. 环境<br>&nbsp;* java-1.6 <br>&nbsp;* apache-cassandra-0.6.0<br>&nbsp;* 服务器 47 , 207&nbsp; ( 目前测试服务器少，请大家 谅解。后面后添加多台 测试结果也会完善 )<br><br>1. <span style="font-weight: bold;">测试</span><br>1.1 配置&nbsp; （具体 可以 google<span style="font-weight: bold;"> &lt;</span>安装和配置 Cassandra&gt; ）<br>&nbsp;* 47 和 207 服务配置都修改 -$&gt; vim conf/storage-conf.xml <br>
<table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td>
            <h4 style="margin: 15px auto 2px; padding: 0px; font-size: 13px; font-weight: bold; color: #333333;"> <span style="font-weight: normal;">1.1.1 配置集群节点信息</span></h4>
            <p style="margin: 5px; line-height: 150%;"><code><span style="color: #000000;"><span style="color: #0000cc;">&lt;</span>Seeds<span style="color: #0000cc;">&gt;</span><br>
            &nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000cc;">&lt;</span>Seed<span style="color: #0000cc;">&gt;</span>192<span style="color: #0000cc;">.</span>168<span style="color: #0000cc;">.</span>102<span style="color: #0000cc;">.</span>47<span style="color: #0000cc;">&lt;</span><span style="color: #0000cc;">/</span>Seed<span style="color: #0000cc;">&gt;</span><br>
            &nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000cc;">&lt;</span>Seed<span style="color: #0000cc;">&gt;</span>192<span style="color: #0000cc;">.</span>168<span style="color: #0000cc;">.</span>102<span style="color: #0000cc;">.</span>207<span style="color: #0000cc;">&lt;</span><span style="color: #0000cc;">/</span>Seed<span style="color: #0000cc;">&gt;</span><br>
            <span style="color: #0000cc;">&lt;</span><span style="color: #0000cc;">/</span>Seeds<span style="color: #0000cc;">&gt;</span><br>
            1.1<span style="color: #0000cc;">.</span>2 配置集群节点之间交互的监听地址<br>
            直接留空即可：<br>
            <span style="color: #0000cc;">&lt;</span>ListenAddress<span style="color: #0000cc;">&gt;</span><span style="color: #0000cc;">&lt;</span><span style="color: #0000cc;">/</span>ListenAddress<span style="color: #0000cc;">&gt;</span><br>
            </span></code><code><span style="color: #000000;">1.</span></code><code><span style="color: #000000;">1<span style="color: #0000cc;">.</span>3 配置Thrift Server监听的地址<br>
            直接留空即可：<br>
            <span style="color: #0000cc;">&lt;</span>ThriftAddress<span style="color: #0000cc;">&gt;</span><span style="color: #0000cc;">&lt;</span><span style="color: #0000cc;">/</span>ThriftAddress<span style="color: #0000cc;">&gt;</span><br>
            </span></code><code><span style="color: #000000;">1.</span></code><code><span style="color: #000000;">1<span style="color: #0000cc;">.</span>4 配置集群的名称<br>
            每一个集群的名称都应该是不用的<br>
            <span style="color: #0000cc;">&lt;</span>ClusterName<span style="color: #0000cc;">&gt;</span>gpcuster<span style="color: #0000cc;">.</span>cnblogs<span style="color: #0000cc;">.</span>com<span style="color: #0000cc;">&lt;</span><span style="color: #0000cc;">/</span>ClusterName<span style="color: #0000cc;">&gt;</span><br>
            </span></code><code><span style="color: #000000;">1.</span></code><code><span style="color: #000000;">1<span style="color: #0000cc;">.</span>5 开启节点自动加入集群的功能<br>
            <span style="color: #0000cc;">&lt;</span>AutoBootstrap<span style="color: #0000cc;">&gt;</span>true<span style="color: #0000cc;">&lt;</span><span style="color: #0000cc;">/</span>AutoBootstrap<span style="color: #0000cc;">&gt;</span><br>
            </span></code><code><span style="color: #000000;">1.</span></code><code><span style="color: #000000;">1<span style="color: #0000cc;">.</span>6 配置数据的备份数 (<span style="color: #ff0102;">特别注意</span>这里配置为 1 就是 单机本地存储，其他机器路由取值 )<br>
            <span style="color: #0000cc;">&lt;</span>ReplicationFactor<span style="color: #0000cc;">&gt;</span><span style="color: #ff0102; font-weight: bold;">1</span><span style="color: #0000cc;">&lt;</span><span style="color: #0000cc;">/</span>ReplicationFactor<span style="color: #0000cc;">&gt;</span><br>
            </span></code></p>
            </td>
        </tr>
    </tbody>
</table>
<br><br>1.2 服务启动( <span style="font-weight: bold; color: #0080ff;">特别注意 : 服务器 的时间 要 同步 date&nbsp;</span> )<br>&nbsp; 207-serv$&gt; ./bin/cassandra -f <br>&nbsp;&nbsp; 47-serv$&gt; ./bin/cassandra -f <br><br><br>1.2.0 先简单的 语法介绍 ( get , set , del )<br>
&nbsp;set Keyspace1.Standard2['jsmith']['first'] = 'John'<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \_ key&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \_ value<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \_ column<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \_ keyspace&nbsp; \_ column family<br><br>1.3 测试&nbsp; （ 单机 结果 <span style="font-weight: bold;">路由 </span>）<br><br>&nbsp;1.3.1 客户端启动<br>&nbsp; 207-cli$&gt;./cassandra-cli --host 192.168.102.207 --port 9160<br>&nbsp;&nbsp; 47-cli$&gt;./cassandra-cli --host 192.168.102.47 --port 9160<br><br>&nbsp;1.3.2 : 207 insert 数据 ( 207 insert 结果<span style="color: #ff0102;">成功</span>! )<br>&nbsp; 207-cli$&gt; set Keyspace1.Standard2['jsmith']['first'] = 'John'<br>&nbsp; 207-cli$&gt; get Keyspace1.Standard2['jsmith']['first']&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; (column=first, value=John, timestamp=1271303623077000)<br>&nbsp;1.3.3 47 路由 数据 查看 ( 47 路由 查询 数据<span style="color: #ff0102;">成功</span> )<br>&nbsp; 47-cli$&gt;&nbsp; get Keyspace1.Standard2['jsmith']['first']&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; (column=first, value=John, timestamp=1271303623077000)<br>&nbsp; <br>&nbsp; 207-服务器$&gt; &lt;ctrl+c&gt; 关闭 207 服务器 <br>&nbsp; 47-cli$&gt;&nbsp; get Keyspace1.Standard2['jsmith']['first']&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009999;">#已经路由不到 207 取得结果，并且 第一次查询速度非常 慢 ，性能测试有待注意</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exception null <br>&nbsp; 207-服务器$&gt; ./bin/cassandra -f&nbsp; #启动 <br>&nbsp; 207-cli$&gt;<span style="color: #009999;"> # 需要重启 要不，什么都取不到</span><br>&nbsp; 47-cli$&gt;&nbsp; get Keyspace1.Standard2['jsmith']['first']&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009999;">#又能正常 取得</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; (column=first, value=John, timestamp=1271303623077000)<br><br>&nbsp;1.3.4 47 路由修改 (&nbsp; <span style="color: #ff0102;">成功</span> )<br>&nbsp;&nbsp;&nbsp; 47-cli$&gt;&nbsp; set Keyspace1.Standard2['jsmith']['first'] = '<span style="font-weight: bold;">liukaiyi</span>'<br>&nbsp;&nbsp;&nbsp; 47-cli$&gt;&nbsp; get Keyspace1.Standard2['jsmith']['first'] <br>&nbsp;&nbsp;&nbsp; <span style="color: #ff0102; font-weight: bold;">#如果 2台服务器时间不同步，数据 可能就没有修改 ，根据 timestamp展现最后一条数据 </span><span style="color: #009999; font-weight: bold;"></span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; (column=first, value=<span style="font-weight: bold;">liukaiyi</span>, timestamp=1271303623077000)<br><br>1.4 测试&nbsp; （ 双机 结果 <span style="font-weight: bold;">复制 </span>）<br>&nbsp; 1.4.1 47 207 都 修改配置<code><span style="color: #000000;"> ,</span></code><code><span style="color: #000000;"> 配置数据的备份数 (<span style="color: #ff0102;">特别注意</span>这里配置为 2 就是都会存 数据)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="color: #0000cc;">&lt;</span>ReplicationFactor<span style="color: #0000cc;">&gt;</span><span style="color: #ff0102; font-weight: bold;">2</span><span style="color: #0000cc;">&lt;</span><span style="color: #0000cc;">/</span>ReplicationFactor<span style="color: #0000cc;">&gt;<br></span></span></code>&nbsp; 1.4.2 服务重启启动<br>
&nbsp; ./bin/cassandra -f <br><code><span style="color: #000000;"><span style="color: #0000cc;"><span style="color: #000102;">&nbsp; 1.4.3 &nbsp;</span></span></span></code> 客户端启动<br>
&nbsp; 207-cli$&gt;./cassandra-cli --host 192.168.102.207 --port 9160<br>
&nbsp;&nbsp; 47-cli$&gt;./cassandra-cli --host 192.168.102.47 --port 9160<code><span style="color: #000000;"><span style="color: #0000cc;"><span style="color: #000102;"></span><br></span></span></code>&nbsp; 1.4.4&nbsp;&nbsp; 测试<br>&nbsp; 207-cli$&gt; get Keyspace1.Standard2['jsmith']['first']&nbsp;<span style="color: #009999;"> </span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; (column=first, value=<span style="color: #000102; font-weight: bold;">John</span>, timestamp=1271304586125000)<br>&nbsp; 47-cli$&gt; get Keyspace1.Standard2['jsmith']['first']&nbsp;&nbsp;<span style="color: #009999;"> #有一小段等待时间</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; (column=first, value=<span style="color: #000102; font-weight: bold;">John</span>, timestamp=1271304586125000)<br>&nbsp; 207-服务器$&gt; &lt;ctrl+c&gt; 关闭 207 服务器 <br>&nbsp; 47-cli$&gt; get Keyspace1.Standard2['jsmith']['first']&nbsp; <span style="color: #009999;">#结果 还能查询，表明有<span style="color: #990102; font-weight: bold;">同步复制</span></span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; (column=first, value=<span style="color: #000102; font-weight: bold;">John</span>,
timestamp=1271304586125000)<br>&nbsp; 207-服务器$&gt; ./bin/cassandra -f&nbsp; #启动 <br><br>1.4.5 同步修改 (&nbsp; <span style="color: #ff0102;">成功</span> )<br>&nbsp; 47-cli$&gt; set Keyspace1.Standard2['jsmith']['first'] = '<span style="font-weight: bold;">liukaiyi</span>'<br>&nbsp; 47-cli$&gt; get Keyspace1.Standard2['jsmith']['first']&nbsp; <span style="color: #009999;"></span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; (column=first, value=<span style="font-weight: bold;">liukaiyi</span>,
timestamp=1271304586125000)<br>&nbsp; 207-cli$&gt; set Keyspace1.Standard2['jsmith']['first'] = 'liukaiyi_1' <br>&nbsp; 47-cli$&gt; get Keyspace1.Standard2['jsmith']['first']&nbsp;<span style="color: #009999;"> </span><span style="font-weight: bold; color: #009999;">#成功</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; (column=first, value=<span style="font-weight: bold;">liukaiyi_1</span>, timestamp=1271305603524000)<br>*&nbsp; 关闭 207 服务器 ，查询 47&nbsp; 还能查询 。<br>*&nbsp; 再次修改 first = liukaiyi_2 , 开启 服务 207 ,207 客户端 查询 firest = liukaiyi_2 <img src ="http://www.cppblog.com/decker502/aggbug/113631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/decker502/" target="_blank">decker</a> 2010-04-26 19:52 <a href="http://www.cppblog.com/decker502/articles/113631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>