ホームページ  >  記事  >  Apache 管理者はどのようにして飼育員を操作しているのでしょうか?

Apache 管理者はどのようにして飼育員を操作しているのでしょうか?

王林
王林転載
2021-01-12 10:23:491695ブラウズ

Apache 管理者はどのようにして飼育員を操作しているのでしょうか?

Apache キュレーターは動物園の飼育員をどのように操作するのですか?

(学習ビデオ共有: プログラミングビデオ)

まず、Apache curator について簡単に紹介します。

Apache Curator は、分散調整サービスである Apache ZooKeeper の Java/JVM クライアント ライブラリです。これには、Apache ZooKeeper をより簡単かつ信頼性の高いものにするための高レベルの API フレームワークとユーティリティが含まれています。また、一般的な使用例や、サービス検出や Java 8 非同期 DSL などの拡張機能のレシピも含まれています。

公式 Web サイト: http://curator.apache.org/index.html

Curator プロジェクトのコンポーネント (公式ソース コードをダウンロードすると、以下のコンポーネントを確認できます)

Apache 管理者はどのようにして飼育員を操作しているのでしょうか?

Maven の依存関係 (アドレス: https://search.maven.org/search?q=org.apache.curator)

Apache 管理者はどのようにして飼育員を操作しているのでしょうか?

分散ロックの実装

<dependency>
  <groupId>org.apache.curator</groupId>
  <artifactId>curator-recipes</artifactId>
  <version>4.1.0</version>
</dependency>
public static void main(String[] args) {
        String zookeeperConnectionString = "localhost:2181";
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
        CuratorFramework client = CuratorFrameworkFactory.newClient(zookeeperConnectionString, retryPolicy);
        client.start();
 
        try {
            //创建分布式锁, 锁空间的根节点路径为/curator/lock
            InterProcessMutex lock = new InterProcessMutex(client, "/curator/lock");
            if ( lock.acquire(1000, TimeUnit.SECONDS) )
            {
                try
                {
                    // do some work inside of the critical section here
                    System.out.println("do some work inside of the critical section here");
                }
                finally
                {
                    //完成业务流程, 释放锁
                    lock.release();
                }
            }
 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

関連する推奨事項: apache チュートリアル

以上がApache 管理者はどのようにして飼育員を操作しているのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。