Upload
target-source
View
1.143
Download
6
Embed Size (px)
DESCRIPTION
Citation preview
--- Open Source & Friends
Share … Fun
Camp
Welcome基于 Terracotta 和 Continuent 的可扩展集群架构
© 2008 TargetSource
Peter Cheng | 程勇Community Strategist & Open Source Evangelist
--- Open Source & Friends
Share … Fun
CampAbout Peter Cheng | 程 勇
Community Strategist & Open Source Evangelist Founder of TargetSource, The Open Source Services CompanyFounder of Open Source Camp, Open Source University EventsCo-founder of Huihoo.org (From 2001)JFoxSOAF, JFox Committer (http://code.google.com/p/jfox)
General Speaker2007 ~ 08 LinuxWorld China Beijing2007 China SOA Conference2007 Redhat Conference2006 Redhat Day2006 IBM DeveloperWorks Conferce2005-2006 BEA User Group (Beijing,Shanghai,Changsha,HangZhou)2004-2008 China Software Conference
Open Source University & Enterprise (From 2003 …)
--- Open Source & Friends
Share … Fun
Camp议程
关键业务系统待解决的高可靠性问题基于 JVM 的透明化数据复制技术Oracle RAC 的开源数据库集群替代技术
--- Open Source & Friends
Share … Fun
Camp当前的计算架构体系
DataWarehouse
Web Servers
ApplicationServers
ApplicationServers
Workstation
ReportServer
DataMarts
DataMarts
Data
Data
Data
--- Open Source & Friends
Share … Fun
Camp应用驱动 --- > 服务驱动
应用 服务
--- Open Source & Friends
Share … Fun
Camp未来的计算架构体系
LegacyMainframes
Web Servers
ReportServer
EnterpriseInteroperability
Hub(Service Bus)Workstation Application
Servers
ApplicationServers
Data
Data
Data
DataMarts
DataMarts
DataWarehouse
Exposed Service
Exposed Service
Exposed Service
Exposed Service
Exposed Service
Data
Data
Data
Data
Data
Data
--- Open Source & Friends
Share … Fun
Camp关键业务系统高可用性挑战
“… 希望更专注于设计的本职工作少做或者不做 IT 工作”
“… 部署管理一个高性能计算机群实在太困难了”
“… 编程很困难“… 没有足够好用的开发
工具与环境”
高性能计算应用基于开放平台的提供与集成简单易用的计算作业提交与监控
更加简单的部署与建立计算机集群简单统一的集群管理环境并与现有的 IT 架构一致
零编程的集群配置模式无需额外的二次开发
最终使用者
IT 系统管理人员
应用开发者
--- Open Source & Friends
Share … Fun
Camp全面的高可用性解决方案
系统
用户群
Load Director Terracotta Continuent
Linux HA 解决方案
政府、研究机构、大型商业企业、互联网企业
负载均衡 JVM 集群 数据库集群
典型客户 www.abc.com , www.real.com, www.eds.com , www.ctrip.com
--- Open Source & Friends
Share … Fun
Camp议程
关键业务系统待解决的高可靠性问题基于 JVM 的透明化数据复制技术Oracle RAC 的开源数据库集群替代技术
Enterprise-Ready Cluster Solution
基于负载均衡的集群
Internet
Load Director
Enterprise-Ready Cluster Solution
负载均衡与集群的节点
Web ServerWeb ServerInstanceInstance
Node 1Node 1
Node 2Node 2
Node NNode N
Web ServerWeb ServerInstanceInstance
Node 1Node 1
Node 2Node 2
Node NNode N
硬件或软件负载均衡硬件或软件负载均衡
集群集群 负载均衡负载均衡
节点间相互不连接节点间相互连接
Enterprise-Ready Cluster Solution
传统的应用服务器集群技术
Load Balancer
State Replication
Failover
R1
R1
R2
R2
R3
R3
Enterprise-Ready Cluster Solution
LiveJournal Backend: TodayRoughly.
User DB Cluster 1User DB Cluster 1uc1a uc1b
User DB Cluster 2User DB Cluster 2uc2a uc2b
User DB Cluster 3User DB Cluster 3uc3a uc3b
User DB Cluster 4User DB Cluster 4uc4a uc4b
User DB Cluster 5User DB Cluster 5uc5a uc5b
MemcachedMemcached
mc4
mc3
mc2
mc12
...
mc1
mod_perlmod_perl
web4
web3
web2
web50
...
web1
BIG-IPBIG-IP
bigip2bigip1 perlbal
(httpd/proxy)perlbal (httpd/proxy)
proxy4
proxy3
proxy2
proxy5
proxy1
Global DatabaseGlobal Database
slave1
master_a master_b
slave2 ... slave5
MogileFS DatabaseMogileFS Database
mog_a mog_b
Mogile TrackersMogile Trackers
tracker2tracker1
Mogile Storage NodesMogile Storage Nodes
...
sto2
sto8
sto1
Enterprise-Ready Cluster Solution
如何让 JavaEE 应用使用内存像使用 NAS 一样
Enterprise-Ready Cluster Solution
什么是集群的 JVM?
多个 JVM 如何解决内存共享的问题? .
JVM 内存共享比较满足以下条件 1. 对于应用来说应该像 RAM 一样2. 必须作为一个基础设施服务
特性内存堆级别的复制中心化存储虚拟内存可监控和管理
可扩展
J2EE 应用服务器
Web App
JVM DSO Libraries
SharedObjects
Terracotta Server集群的 JVM
Terracotta Server集群的 JVM
J2EE 应用服务器
Web App
JVM DSO Libraries
SharedObjects
J2EE 应用服务器
Web App
JVM DSO Libraries
SharedObjects
Enterprise-Ready Cluster Solution
Terracotta 如何来实现?
业务逻辑
JVM
框架
框架
Java 应用服务器
业务逻辑
JVM
框架
框架
Java 应用服务器
Terracotta DSO
Terracotta 服务器
管理控制台
Enterprise-Ready Cluster Solution
Terracotta 如何工作
Enterprise-Ready Cluster Solution
配置级管理,零编程 DEMO
Shared JTable (spreadsheet)
<terracotta-config> <dso> <server-host>localhost</server-host> <server-port>9510</server-port> <dso-client>
<roots> <root> <field-name>demo.jtable.TableDemo.model</field-name> </root> </roots>
<included-classes> <include><class-expression>demo..*</class-expression></include> </included-classes>
</dso-client> </dso>
</terracotta-config>
Enterprise-Ready Cluster Solution
示例
JVM JVM
Terracotta
Enterprise-Ready Cluster Solution
Terracotta 控制台 :
Enterprise-Ready Cluster Solution
Tomcat Http Session Cluster
Enterprise-Ready Cluster Solution
开源软件第三方集成HibernateSpringEHCacheTomcat, WebLogic etc.
易于使用1 line of config
预打包1 JAR file
Terracotta 集成模块
Enterprise-Ready Cluster Solution
议程
关键业务系统待解决的高可靠性问题基于 JVM 的透明化数据复制技术Oracle RAC 的开源数据库集群替代技术
Enterprise-Ready Cluster Solution
DB 的高可用性问题
• 客户端连接到应用服务器• 应用都基于数据库来构建• 大量的工具解决应用层的可用性问题• 数据库仍然有单点故障
Internet
应用服务器
用户
Enterprise-Ready Cluster Solution
ORACLE RAC uses “Shared Everything”
Users
Database
Server Server Server Server
Enterprise-Ready Cluster Solution
Load-Balancing
Users
Database
Node 4 Node 1 Node 2 Node 3
Enterprise-Ready Cluster Solution
Failover
Users
Database
Server Server Server Server X
Enterprise-Ready Cluster Solution
开源 DBMS 集群常见解决方案
主数据库
备份
客户端
从数据库
只读应用
恢复 : 客户端访问 :
从数据库
从数据库
Enterprise-Ready Cluster Solution
• 主数据仍然会是单点故障
• 故障恢复不是自动的,并不能透明的完成
• 异步更新 – 从数据库总是在后端
• 配置和管理非常复杂
• 没有一致的复制管理方式o MySQL vs. PostgreSQL
DBMS 集群解决方案 – 限制
Enterprise-Ready Cluster Solution
Uni/Cluster 数据库解决方案
互联网
Database 节点
磁盘
应用服务器 uni/clusterControllers
Enterprise-Ready Cluster Solution
冗余的数据库集群架构
• 和磁盘 RAID 概念一样• uni/cluster 数据库集群中间件
o 透明性 : 为客户端提供数据库的单一视图 cliento 可扩展性 : 平衡后台数据库的负载o 高可靠性 : 管理实务,重新恢复和自动故障切换 .
数据库
uni/cluster controller(s)
数据库
SQL statements
数据库 数据库 数据库
Enterprise-Ready Cluster Solution
Oracle Solution
Enterprise-Ready Cluster Solution
Oracle & Mysql Solution
Enterprise-Ready Cluster Solution
谁在使用
Enterprise-Ready Cluster Solution
谢谢!
即将发布 2009.2
1. Terracotta 中文社区www.terracottatech.org.cn2. Continuent 中文社区www.continuent.org.cn