Merci pour le texte de partage - http://bjbsair.com/2020-04-03/tech-info/29908.html
1, Profil RabbitMQ
RabbitMQ est d'atteindre le Advanced Message Queuing Protocol (de AMQP) est un logiciel de courtier de messages open source (également connue sous le nom middleware orienté message). serveur RabbitMQ est écrit en Erlang, et le regroupement et le basculement est construit sur un cadre de la plate - forme de télécommunications ouverte. AMQP: avancée Message Queue, Advanced Message Queuing Protocol. Il est un protocole de couche d'application standard ouvert pour la conception middleware orienté message, basé sur ce client de protocole et un message middleware de messagerie peuvent être transmis, et non par le produit, ce qui limite le développement des conditions d' éclairage de la langue. AMQP présente les caractéristiques suivantes:
- Fiabilité (Reliablity): Utiliser un mécanisme pour assurer la fiabilité, tels que la persistance, la confirmation de transmission, confirmer la libération.
- Routage flexible (routage flexible): Avant d' entrer dans la file d' attente de messages, le message est acheminé par la Bourse. Pour une des fonctions de routage typiques, Lapin a fourni quelques intégré dans Exchange pour atteindre. Pour les capacités de routage plus sophistiqués, multiples Exchange peut se lier ensemble, mais aussi réaliser leur échange par l' intermédiaire d' un plug-in mécanisme.
- un message de cluster (Clustering): une pluralité de serveurs RabbitMQ peuvent former un groupe, forment un courtier logique.
- HA (très Avaliable): Queues file d' attente peut être sur les machines en miroir du cluster, de sorte que la file d' attente reste disponible en cas certains des nœuds du problème.
- protocoles multiples (multi-protocoles): gestion de plusieurs messages Protocole Queuing, comme STOMP, comme MQTT.
- client multilingue ( De nombreux clients): prend en charge presque toutes les langues utilisées couramment, telles que Java, .NET, Ruby et ainsi de suite.
- Interface de gestion (interface de gestion): fournit facile à utiliser l' interface utilisateur, ce qui permet aux utilisateurs de surveiller et de gérer de nombreux aspects du message Broker.
- Mécanisme de suivi (traçage): Si le message est anormal, RabbitMQ fournit un mécanisme de suivi des messages, les utilisateurs peuvent savoir ce qui est arrivé.
- Plugin mécanisme (système plug - in): fournit un certain nombre de plug-ins pour être étendu à bien des égards, vous pouvez également modifier vos propres plug-ins.
les messages d'RabbitMQ ne peuvent être stockées dans la file d'attente, le producteur (le chiffre le plus bas P) production et finalement remis le message de file d'attente, le consommateur (C sur la figure) peuvent être obtenus à partir du message de file d'attente et de la consommation.
2, le déploiement RabbitMQ
Ci - dessous RabbitMQ défini un code déployé, ce code est constitué de deux parties, à savoir RabbitMQ déploiement et son service proxy. Reflétant le bitnami / rabbitmq: plus tard. Étrangers exposés par les ports en mode NodePort 15672 et 5672, et par le système de fichiers nfs RabbitMQ ont été données persistantes.
#-------------定义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
Par kubectl, exécutez la commande suivante pour déployer cluster base de données Oracle Kubernetes.
$ kubectl create -f rabbitmq.yaml --namespace=kube-public
Une fois le déploiement terminé, vous pouvez voir le port exposé RabbitMQ avec la commande suivante:
$ kubectl get svc --namespace=kube-public
3, validation du déploiement
Dans l'entrée du navigateur: http://10.0.33.203:31199/, visite déployée RabbitMQ. Entrez votre nom d'utilisateur et mot de passe (où l'utilisateur initial / bitnami) dans la page de connexion, le système entrera RabbitMQ page d'accueil.
4, la configuration de l'exécution
Au moment du déploiement, le conteneur peut être modifié en définissant l'environnement d'exploitation variables suivantes:
- RABBITMQ_USERNAME: nom d'utilisateur, par défaut est l' utilisateur
- RABBITMQ_PASSWORD: mot de passe, la valeur par défaut bitnami
- RABBITMQ_HASHED_PASSWORD: mot de passe haché
- RABBITMQ_VHOST: Après le démarrage de l'installation pour créer un hôte virtuel, la valeur par défaut est /
- RABBITMQ_ERL_COOKIE: biscuit Erlang pour déterminer si chaque ligne pour permettre les communications entre les différents noeuds.
- RABBITMQ_NODE_TYPE: Type de noeud, il y a des limitations: les statistiques, la file d' attente ou file d' attente-ram -Disc. La valeur par défaut stats
- RABBITMQ_NODE_NAME: nom de noeud et hôte, par exemple: noeud @ nom d' hôte ou noeud. La valeur par défaut est lapin @ localhost.
- RABBITMQ_NODE_PORT_NUMBER: port noeud, la valeur par défaut 5672
- RABBITMQ_CLUSTER_NODE_NAME: nom du cluster, par exemple: clusternode @ nom d' hôte
- RABBITMQ_CLUSTER_PARTITION_HANDLING: mécanisme de récupération de partition cluster, la valeur par défaut: l'ignorer
- RABBITMQ_MANAGER_PORT_NUMBER: port de gestion, la valeur par défaut est 15672
- RABBITMQ_DISK_FREE_LIMIT: espace RabbitMQ disponible pour le stockage de données lorsque les limites ci - dessous de cette valeur, déclenche la restriction d'écoulement. La valeur par défaut {mem_relative, 1.0}
- RABBITMQ_ULIMIT_NOFILES: contraintes de ressources, le nombre maximum de descripteurs de fichiers ouverts, la valeur par défaut est 65536