使用Docker搭建 Nginx/Openresty-Kafka-kafkaManager

本文默认读者已经对Docker有一定了解,且清楚使用Docker进行部署的优势。

1.安装Docker(Mac)

官网:https://docs.docker.com/docker-for-mac/install/

1.1 下载 Docker for Mac

地址:https://store.docker.com/editions/community/docker-ce-desktop-mac

1.2 下载完成以后,双击打开文件Docker.dmg

image.png

1.3双击Docker.app启动

image.png

Mac顶部状态栏会出现鲸鱼图标

image.png

1.4点击鲸鱼图标可以进行设置

image.png

1.5 Check versions

1.6 Hello Word

1.6.1 打开命令行终端,通过运行简单的Docker映像测试您的安装工作。

1.6.2 启动Dockerized web server

1.6.3 打开浏览器,输入

image.png

常用命令:

2.使用Docker安装Nginx

Docker Store 地址:https://store.docker.com/images/nginx

其实在上文中Hello World即已经安装了nginx。

2.1 拉取 image

2.2 创建Nginx容器

-d 以守护进程运行(运行在后台)

--name nginx  容器名称;

-p 80:80  端口映射

-v 配置挂载路径 宿主机路径:容器内的路径

关于挂载

为了能直接修改配置文件,以实现对Nginx的定制化,需要进行Docker的相关目录挂在宿主机上。

需要挂载的目录/文件:

a. 挂载文件命令: -v  宿主机路径:容器内的路径:ro

b.宿主机需要先创建后文件,无法自动创建,反之将报错

nginx.conf 示例

2.3 浏览器访问

image.png

在调试过程中往往不会很顺利,这里的技巧是通过阅读中的异常日志进行

2.4 配置反向代理

此处是本机启动一个 SpringBoot web server,端口为:8080,浏览器访问:

image.png

按照上节中示例中的配置方式,增加、、相关配置,对80端口进行监听,重启nginx容器。

浏览器访问:,可以看到正常访问。

3.使用Docker安装Openresty

Openresty是在Nginx基础上做了大量的定制扩展,其安装过程和Nginx基本一致。

Docker Store 地址:https://store.docker.com/community/images/openresty/openresty

3.1 拉取 image

3.2 创建Openresty容器

注意事项和安装Nginx基本一致,在此不再赘述。

4.使用Docker安装Kafka

Docker Store 地址:https://store.docker.com/community/images/spotify/kafka

4.1 拉取 image

4.2 创建Kafka容器

运行命令:

2181为zookeeper端口,9092为kafka端口

输出启动日志:

image.png

4.3 Check zookeeper是否启动

可以使用一些可视化客户端连接端口,进行监控,如zooInspector、Idea Zookeeper Plugin等

zooInspector示例

Idea Zookeeper Plugin

5.使用Docker安装Kafka Manager

Kafka Manager 是Yahoo开源的kafka监控和配置的web系统,可以进行kafka的日常监控和配置的动态修改。

Docker Store 地址:https://store.docker.com/community/images/sheepkiller/kafka-manager

5.1 拉取 image

5.2 创建Kafka Manager容器

运行命令:

2181为上节中部署的zookeeper端口,9000为kafka-manager的web端口

输出启动日志:

image.png

5.3 访问Kafka Manager

浏览器访问:

按照页面上的操作按钮进行kafka集群的注册,具体使用方式再次不做详细介绍。

image.png

注册配置后的界面:

image.png

6.Kafka消息生产与消费

6.1创建maven项目

** pom依赖**

6.2 增加log4j2配置

配置log4j2为能正常打印debug日志,方便进行异常排查   (重要)

在目录下增加文件

关于log4j2的使用,有兴趣的可以了解:Log4j1升级Log4j2实战

6.3 创建生产者示例

简单运行后,打印日志如下:

image.png

6.4 创建消费者示例

简单运行后,打印日志如下:

image.png

6.5 注意事项

由于是在本机使用Docker搭建的环境,遇到最多的问题就是网络问题,如host等的配置,但是只要意识到这点,通过注意分析各种异常日志,便不难排查解决。

项目目录结构

7.结语

致此,本文就介绍完了如何使用Docker搭建 Nginx/Openresty  -  Kafka - kafkaManager。

后续将会继续介绍如何使用Docker搭建一套 nginx+lua+kafka实现的日志收集的教程,敬请期待。

个人介绍:

高广超:多年一线互联网研发与架构设计经验,擅长设计与落地高可用、高性能、可扩展的互联网架构。

本文首发在 高广超的简书博客

END

【推荐书籍】

      扫码购买

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180607B0BJKP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券