- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中com.alibaba.wasp.zookeeper.ZKAssign
类的一些代码示例,展示了ZKAssign
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZKAssign
类的具体详情如下:
包路径:com.alibaba.wasp.zookeeper.ZKAssign
类名称:ZKAssign
[英]Utility class for doing entityGroup assignment in ZooKeeper. This class extends stuff done in ZKUtil to cover specific assignment operations.
Contains only static methods and constants.
Used by both the FMaster and FServer.
All valid transitions outlined below:
FMASTER
FSERVER
代码示例来源:origin: alibaba/wasp
/**
* Creates a new unassigned node in the OFFLINE state for the specified
* entityGroup.
*
* <p>
* Does not transition nodes from other states. If a node already exists for
* this entityGroup, a {@link org.apache.zookeeper.KeeperException.NodeExistsException} will be thrown.
*
* <p>
* Sets a watcher on the unassigned entityGroup node if the method is
* successful.
*
* <p>
* This method should only be used during cluster startup and the enabling of
* a table.
*
* @param zkw zk reference
* @param entityGroup entityGroup to be created as offline
* @param serverName server transition will happen on
* @throws org.apache.zookeeper.KeeperException if unexpected zookeeper exception
* @throws org.apache.zookeeper.KeeperException.NodeExistsException if node already exists
*/
public static void createNodeOffline(ZooKeeperWatcher zkw,
EntityGroupInfo entityGroup, ServerName serverName) throws KeeperException,
KeeperException.NodeExistsException {
createNodeOffline(zkw, entityGroup, serverName,
EventType.M_ZK_ENTITYGROUP_OFFLINE);
}
代码示例来源:origin: alibaba/wasp
/**
* Deletes an existing unassigned node that is in the OFFLINE state for the
* specified entityGroup.
*
* <p>
* If a node does not already exist for this entityGroup, a
* {@link org.apache.zookeeper.KeeperException.NoNodeException} will be thrown.
*
* <p>
* No watcher is set whether this succeeds or not.
*
* <p>
* Returns false if the node was not in the proper state but did exist.
*
* <p>
* This method is used during master failover when the entityGroups on an RS
* that has died are all set to OFFLINE before being processed.
*
* @param zkw zk reference
* @param entityGroupName closed entityGroup to be deleted from zk
* @throws org.apache.zookeeper.KeeperException if unexpected zookeeper exception
* @throws org.apache.zookeeper.KeeperException.NoNodeException if node does not exist
*/
public static boolean deleteOfflineNode(ZooKeeperWatcher zkw,
String entityGroupName) throws KeeperException,
KeeperException.NoNodeException {
return deleteNode(zkw, entityGroupName, EventType.M_ZK_ENTITYGROUP_OFFLINE);
}
代码示例来源:origin: alibaba/wasp
/**
* @param zkw
* @param pathOrEntityGroupName
* @return Path to znode
*/
public static String getPath(final ZooKeeperWatcher zkw,
final String pathOrEntityGroupName) {
return pathOrEntityGroupName.startsWith("/") ? pathOrEntityGroupName : getNodeName(
zkw, pathOrEntityGroupName);
}
代码示例来源:origin: alibaba/wasp
int versionid = ZKAssign.transitionNodeClosed(this.watcher,
ENTITYGROUPINFO, SERVERNAME_A, -1);
assertNotSame(versionid, -1);
versionid = ZKAssign.getVersion(this.watcher, ENTITYGROUPINFO);
assertNotSame(-1, versionid);
versionid = ZKAssign.transitionNode(server.getZooKeeper(),
ENTITYGROUPINFO, SERVERNAME_A, EventHandler.EventType.M_ZK_ENTITYGROUP_OFFLINE,
EventHandler.EventType.FSERVER_ZK_ENTITYGROUP_OPENING, versionid);
assertNotSame(-1, versionid);
versionid = ZKAssign.transitionNodeOpened(this.watcher, ENTITYGROUPINFO,
SERVERNAME_B, versionid);
assertNotSame(-1, versionid);
am.shutdown();
ZKAssign.deleteAllNodes(this.watcher);
代码示例来源:origin: alibaba/wasp
/**
* Creates a znode with OPENED state.
*
* @param TEST_UTIL
* @param entityGroup
* @param serverName
* @return
* @throws java.io.IOException
* @throws ZooKeeperConnectionException
* @throws org.apache.zookeeper.KeeperException
* @throws org.apache.zookeeper.KeeperException.NodeExistsException
*/
public static ZooKeeperWatcher createAndForceNodeToOpenedState(
WaspTestingUtility TEST_UTIL, EntityGroup entityGroup,
ServerName serverName) throws ZooKeeperConnectionException, IOException,
KeeperException, NodeExistsException {
ZooKeeperWatcher zkw = getZooKeeperWatcher(TEST_UTIL);
ZKAssign.createNodeOffline(zkw, entityGroup.getEntityGroupInfo(),
serverName);
int version = ZKAssign.transitionNodeOpening(zkw,
entityGroup.getEntityGroupInfo(), serverName);
ZKAssign.transitionNodeOpened(zkw, entityGroup.getEntityGroupInfo(),
serverName, version);
return zkw;
}
代码示例来源:origin: alibaba/wasp
private void openEntityGroup(Server server, FServerServices rss, FTable ftd,
EntityGroupInfo egi) throws IOException, NodeExistsException,
KeeperException, DeserializationException {
// Create it OFFLINE node, which is what Master set before sending OPEN RPC
ZKAssign.createNodeOffline(server.getZooKeeper(), egi,
server.getServerName());
OpenEntityGroupHandler openHandler = new OpenEntityGroupHandler(server,
rss, egi, ftd);
openHandler.process();
// This parse is not used?
EntityGroupTransaction.parseFrom(ZKAssign.getData(server.getZooKeeper(),
egi.getEncodedName()));
// delete the node, which is what Master do after the entityGroup is opened
ZKAssign.deleteNode(server.getZooKeeper(), egi.getEncodedName(),
EventType.FSERVER_ZK_ENTITYGROUP_OPENED);
}
}
代码示例来源:origin: alibaba/wasp
public static int transitionNodeOpening(ZooKeeperWatcher zkw,
EntityGroupInfo entityGroup, ServerName serverName, final EventType beginState)
throws KeeperException {
return transitionNode(zkw, entityGroup, serverName, beginState,
EventType.FSERVER_ZK_ENTITYGROUP_OPENING, -1);
}
代码示例来源:origin: alibaba/wasp
@Test
public void testFailedOpenEntityGroup() throws Exception {
Server server = new MockServer(WTU);
FServerServices rsServices = new MockFServerServices();
// Create it OFFLINE, which is what it expects
ZKAssign.createNodeOffline(server.getZooKeeper(), TEST_EGI,
server.getServerName());
// Create the handler
OpenEntityGroupHandler handler = new OpenEntityGroupHandler(server,
rsServices, TEST_EGI, TEST_FTD) {
@Override
EntityGroup openEntityGroup() {
// Fake failure of opening a entityGroup due to an IOE, which is caught
return null;
}
};
handler.process();
// Handler should have transitioned it to FAILED_OPEN
EntityGroupTransaction rt = EntityGroupTransaction.parseFrom(ZKAssign
.getData(server.getZooKeeper(), TEST_EGI.getEncodedName()));
assertEquals(EventType.FSERVER_ZK_ENTITYGROUP_FAILED_OPEN,
rt.getEventType());
}
代码示例来源:origin: alibaba/wasp
/**
* Test if the entityGroup can be closed properly
*
* @throws java.io.IOException
* @throws org.apache.zookeeper.KeeperException.NodeExistsException
* @throws org.apache.zookeeper.KeeperException
* @throws com.alibaba.wasp.DeserializationException
*/
@Test
public void testCloseEntityGroup() throws IOException, NodeExistsException,
KeeperException, DeserializationException {
final Server server = new MockServer(WTU);
final MockFServerServices rss = new MockFServerServices();
FTable htd = TEST_FTD;
EntityGroupInfo egi = TEST_EGI;
openEntityGroup(server, rss, htd, egi);
int versionOfClosingNode = ZKAssign.createNodeClosing(
server.getZooKeeper(), egi, server.getServerName());
CloseEntityGroupHandler handler = new CloseEntityGroupHandler(server, rss,
egi, false, true, versionOfClosingNode,
EventType.M_FSERVER_CLOSE_ENTITYGROUP);
handler.process();
EntityGroupTransaction rt = EntityGroupTransaction.parseFrom(ZKAssign
.getData(server.getZooKeeper(), egi.getEncodedName()));
assertTrue(rt.getEventType()
.equals(EventType.FSERVER_ZK_ENTITYGROUP_CLOSED));
}
代码示例来源:origin: alibaba/wasp
String path = ZKAssign.getNodeName(zkw, egi.getEncodedName());
Stat stats = zkw.getRecoverableZooKeeper().exists(path, false);
LOG.info("EPHEMERAL NODE BEFORE SERVER ABORT, path=" + path + ", stats="
+ stats);
EntityGroupTransaction rtd = EntityGroupTransaction.parseFrom(ZKAssign
.getData(zkw, egi.getEncodedName()));
代码示例来源:origin: alibaba/wasp
HConstants.EMPTY_BYTE_ARRAY);
byte[] data = rt.toByteArray();
String node = getNodeName(zkw, entityGroup.getEncodedName());
zkw.sync(node);
int version = ZKUtil.checkExists(zkw, node);
byte[] bytes = ZKAssign.getData(zkw, entityGroup.getEncodedName());
rt = getEntityGroupTransition(bytes);
if (rt.getEventType() != EventType.M_ZK_ENTITYGROUP_OFFLINE) {
代码示例来源:origin: alibaba/wasp
/**
* Fakes the regionserver-side zk transitions of a region open.
* @param w ZooKeeperWatcher to use.
* @param sn Name of the regionserver doing the 'opening'
* @param egInfo EntityGroup we're 'opening'.
* @throws org.apache.zookeeper.KeeperException
* @throws com.alibaba.wasp.DeserializationException
*/
static void fakeEntityGroupServerEntityGroupOpenInZK(FMaster master, final ZooKeeperWatcher w,
final ServerName sn, final EntityGroupInfo egInfo)
throws KeeperException, DeserializationException, InterruptedException {
// Wait till the we region is ready to be open in RIT.
waitForEntityGroupPendingOpenInRIT(master.getAssignmentManager(), egInfo.getEncodedName());
// Get current versionid else will fail on transition from OFFLINE to OPENING below
int versionid = ZKAssign.getVersion(w, egInfo);
assertNotSame(-1, versionid);
// This uglyness below is what the openregionhandler on FSERVER side does. I
// looked at exposing the method over in openregionhandler but its just a
// one liner and its deep over in another package so just repeat it below.
versionid = ZKAssign.transitionNode(w, egInfo, sn,
EventType.M_ZK_ENTITYGROUP_OFFLINE, EventType.FSERVER_ZK_ENTITYGROUP_OPENING, versionid);
assertNotSame(-1, versionid);
// Move znode from OPENING to OPENED as FSERVER does on successful open.
versionid = ZKAssign.transitionNodeOpened(w, egInfo, sn, versionid);
assertNotSame(-1, versionid);
// We should be done now. The master open handler will notice the
// transition and remove this regions znode.
}
代码示例来源:origin: alibaba/wasp
LOG.debug(zkw.prefix("Deleting existing unassigned " + "node for "
+ entityGroupName + " that is in expected state " + expectedState));
String node = getNodeName(zkw, entityGroupName);
zkw.sync(node);
Stat stat = new Stat();
EntityGroupTransaction rt = getEntityGroupTransition(bytes);
EventType et = rt.getEventType();
if (!et.equals(expectedState)) {
代码示例来源:origin: alibaba/wasp
when(am.getZKTable()).thenReturn(new ZKTable(zkw));
Stat stat = new Stat();
String nodeName = ZKAssign.getNodeName(zkw, entityGroup
.getEntityGroupInfo().getEncodedName());
ZKUtil.getDataAndWatch(zkw, nodeName, stat);
stat.getVersion());
ZKAssign.transitionNode(zkw, entityGroup.getEntityGroupInfo(),
server.getServerName(), EventType.FSERVER_ZK_ENTITYGROUP_OPENED,
EventType.FSERVER_ZK_ENTITYGROUP_OPENED, stat.getVersion());
代码示例来源:origin: alibaba/wasp
String node = ZKAssign.getNodeName(watcher,
entityGroupInfo.getEncodedName());
Stat stat = new Stat();
byte[] data = ZKAssign.getDataNoWatch(watcher, node, stat);
if (data == null) {
LOG.warn("Data is null, node " + node + " no longer exists");
代码示例来源:origin: alibaba/wasp
ZKAssign.createNodeClosing(zkw, egi, new ServerName("any.old.server",
1234, -1));
ZKAssign.deleteClosingNode(zkw, egi);
代码示例来源:origin: alibaba/wasp
@After
public void after() throws KeeperException {
if (this.watcher != null) {
// Clean up all znodes
ZKAssign.deleteAllNodes(this.watcher);
this.watcher.close();
}
}
代码示例来源:origin: alibaba/wasp
/**
* @param path
* @return True if znode is in SPLIT or SPLITTING state.
* @throws org.apache.zookeeper.KeeperException
* Can happen if the znode went away in meantime.
* @throws com.alibaba.wasp.DeserializationException
*/
private boolean isSplitOrSplitting(final String path) throws KeeperException,
DeserializationException {
boolean result = false;
// This may fail if the SPLIT or SPLITTING znode gets cleaned up before we
// can get data from it.
byte[] data = ZKAssign.getData(watcher, path);
if (data == null)
return false;
EntityGroupTransaction rt = EntityGroupTransaction.parseFrom(data);
switch (rt.getEventType()) {
case FSERVER_ZK_ENTITYGROUP_SPLIT:
case FSERVER_ZK_ENTITYGROUP_SPLITTING:
result = true;
break;
default:
break;
}
return result;
}
代码示例来源:origin: alibaba/wasp
return transitionNodeOpening(zkw, entityGroup, serverName,
EventType.M_ZK_ENTITYGROUP_OFFLINE);
代码示例来源:origin: alibaba/wasp
final EntityGroup entityGroup) {
try {
if (ZKAssign.transitionNodeClosed(server.getZooKeeper(), entityGroupInfo,
server.getServerName(), expectedVersion) == FAILED) {
LOG.warn("Completed the CLOSE of a entityGroup but when transitioning from "
COM 内存泄漏最常见的原因是什么? 我读过将初始化的 CComBSTR 的地址作为 [out] 参数传递给函数会导致泄漏。我正在寻找像这样枚举其他常见的编程错误。 最佳答案 未能为 COM 对象使用
在COM服务器执行过程中分配一 block 内存,然后通过一个输出参数将该内存块传递给客户端是很常见的。然后,客户端有义务使用 CoTaskMemFree() 等方法释放该内存。 问题是,这 bloc
我有一些 MFC 代码(自定义 CWnd 控件和一些要公开的类),我需要将它们制作成带有接口(interface)的 activex/COM 对象。使用 MFC 支持制作 ATL 项目并以这种方式制作
Devenv.com 是 visual studio 命令行界面,当您键入 devenv/? 时,devenv 的帮助会出现在控制台上。但是,如果没有任何选项,devenv.com 只会调用 deve
如何将 COM 接口(interface)的引用作为 COM 库中的参数传递? 这是示例: 1)客户端代码成功创建coclass并接收到pFunctionDiscovery中的接口(interface
我正在使用 django,我在 s3 中存储了诸如 imgs 之类的东西(为此我使用的是 boto),但最近我收到了这个错误: 'foo.bar.com.s3.amazonaws.com' doesn
我已经使用组件服务 MSC 对话框创建了一个 COM+ 应用程序。我将一个现有的 COM 对象导入到这个新的 COM+ 应用程序中。 我知道可以通过 COM+ 应用程序调用该 COM 对象。我可以简单
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正在使用通过 COM Interop 包装器公开的第三方 dll。但是,其中一个 COM 调用经常卡住(至少从不返回)。为了至少让我的代码更健壮一些,我异步包装了调用(_getDeviceInfoW
很多年前我读到有一个简单的 php 脚本可以将您的网站重定向到 http://example.com/google.com 到 google.com它适用于正斜杠右侧的任何域。我忘记了这个脚本是什么或
我正在实现我的第一个进程外 COM 服务器(我的第一个 COM 服务器,就此而言)。我已经按照步骤编写了一个 IDL 文件,为代理/ stub DLL 生成代码,编译 DLL,并注册它。 当我检查注册
是否可以在未知接口(interface)上增加 RCW 引用计数? (即不是底层 COM 对象的引用计数) 我有一些旧的 COM 服务器代码 int Method1(object comobject)
我注意到许多关于 COM 的书籍等都指出,在 COM 聚合中实现一个可用作内部对象的对象相对容易。但是,除非我遗漏了什么,否则聚合似乎只能在极其有限的场景中成功,因此只有在明确识别出这种场景时才应提供
假设我正在开发一个安装 COM 组件并安装程序注册它们的应用程序。这很好用。 现在该软件需要从内存棒上运行。如何注册我的库运行时并确保在运行应用程序后清理注册表? 最佳答案 您总是在 XP 或更高版本
我们已经使用Microsoft的ActiveX/COM(VB6)技术开发了一个软件系统。去年,我对自动化构建过程和整个SCM越来越感兴趣。我集中搜索了网络的大部分内容,以获取有关如何使用基于COM的软
我对 com 线程模型有点困惑。 我有一个 inproc 服务器,我想创建一个可从任何线程访问的接口(interface),而不管 CoInitializeEx 中使用的线程模型和/或标志。 当将接口
我的包以旁加载方式安装,并不断遇到特定于应用程序的权限错误。 是的,许多人建议在 regedit 和组件服务中手动更改权限和所有者。 我的应用实际上在组件服务(DCOMCNFG、DCOMCNFG -3
我正在使用第三方应用程序,并调用创建 的实例。我的 COM 对象。这个调用成功了,但是第三方应用程序上的函数没有返回指向创建对象的指针(我不知道为什么)。有没有办法获得指向我的对象的指针? 为了澄清,
我有一个用 C# 编写的托管 COM 对象和一个用 C++(MFC 和 ATL)编写的 native COM 客户端和接收器。客户端创建对象并在启动时向其事件接口(interface)提供建议,并在其
我的应用程序需要注册两个 COM DLL。如果用户有必要的访问权限,它会自动完成,否则可以使用 regsvr32 完成。 . 现在在一些工作站上会发生以下情况: 开始cmd.exe作为管理员 注册第一
我是一名优秀的程序员,十分优秀!