轻量级微服务架构JAVA开发程序员

消息中间件 NATS 集群的构建与使用

2017-12-26  本文已影响256人  Anoyi

NATS 是一个开源的、轻量级的、高性能的分布式消息通信系统,实现了高可伸缩性和优雅的发布/订阅模型。
NATS 适合云基础设施的消息通信系统、物联网设备消息通信和微服务架构。

❤️ 环境准备

三台服务器,建立 Docker Swarm 集群,一个 Manager,两个 Worker。

❤️ Nats 集群架构设计

架构图

❤️ 搭建集群

1、【Manager】创建集群网络

docker network create -d overlay --attachable mongo

--attachable 允许其他容器加入此网络

2、创建 Nats 集群

2.1、【Manager】创建 stack.yml

version: '3.3'
services:
  nats1:
    image: registry.docker-cn.com/library/nats
    command: --cluster nats://0.0.0.0:5222 -routes nats://nats2:5222,nats://nats3:5222
    ports:
      - 4222
    networks:
      - nats
    deploy:
      restart_policy:
        condition: on-failure
      replicas: 1
      placement:
        constraints:
          - node.hostname==manager
  nats2:
    image: registry.docker-cn.com/library/nats
    command: --cluster nats://0.0.0.0:5222 -routes nats://nats1:5222,nats://nats3:5222
    ports:
      - 4222
    networks:
      - nats
    deploy:
      restart_policy:
        condition: on-failure
      replicas: 1
      placement:
        constraints:
          - node.hostname==worker1
  nats3:
    image: registry.docker-cn.com/library/nats
    command: --cluster nats://0.0.0.0:5222 -routes nats://nats1:5222,nats2:5222
    ports:
      - 4222
    networks:
      - nats
    deploy:
      restart_policy:
        condition: on-failure
      replicas: 1
      placement:
        constraints:
          - node.hostname==worker2
networks:
  nats:
    external: true

2.2、【Manager】启动集群

docker stack deploy -c stack.yml nats

2.3、【Manager】查看服务的启动情况

docker service ls

3、连接集群

nats://managerIP:30000
nats://managerIP:30001
nats://managerIP:30002
nats://nats1:4222
nats://nats2:4222
nats://nats3:4222

❤️ 在 Spring Boot 中连接 Nats 集群

微服务 WebSocket 集群项目 AnyIM 实战

上一篇下一篇

猜你喜欢

热点阅读