美文网首页
在Rancher中部署Nsq

在Rancher中部署Nsq

作者: bysir | 来源:发表于2019-07-31 17:50 被阅读0次

前提环境

Rancher1.6 + Cattle

其他网络或者架构可自行研究, 希望本文能为你提供灵感.

目的

  • 高可用: 也就是down机恢复 / 没有单点故障. 这在没有docker时的传统部署中是一个难点, 但现在Rancher帮我们做了, 我们不用太担心.
  • 易于配置与扩展: 传统配置ip的方式我们是不推荐的, 需要有更好的方案.

必备知识

  1. 能够使用Rancher添加 服务/应用, 并会配置"挂载"
  2. Cattle环境中的内部DNS服务, 看这篇文章即可.
  3. Nsq的Nsqd与Nsqlookupd的关系以及连接原理, 可以多读读官方文档: nsqd, nsqlookupd, production, topology_patterns. 或者我写的另一篇文章: Nsq从入门到实践

开始部署

流程如下

  1. 创建nsqd与nsqlookupd服务, 重点是nsqd容器中hostname的配置.
  2. 在生产者服务中Link nsqd服务.
  3. 在消费者服务中Link nsqlookupd服务.
  4. 就可以用了.

就是这么简单且枯燥.

详细如下

创建nsqd与nsqlookupd

新建应用: 名为nsq

添加服务, 可以参考以下docker-compose.yml

version: '2'
services:
  nsqlookupd:
    image: nsqio/nsq
    command:
    - /nsqlookupd
  nsqd:
    image: nsqio/nsq
    hostname: nsqd.nsq
    volumes:
    - /workspace/docker/volumes/nsqd/data:/data
    links:
    - nsqlookupd:nsqlookupd
    command:
    - /nsqd
    - --lookupd-tcp-address=nsqlookupd:4160
    - --data-path=/data

需要注意以下几点

  1. nsqd 容器需要配置lookupd地址: lookupd-tcp-address=nsqlookupd:4160, 和挂载的数据文件: --data-path=/data, 并Link nsqlookupd服务.
  2. 重点!! nsqd 容器不用配置broadcast-address, 而是使用默认的主机名, 所以需要配置主机名, 可以看到这里配置的是hostname: nsqd.nsq, 这个值是有意义的, 是{服务名称}.{应用名称}, 详情看: Cattle环境中的内部DNS服务

使用hostname有一个好处: 不用去生产者服务Link这个nsqd节点, 当需要部署多个nsqd节点时 这点将大大减少配置复杂度.

nsqd配置好了之后是这样的:


命令

网络

nsqlookup不用配置什么, 所以不截图了.

生产者与消费者服务连接nsqd与nsqdlookupd

需要在生产者服务中添加nsqd的链接

生产者端
这样就可以在生产者代码中使用nsqd这个host去连接nsqd服务了.

同理需要在消费者服务添加nsqlookupd链接


消费者端

完成, 现在就可以正常使用nsq了.

再扩展一个nsqd节点

当你发现一个nsqd不够用了之后就需要再添加一个Nsqd节点, 为了方便我们把这个节点成为 nsqd-baba.

由于我们使用hostname的方式来指定nsqd的广播地址, 所以部署这个节点是十分方便的, 仅仅只需要在nsq应用中添加一个nsqd-baba服务. 配置和上面添加第一个nsqd节点时大同小异:

  • 这次需要将hostname(主机名)配置为nsqd-baba.nsq.
  • 挂载需要再重新指定一下, 因为nsqd节点的data文件夹不能被多个nsqd节点共用.

相关文章

  • 在Rancher中部署Nsq

    前提环境 Rancher1.6 + Cattle 其他网络或者架构可自行研究, 希望本文能为你提供灵感. 目的 高...

  • 项目在Rancher环境遇到的问题

    spring cloud项目用rancher部署的时候,eureka 注册的问题。 在rancher部署一个 De...

  • rancher配置负载均衡

    前面的文章中已经讲了怎么通过gitlab+rancher实现devops自动化部署,今天继续讲怎么在rancher...

  • NSQ的介绍和集群部署

    该文对 NSQ 进行粗略的介绍和部署,旨在入门认识NSQ和个人记录学习; NSQ说明 NSQ 是实时的分布式消息处...

  • 2019-02-28-rancher HA 部署

    参考:Rancher Server HA的高可用部署实验 概述 本次部署使用了三台机器: Rancher_HA1:...

  • docker 搭建nsq集群

    nsq简介 nsq是go实现的高性能消息队列,部署相当简单。 一.搭建nsq集群 1.拉取docker镜像 2.启...

  • 部署nsq

    本机ip 172.18.53.85 默认端口 4150 nsqd-tcp-address4151 nsqd-htt...

  • 快速体验rancher

    部署rancher 主机配置:2Core4G 部署k3s 主机配置:4Core8G 应用 登录rancher主机,...

  • rancher2.3.3详细部署文档

    rancher2.3.3详细部署文档 rancher 简介 rancher 是全栈化企业级容器应用解决方案 Ran...

  • rancher-server容器HA部署

    目标: 部署rancher-server容器haproxy(单节点部署) 准备: mairadbhaproxydo...

网友评论

      本文标题:在Rancher中部署Nsq

      本文链接:https://www.haomeiwen.com/subject/ifbtdctx.html