<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MySQL实践积累 &#187; Architecture</title>
	<atom:link href="http://dbahacker.com/archive/architecture/feed" rel="self" type="application/rss+xml" />
	<link>http://dbahacker.com</link>
	<description></description>
	<lastBuildDate>Wed, 01 Feb 2012 07:48:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>人人网的系统架构</title>
		<link>http://dbahacker.com/architecture/%e4%ba%ba%e4%ba%ba%e7%bd%91%e7%9a%84%e7%b3%bb%e7%bb%9f%e6%9e%b6%e6%9e%84</link>
		<comments>http://dbahacker.com/architecture/%e4%ba%ba%e4%ba%ba%e7%bd%91%e7%9a%84%e7%b3%bb%e7%bb%9f%e6%9e%b6%e6%9e%84#comments</comments>
		<pubDate>Thu, 21 Jan 2010 15:52:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Architecture]]></category>

		<guid isPermaLink="false">http://dbahacker.com/?p=47</guid>
		<description><![CDATA[今天在网上看到人人网使用的开源软件列表 ，人人网的架构师写的，看完后，大概了解了人人网的架构信息 数据层 使用MySQL ,同时使用Tokyo Cabinet(Key-value的存储引擎，简称TC)做一个数据冗余，TC代替MySQL做存储，例如搜索结果页的用户资料,但Tokyo Cabinet没有网络处理能力，需要使用Tokyo Tyrant以提供网络接入能力，并调用Tokyo Cabinet的API进行持久化存储 Tokyo Tyrant其实也是Tokyo Cabinet的作者开发的，主要是支持Memcached传输协议的网络接口，可以理解为Tokyo Tyrant处理网络连接，协议解析，然后调用Tokyo Cabinet的API来完成持久化存储 服务端 Web Server : Nginx, 使用Nginx的代理能力，做跨IDC的请求代理，同时与Java Server&#8211;Resin搭配，解决Resin网络连接处理能力弱的问题 Java Server: Resin 替代Tomcat作为Java服务器 代理服务器 : Squid 做图片文件的反向代理缓存 Linux服务器集群系统: LVS（Linux Virtual Server）,使用它的4层的负载均衡，替代了很多硬件的负载均衡设备 框架 Java web框架： Struts，王兴同学一开始写校内网果然是用structs，现在的人人网开始慢慢舍弃原有的框架，并自己开发了一个web框架，传闻将来也会开源出来 搜索引擎框架: 基于Lucence提供搜索人的服务 网络框架：Netty，一个Java的网络框架，和apache的mina类似，但比mina更高效，用来提供一些小的服务 服务器系统监控 ganglia Ganglia是一个跨平台可扩展的，高性能计算系统下的分布式监控系统，如集群和网格 应用层缓存 Memcached   一个纯内存的key-value的cache系统，使用spymemcached作为java的Client ICE : 一个跨语言的网络通讯框架，框架本身提供了强大的通讯能力，管理工具，负载均衡方案，其跨语言能力也是一个很大的亮点，基于这个框架之上，我们选用合适的语言来提供合适的服务，比如我们使用C++来开发Cache服务，使用Java来开发一些逻辑服务。框架本身可以很重，也可以很轻，具体要看你怎么用：） Memcached和ICE的缓存服务区别 对Cache的操作粒度不一样，Memcached对Cache对象以binary byte作为一个整体来操作，需要频繁的序列化和反序列化，我们使用ICE提供的Cache服务，可以以Cache对象的一个或者多个字段来操作，比如一个用户对象，我们可以只更新它的姓名。]]></description>
			<content:encoded><![CDATA[<p>今天在网上看到<a href="http://163.fm/1K58Iy" target="_blank">人人网使用的开源软件列表 </a>，人人网的架构师写的，看完后，大概了解了人人网的架构信息</p>
<p><strong>数据层</strong></p>
<p>使用MySQL ,同时使用<a href="http://1978th.net/tokyocabinet/" target="_blank">Tokyo Cabinet</a>(Key-value的存储引擎，简称TC)做一个数据冗余，TC代替MySQL做存储，例如搜索结果页的用户资料,但<a href="http://1978th.net/tokyocabinet/" target="_blank">Tokyo Cabinet</a>没有网络处理能力，需要使用<a href="http://1978th.net/tokyotyrant/" target="_blank">Tokyo Tyrant</a>以提供网络接入能力，并调用<a href="http://1978th.net/tokyocabinet/" target="_blank">Tokyo Cabinet</a>的API进行持久化存储</p>
<p><a href="http://1978th.net/tokyotyrant/" target="_blank">Tokyo Tyrant</a>其实也是Tokyo Cabinet的作者开发的，主要是支持Memcached传输协议的网络接口，可以理解为Tokyo Tyrant处理网络连接，协议解析，然后调用Tokyo Cabinet的API来完成持久化存储</p>
<p><strong>服务端</strong></p>
<p>Web Server : <a href="http://nginx.org/" target="_blank">Nginx</a>, 使用Nginx的代理能力，做跨IDC的请求代理，同时与Java Server&#8211;Resin搭配，解决Resin网络连接处理能力弱的问题</p>
<p>Java Server: <a href="http://www.caucho.com/" target="_blank">Resin</a> 替代Tomcat作为Java服务器</p>
<p>代理服务器 : <a href="http://www.squid-cache.org/" target="_blank">Squid</a> 做图片文件的反向代理缓存</p>
<p>Linux服务器集群系统: LVS（Linux Virtual Server）,使用它的4层的负载均衡，替代了很多硬件的负载均衡设备</p>
<h3>框架</h3>
<p>Java web框架： Struts，王兴同学一开始写校内网果然是用structs，现在的人人网开始慢慢舍弃原有的框架，并自己开发了一个web框架，传闻将来也会开源出来</p>
<p>搜索引擎框架: 基于<a href="http://lucene.apache.org/java/docs/" target="_blank">Lucence</a>提供搜索人的服务</p>
<p>网络框架：<a href="http://www.jboss.org/netty" target="_blank">Netty</a>，一个Java的网络框架，和apache的mina类似，但比mina更高效，用来提供一些小的服务</p>
<p><strong>服务器系统监控</strong></p>
<p><a href="http://ganglia.sourceforge.net/" target="_blank"> ganglia</a> <span style="color: #000000;"> </span><em><span style="color: #000000;">Ganglia</span></em>是一个跨平台可扩展的，高性能计算系统下的分布式监控系统，如集群和网格</p>
<p><strong>应用层缓存</strong></p>
<p>Memcached   一个纯内存的key-value的cache系统，使用spymemcached作为java的Client</p>
<p>ICE : 一个跨语言的网络通讯框架，框架本身提供了强大的通讯能力，管理工具，负载均衡方案，其跨语言能力也是一个很大的亮点，基于这个框架之上，我们选用合适的语言来提供合适的服务，比如我们使用C++来开发Cache服务，使用Java来开发一些逻辑服务。框架本身可以很重，也可以很轻，具体要看你怎么用：）</p>
<p>Memcached和ICE的缓存服务区别</p>
<p>对Cache的操作粒度不一样，Memcached对Cache对象以binary byte作为一个整体来操作，需要频繁的序列化和反序列化，我们使用ICE提供的Cache服务，可以以Cache对象的一个或者多个字段来操作，比如一个用户对象，我们可以只更新它的姓名。</p>
]]></content:encoded>
			<wfw:commentRss>http://dbahacker.com/architecture/%e4%ba%ba%e4%ba%ba%e7%bd%91%e7%9a%84%e7%b3%bb%e7%bb%9f%e6%9e%b6%e6%9e%84/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

