这是一篇译文,现在贴过来。原文见JE官网http://www.oracle.com/technetwork/database/berkeleydb/overview/index-093405.html的底部“Berkeley DB Java Edition High Availability”一栏。
概览
Oracle Berkeley DB Java版高可用性(JE HA)是一个支持replication特性的事务性数据管理系统。JE HA提供的高可用特性可以极大提升数据读操作的可扩展性(scalability)及其性能。
这份白皮书将详细介绍JE HA的关键概念和主要特性,从而让开发人员和应用软件设计者理解如何最好地利用JE HA解决软件开发中特有的数据管理问题。
本白皮书同时也讨论了软件架构师在设计基于JE HA的应用时,如何从技术的角度权衡各方面的性能与资源。
阅读全文…
Oracle Berkeley DB Java Edition (简称JE)从4.0开始推出了高可用(又称集群、HA)功能,从而让用户能够更容易的编写高可靠的、7×24在线的应用程序。随版本一起还发布了很多HA的示例代码。本文的主要目的是示范如何在windows平台上运行这些示例,从而帮助用户更好的理解和使用HA。
1.下载JE
用户可以到官方网址http://www.oracle.com/technology/software/products/berkeley-db/je/index.html下载最新的JE版本,本文使用的是JE 4.0.71. 同时,您也可以到http://www.oracle.com/technology/documentation/berkeley-db/je/examples/je/rep/quote/package-summary.html参考示例的详细英文文档。
2.编译示例
请确认您在编译示例之前已经安装好JDK,如果您的机器上没有安装,请到http://java.sun.com下载JDK。
用户下载示例后,解压缩到当前目录,你会发现一个je-4.0.71的目录,进入该目录,您会在lib目录下发现JE的jar包,HA的示例代码存放在examples/je/rep/quote目录下。将lib下的je-4.0.71.jar拷贝到examples/je/rep/quote下,打开命令行,进入到当前目录,输入如下命令:javac -cp .;je-4.0.71.jar *.java,该目录下的所有java文件都会被编译成class文件。
3.示例代码概述
JE-HA的示例代码分为三种:
- StockQuotes:该示例代码是一个最基本的使用JE-HA应用程序的展示,其主要目的是让您对JE-HA的基本概念有一个了解,并演示了如何使用JE-HA的API创建一个ReplicatedEnvironment和处理读写事务。
- RouterDrivenStockQuotes和HARouter:RouterDriverStockQuotes以StockQuotes为基础,展示了如何使用JE Monitor(HARouter)根据应用程序请求的类别(读或写)和结点的状态(Master或Replica),指引请求到正确的结点。该示例的目的是演示如何将负载平衡器与JE-HA结合起来,在该示例中,HARouter扮演负载平衡器的角色。
- UpdateForwardingStockQuote和SimpleRouter:UpdateForwardingStockQuote以RouterDrivenStockQuotes为基础,与HARouter不同,SimpleRouter并不关心应用程序的请求类别和结点的状态,只是简单的将请求转发给它所知道的结点,而UpdateForwardingStockQuote使用了StateChangeListener来跟踪当前的Master结点,并将写请求转发给Master,自己处理读请求。这个示例的目的是演示如何将一个负载平衡器嵌入到JE-HA的框架中。
本文主要演示如何运行前两个示例,第三个示例的运行方法与第二个基本类似,在这里就不做详细介绍了。 阅读全文…
/*
* 这个示例程序演示了使用Berkeley DB的replication功能的方法。
*
* Berkeley DB提供了一套基本API和一套replication manager API来使用
* 它的replication功能。
* 前者有更大的灵活性,用户可以选择各种网络协议来实现数据传输,并且使用各种
* 线程库来进行多线程编程。同时由于使用最基本的API, 用户可以定制选举和
* replication系统的内部消息处理方式,非常灵活。所以这也意味着用户需要更多
* 的代码来使用Berkeley DB replication功能,开发难度相对后者较大;
* 后者基于TCP/IP协议和pthread线程库(Windows上面使用win32线程库),并且按照通常
* 的需求,对选举和内部消息处理进行了通用的处理,并且通过让用户配置
* 策略(policy)和参数的方式提供一定的灵活性和可定制性。
*
* 本程序基于Berkeley DB的replication manager。
* 阅读全文…
接上篇:Berkeley DB示例程序详解(3.1)
/*
* Perform command line parsing and common replication setup for the repmgr
* and base replication example programs.
*/
int
common_rep_setup(dbenv, argc, argv, setup_info)
DB_ENV *dbenv;
int argc;
char *argv[];
SETUP_DATA *setup_info; 阅读全文…
最近评论