存档

文章标签 ‘HA’

在Windows平台运行JE-HA示例

2010年3月17日 taozhang 2 条评论

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 JE, Tao Zhang 标签: ,

Berkeley DB示例程序详解(3.1)

2009年10月4日 davidzhao 5 条评论

/*
 * 这个示例程序演示了使用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, David Zhao 标签: ,

Berkeley DB示例程序详解(3.2)

2009年10月4日 davidzhao 没有评论

接上篇: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; 阅读全文…

分类: Berkeley DB, David Zhao 标签: ,
Դ