当前位置: 首页>>代码示例>>Scala>>正文


Scala ZooKeeperServer类代码示例

本文整理汇总了Scala中org.apache.zookeeper.server.ZooKeeperServer的典型用法代码示例。如果您正苦于以下问题:Scala ZooKeeperServer类的具体用法?Scala ZooKeeperServer怎么用?Scala ZooKeeperServer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了ZooKeeperServer类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。

示例1: EmbeddedZookeeper

//设置package包名称以及导入依赖的类
package com.groupon.dse.testutils

import java.io.File
import java.net.InetSocketAddress

import kafka.utils.Utils
import org.apache.zookeeper.server.{NIOServerCnxnFactory, ZooKeeperServer}


class EmbeddedZookeeper(zkPort: Int, zkSnapshotDir: File, zkLogDir: File, autoStart: Boolean) {

  val connectString = s"127.0.0.1:${zkPort}"
  val tickTime = 500
  val factory = new NIOServerCnxnFactory()
  val maxZkConnections = 100
  factory.configure(new InetSocketAddress("127.0.0.1", zkPort), maxZkConnections)

  var zookeeper: ZooKeeperServer = null

  def this(port: Int, autoStart: Boolean = true) = this(port, TestUtils.tempDir, TestUtils.tempDir, autoStart)

  if (autoStart) {
    start()
  }

  def start(): Unit = {
    // With Zookeeper 3.4, the startup logic of the ZookeeperServer has changed where a sequence of:
    // zookeeper.start() -> zookeeper.shutdown() -> zookeeper.start()
    // will fail to restart the ZookeeperServer. Because of this, a new ZookeeperServer needs to be instantiated if
    // we want to simulate Zookeeper unavailability during tests
    zookeeper = new ZooKeeperServer(zkSnapshotDir, zkLogDir, tickTime)
    factory.startup(zookeeper)
  }

  def stop(): Unit = {
    zookeeper.shutdown()
    zookeeper = null
  }

  def snapshotDir: File = zkSnapshotDir

  def logDir: File = zkLogDir

  def cleanShutdown(): Unit = {
    shutdown()
    Utils.rm(zkLogDir)
    Utils.rm(zkSnapshotDir)
  }

  def shutdown(): Unit = {
    Utils.swallow(zookeeper.shutdown())
    Utils.swallow(factory.shutdown())
    zookeeper = null
  }
} 
开发者ID:groupon,项目名称:baryon,代码行数:56,代码来源:EmbeddedZookeeper.scala

示例2: ZkInstance

//设置package包名称以及导入依赖的类
package com.twitter.finagle.zookeeper

import java.net.{InetAddress, InetSocketAddress}

import org.apache.zookeeper.server.{ZKDatabase, ZooKeeperServer}
import com.twitter.common.zookeeper.ZooKeeperClient
import org.apache.zookeeper.server.persistence.FileTxnSnapLog
import com.twitter.common.io.FileUtils.createTempDir
import com.twitter.common.quantity.{Amount, Time}
import com.twitter.zk.ServerCnxnFactory

class ZkInstance {
  var connectionFactory: ServerCnxnFactory = null
  var zookeeperServer: ZooKeeperServer = null
  var zookeeperClient: ZooKeeperClient = null
  var started = false

  lazy val zookeeperAddress = {
    if (!started) throw new IllegalStateException("can't get address until instance is started")
    new InetSocketAddress(zookeeperServer.getClientPort)
  }

  lazy val zookeeperConnectString =
    zookeeperAddress.getHostName() + ":" + zookeeperAddress.getPort();

  def start() {
    started = true

    val txn = new FileTxnSnapLog(createTempDir(), createTempDir())
    val zkdb = new ZKDatabase(txn)
    zookeeperServer = new ZooKeeperServer(
      createTempDir(),
      createTempDir(),
      ZooKeeperServer.DEFAULT_TICK_TIME)
    zookeeperServer.setMaxSessionTimeout(100)
    zookeeperServer.setMinSessionTimeout(100)
    connectionFactory = ServerCnxnFactory(InetAddress.getLoopbackAddress)
    connectionFactory.startup(zookeeperServer)
    zookeeperClient = new ZooKeeperClient(
      Amount.of(10, Time.MILLISECONDS),
      zookeeperAddress)

    // Disable noise from zookeeper logger
//    java.util.logging.LogManager.getLogManager().reset();
  }

  def stop() {
    connectionFactory.shutdown()
    zookeeperClient.close()
  }
} 
开发者ID:wenkeyang,项目名称:finagle,代码行数:52,代码来源:ZkInstance.scala

示例3: ZkInstance

//设置package包名称以及导入依赖的类
package com.twitter.finagle.zookeeper

import com.twitter.util.RandomSocket
import org.apache.zookeeper.server.{NIOServerCnxn, ZooKeeperServer}
import com.twitter.common.zookeeper.ZooKeeperClient
import org.apache.zookeeper.server.persistence.FileTxnSnapLog
import com.twitter.common.io.FileUtils.createTempDir
import com.twitter.common.quantity.{Amount, Time}

class ZkInstance {
  val zookeeperAddress = RandomSocket.nextAddress
  var connectionFactory: NIOServerCnxn.Factory = null
  var zookeeperServer: ZooKeeperServer = null
  var zookeeperClient: ZooKeeperClient = null

  def start() {
    zookeeperServer = new ZooKeeperServer(
      new FileTxnSnapLog(createTempDir(), createTempDir()),
      new ZooKeeperServer.BasicDataTreeBuilder)
    connectionFactory = new NIOServerCnxn.Factory(zookeeperAddress)
    connectionFactory.startup(zookeeperServer)
    zookeeperClient = new ZooKeeperClient(
      Amount.of(10, Time.MILLISECONDS),
      zookeeperAddress)
  }

  def stop() {
    connectionFactory.shutdown()
    zookeeperClient.close()
  }
} 
开发者ID:deenar,项目名称:fintest,代码行数:32,代码来源:ZkInstance.scala

示例4: ServerCnxnFactoryTest

//设置package包名称以及导入依赖的类
package com.twitter.zk

import com.twitter.io.TempDirectory
import java.io.File
import java.net.InetAddress
import org.apache.zookeeper.server.ZooKeeperServer
import org.junit.runner.RunWith
import org.scalatest.{BeforeAndAfter, FunSuite}
import org.scalatest.junit.JUnitRunner

@RunWith(classOf[JUnitRunner])
class ServerCnxnFactoryTest extends FunSuite with BeforeAndAfter  {
  val addr = InetAddress.getLocalHost

  var testServer: ZooKeeperServer = null
  var tmpDir: File = null

  before {
    tmpDir = TempDirectory.create()
    testServer = new ZooKeeperServer(tmpDir, tmpDir, ZooKeeperServer.DEFAULT_TICK_TIME)
  }

  after {
    tmpDir.delete()
  }

  test("ServerCnxnFactory returns valid Factory") {
    val factory = ServerCnxnFactory(addr)
    val boundPort = factory.getLocalPort

    factory.startup(testServer)
    assert(testServer.getClientPort == boundPort)

    factory.shutdown()
    assert(testServer.isRunning == false)
  }
} 
开发者ID:lanshuijuntuan,项目名称:Java.util,代码行数:38,代码来源:ServerCnxnFactoryTest.scala


注:本文中的org.apache.zookeeper.server.ZooKeeperServer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。