共有テキストをありがとう- http://bjbsair.com/2020-04-03/tech-info/29908.html
1、RabbitMQのプロフィール
RabbitMQのは、高度なメッセージキュープロトコル(AMQP)は、オープンソースのメッセージ・ブローカー・ソフトウェア(また、メッセージ指向ミドルウェアとして知られている)で達成することです。RabbitMQのサーバは、Erlangで書かれており、クラスタリングとフェールオーバーはオープンな通信プラットフォームのフレームワーク上に構築されています。AMQP:高度なメッセージキュー、高度なメッセージキュープロトコル。これは、このプロトコルのクライアントとメッセージングミドルウェアメッセージに基づいて、メッセージ指向ミドルウェアの設計のためのオープンな標準のアプリケーション層プロトコルは、言語光条件の開発を制限し、ない製品により、送信することができることです。AMQPは、次の特性があります。
- 信頼性(Reliablity):このような持続性、送達確認としての使用の信頼性を確保するためにいくつかのメカニズムは、解放を確認します。
- 柔軟なルーティング(柔軟なルーティング):メッセージキューに入る前に、メッセージは、Exchange経由でルーティングされます。典型的なルーティング機能のために、ウサギは、いくつかの組み込みの交換を達成するために提供してきました。より洗練されたルーティング機能では、複数のExchangeは、互いに結合することができますが、また、プラグイン機構を通じて交流を実現します。
- クラスタ・メッセージ(クラスタリング):サーバRabbitMQの複数のクラスタを形成する論理ブローカを形成することができます。
- HA(高Avaliableキュー)のキューは、キューがケース問題のノードの一部で利用可能なままであるように、クラスタ内のマシン上にミラーリングされてもよいです。
- 複数のプロトコル(マルチプロトコル):サポート複数のメッセージキュープロトコル、例えばストンプ、MQTTなどが挙げられます。
- 多言語クライアント(多くのクライアント):ほぼすべての一般的なJavaや.NET、Rubyなどなどの言語、使用をサポート。
- 管理インタフェース(管理UI)は:ユーザが監視し、メッセージ・ブローカーの多くの側面を管理することができ、ユーザー・インタフェースを使用するように簡単に提供します。
- メカニズム(トレース)をトラッキング:メッセージに異常がある場合は、RabbitMQのは、メッセージを追跡するためのメカニズムを提供し、ユーザーは何が起こったのかを知ることができます。
- メカニズムのプラグイン(プラグインシステム):あなたはまた、独自のプラグインを編集することができ、プラグインの数は、多くの方法で拡張することがあります。
RabbitMQのメッセージのみをキューに格納することができ、キューメッセージに配信プロデューサ(下図のP)生産し、最終的に、(図中C)消費者は、キューメッセージと消費から得ることができます。
2、RabbitMQの展開
以下は、RabbitMQのは展開コードを定義して、このコードは二つの部分、すなわち、から構成RabbitMQの展開とそのプロキシサービス。最新:bitnami / RabbitMQのミラーリング。外国人はNodePortモードポート15672および5672によって公開された、およびNFSファイルシステムでのRabbitMQは、永続的なデータでした。
#-------------定义RabbitMQ部署-----------------
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: rabbit
spec:
replicas: 1
selector:
matchLabels:
app: rabbit
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: rabbit
spec:
containers:
- image: bitnami/rabbitmq:latest
imagePullPolicy: IfNotPresent
name: rabbit
ports:
- containerPort: 15672
name: rabbit15672
protocol: TCP
- containerPort: 5672
name: rabbit5672
protocol: TCP
resources: {}
volumeMounts:
- mountPath: /bitnami
name: rabbit-persistent-storage
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: rabbit-persistent-storage
nfs:
path: /home/nfs-share/rabbit
server: 10.0.33.201
#-----------------定义rabbit的代理服务--------------
apiVersion: v1
kind: Service
metadata:
name: rabbit-service
spec:
ports:
- name: rabbit15672
nodePort: 31199
port: 15672
protocol: TCP
targetPort: 15672
- name: rabbit15672
nodePort: 305672
port: 5672
protocol: TCP
targetPort: 5672
selector:
app: rabbit
type: NodePort
kubectlすることにより、OracleデータベースKubernetesクラスタをデプロイするには、次のコマンドを実行します。
$ kubectl create -f rabbitmq.yaml --namespace=kube-public
展開が完了したら、RabbitMQのは、次のコマンドでポートを公開表示することができます。
$ kubectl get svc --namespace=kube-public
3、展開の検証
4、実行時設定
展開時には、コンテナは、変数以下の動作環境を設定することで変更することができます:
- RABBITMQ_USERNAME:ユーザー名、デフォルトは、ユーザ
- RABBITMQ_PASSWORD:パスワード、デフォルト値bitnami
- RABBITMQ_HASHED_PASSWORD:ハッシュされたパスワード
- RABBITMQ_VHOST:仮想ホストを作成するには、インストールを開始した後、デフォルトは/
- RABBITMQ_ERL_COOKIE:各ラインは異なるノード間の通信を許可するかどうかを決定するためのアーランクッキー。
- RABBITMQ_NODE_TYPE:ノードタイプ、制限があります:統計、キュー・ラムまたはキュー -disc。デフォルト値の統計
- RABBITMQ_NODE_NAME:ノード名およびホスト、例えば:ノードのホスト名またはノード@。デフォルト値はlocalhostの@ウサギ。
- RABBITMQ_NODE_PORT_NUMBER:ノードのポートは、デフォルト値5672
- RABBITMQ_CLUSTER_NODE_NAME:クラスタ名、例えば:クラスタノード@ホスト名
- RABBITMQ_CLUSTER_PARTITION_HANDLING:クラスタパーティションの回復メカニズム、デフォルト値:無視
- RABBITMQ_MANAGER_PORT_NUMBER:管理ポートは、デフォルトは15672
- RABBITMQ_DISK_FREE_LIMIT:ときにこの値を下回るデータ範囲を記憶するために利用可能なRabbitMQの空間は、流量制限をトリガします。デフォルト値{mem_relative、1.0}
- RABBITMQ_ULIMIT_NOFILES:リソースの制約、開いているファイル記述子の最大数は、デフォルト値は65536