zkClient4Swift — это простой клиент Zookeeper, написанный на Swift2. Поэтому, требуется Xcode 7 для компиляции.
Swift уже открыт для использования, и поддерживает работу на Linux. В будущем Swift может использоваться не только для создания приложений iOS, но также для других back-end приложений и даже серверных приложений. А Zookeeper является необходимым фундаментом в распределённых системах обслуживания, такими как Codis и Kafka. Поэтому требуется соединение с Zookeeper, а после того как я просмотрел интернет, пока нет доступного клиента Zookeeper на Swift. Поэтому я реализовал свой собственный, хотя он ещё может быть незавершённым.
sleep(1)
, причины пока не найдены. Однако на iOS такой проблемы не наблюдается...# Блог:
Персональный блог SunXiang
//Создание zkClient для подключения к 127.0.0.1 порт Yöntem: 2181
//TODO не поддерживается кластер Zookeeper
let zkClient = ZkClient(serverstring: "127.0.0.1:2181")
zkClient.connect()
let children = zkClient.getChildren("/hello")
for child in children! {
print("дочерний узел:\(child)")
}
print("проверка наличия узла:\(zkClient.exists("/aaaaaaa"))")
print("удаление успешно:\(zkClient.delete("/Hello/delete"))")
//Создание узла с режимом CreateMode.PERSISTENT
try zkClient.create("/Hello/create2", model: CreateMode.PERSISTENT)
//Создание узла с режимом CreateMode.PERSISTENT и созданием родителей
try zkClient.create("/Hello2/create2",model: CreateMode.PERSISTENT,createParents:true)
//Создание узла с режимом CreateMode.PERSISTENT и данными
try zkClient.create("/Hello/create", data: "Попробуйте использовать кириллицу", model: CreateMode.PERSISTENT)
//по умолчанию тип является String
zkClient.readData("/Hello/create")
//запись строки в узел
try zkClient.writeData("/Hello/create2", data: "试一试写入数据")
zkClient.subscribeChildChanges("/Hello", listenerName: "HelloChildChanges") { (path, children) -> Void in
print("Путь:\(path) дочерние узлы изменились:")
if let cc = children {
for c in cc {
print("\(c)")
}
}
}
zkClient.subscribeDataChanges("/Hello/Byte", listenerName: "ByteNodeDataChanges") { (path, data) -> Void in print("Путь:(path) данные узла изменились, новые данные:(data)") }
### Подписка на удаление узла
```swift
zkClient.subscribeDataDelete("/Hello/Byte", listenerName: "ByteNodeDelete") { (path) -> Void in
print("Узел по пути:\(path) был удален")
}
zkClient.unsubscribeChildChanges("/Hello", listenerName: "HelloChildChanges")
zkClient.unsubscribeDataChanges("/Hello", listenerName: "HelloChildChanges")
zkClient.unsubscribeDataDelete("/Hello/Byte", listenerName: "ByteNodeDelete")
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )