OpenShift 4 - 基于 Kafka + Quarkus 的实时飞行跟踪应用

34 篇文章 1 订阅
7 篇文章 0 订阅

OpenShift / RHEL / DevSecOps 汇总目录
文本已在OpenShift 4.10环境中进行验证。

本文如何部署一个基于 Kafka + Quarkus 微服务的实时飞行跟踪应用。

应用架构

  • map-service:带有websocket、rest api的网络应用程序,用于与浏览器互动,以显示和接收模拟实时飞行追踪的命令。
  • postgresql:用于机场数据的关系型数据库
  • data-simulator:用于模拟实时飞行的后台服务(模拟雷达数据和应答器数据到kafka)。
  • kafka broker:用于整合系统间数据的消息传递系统
  • data-aggregator:流处理服务,用于聚合(合并)雷达数据和应答器数据到飞行数据,并将其放回kafka,以便从map-service中显示。
    在这里插入图片描述

配置

配置 Kafka 资源

  1. 在 OperatorHub中找到 AMQ Streams,然后使用默认的配置安装即可。
    在这里插入图片描述
  2. 创建 user1-flight 项目。
  3. 在 “开发者” 视图中进入 “+添加” 菜单,然后在“添加”页面中点击 “Operator 支持的” 链接。
  4. 在 “Operator 支持的” 页面中找到 “Kafka” 然后点击进入。
    在这里插入图片描述
  5. 使用默认配置创建名为 my-cluster 的 Kafka 资源。
    在这里插入图片描述
  6. 创建完应该可以看到 Kafka 资源。
    在这里插入图片描述
  7. 在 “Operator 支持的” 页面中找到 “Kafka Topic” 然后点击进入。
    在这里插入图片描述
  8. 在 “创建KafkaTopic” 页面中将名称设为 “flight-data”,其他使用默认配置,然后创建 KafkaTopic。
    在这里插入图片描述
  9. 使用上述步骤创建名为 “radar-data” 和 “transponder-data” 的 KafkaTopic。
  10. 在 “拓扑” 视图中选中 my-cluster-kafka,然后在 Pod 列表中点击进入任意一个。
    在这里插入图片描述
  11. 在 Pod 的 “终端” 栏目中执行执行以下命令,可以返回前面创建的 Kafka Topic。
sh-4.4$ ./bin/kafka-topics.sh --bootstrap-server=localhost:9092 --list
__consumer_offsets
__strimzi_store_topic
flight-data
radar-data
transponder-data

在这里插入图片描述

配置 PostgreSQL

  1. 在 “开发者目录“ 页面中的 Databases 中查找 PostgreSQL,然后进入 ”PostgreSQL (Ephemeral)“。
    在这里插入图片描述
  2. 按照以下配置创建 PostgreSQL
    Database Service Name: postgresql
    PostgreSQL Connection Username: flighttracker
    PostgreSQL Conneciton Password: flighttracker
    PostgreSQL Database Name: flighttracker
  3. PostgreSQL完成部署后可以在 “拓扑” 中看到如下:
    在这里插入图片描述
  4. 在上图的 “详情” 栏目中点击标签右侧的“编辑”,在“编辑标签”对话框中增加 app.openshift.io/runtime=postgresql 标签。
    在这里插入图片描述
  5. 在保存标签后,在“拓扑”中显示的应用图标变为了 PostgreSQL。

部署 flight-data-aggregator

  1. 在 “添加” 页面中进入 “容器镜像”
  2. 在 “部署镜像” 页面中按照以下配置创建应用:
    来自外部容器镜像仓库的镜像名称:quay.io/chatapazar1/data-aggregator
    运行时图标:quarkus
    应用程序:CREATE 应用程序
    应用程序名称:flight-data-aggregator
    名称:flight-data-aggregator
    创建应用程序的路由:取消选择
    在这里插入图片描述
  3. 容器部署好后可以在 “拓扑” 中看到:
    在这里插入图片描述

部署 data-simulator

  1. 在 “添加” 页面中进入 “从 Git 导入”。
  2. 在 “从 Git 导入” 页面中按照以下配置创建应用:
    Git Repo URL:https://github.com/chatapazar/openshift-workshop.git
    Context dir:/data-simulator
    构建器镜像:Java
    构建器镜像版本:openjdk-11-ubi8
    应用程序:CREATE 应用程序
    应用程序名称:flight-data-simulator
    名称:flight-data-simulator
    创建应用程序的路由:取消选择
  3. 部署好后可以在 “拓扑” 中看到:
    在这里插入图片描述
  4. 在上图 “详细” 栏目中点击标签右侧的 “编辑”,进入“编辑标签” 对话框。
    在这里插入图片描述
  5. 删除 app.openshift.io/runtime=java 标签,然后添加 app.openshift.io/runtime=quarkus 标签。
  6. 在保存标签后,在“拓扑”中显示的应用图标变为了 Quakus。

部署 map-service

  1. 在 “添加” 页面中进入 “从 Git 导入”。
  2. 在 “从 Git 导入” 页面中按照以下配置创建应用:
    Git Repo URL:https://github.com/chatapazar/openshift-workshop.git
    Context dir:/map-service
    构建器镜像:Java
    构建器镜像版本:openjdk-11-ubi8
    应用程序:CREATE 应用程序
    应用程序名称:flight-map-service
    名称:flight-map-service
  3. 部署好后可以在 “拓扑” 中看到:
    在这里插入图片描述
  4. 编辑标签,删除 app.openshift.io/runtime=java 标签,然后添加 app.openshift.io/runtime=quarkus 标签。

配置拓扑显示

  1. 在 “拓扑” 中分别选中 flight-map-service、flight-data-simulator 和 flight-data-aggregator 部署,在 “详情“ 中编辑"注解”。在 ”编辑注解“ 对话框中增加以下内容”
    键:app.openshift.io/connects-to
    值:[{“apiVersion”:“kafka.strimzi.io/v1beta2”,“kind”:“Kafka”,“name”:“my-cluster”}]
    在这里插入图片描述
  2. 完成后 “拓扑” 页面将显示:
    在这里插入图片描述
  3. 在 “拓扑” 中选中 flight-map-service,然后将出现的虚线链分别接到 flight-data-simulator 和 postgresql 图标上。
    在这里插入图片描述
  4. 最后“拓扑”中将显示:
    在这里插入图片描述

访问应用

  1. 点击 flight-map-service 图标右上方的箭头,打开 URL。
    在这里插入图片描述
  2. 在应用页面中打开 Show flight creation form 和 Show WebSocket log 选项,然后点击下方 START 20 RANDOM FLIGHTS 按钮,可以看到模拟的数据的运行。
    在这里插入图片描述

参考

https://github.com/liuxiaoyu-git/openshift-workshop-1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值