视频讲解编程题:Docker, Kafka, Elastic Search

2021-01-04 14:48:21 浏览数 (1)

视频讲解

1_基础环境准备

2_新增商品需求

3_查询商品需求

说明

项目代码文件夹:es-kafka-hw

SQL 代码:hw.sql

基础环境搭建:基础环境准备.md

系统架构图

基础环境准备

在 VM 中克隆出一个新的虚拟机,IP 地址为 192.168.186.20。

在 Docker 中安装 MySQL 容器,端口映射到宿主机。

在 Docker 中安装 ElasticSerach 容器,端口映射到宿主机。

在 Docker 中安装 Kibana 容器,配置 ES 的 URL 地址,端口映射到宿主机。

在 Centos7 中创建集群网络,192.168.0.0/24 命名为:kafka

在 Docker 中搭建 Zookeeper 集群。

在 Docker 中搭建 Kafka 集群。

在 Docker 中安装 Kafka-Manager,端口映射到宿主机。

登录到 Kafka 容器,创建主题:product,3 个分区,3 个副本。

要求将基础环境搭建流程、使用命令、效果截图等信息编写到一个 Markdown 文档中。

数据库和索引库准备

新建索引库 renda,类型名称为 product,Mapping 要求:

  • name"type" : "text", "analyzer" : "ik_max_word"
  • goods_desc"type" : "text", "analyzer" : "ik_max_word"

其它映射关系可以根据数据类型、需求场景自行定义。

需求

新增商品

流程图

流程说明

1、持久化:商品微服务将用户传入的商品信息封装为商品对象持久化到数据库。

2、生产消息:商品微服务将商品对象保存后,获得该商品对象在数据库中记录的 id,将该 id 作为消息发送到 Kafka 的 product 主题中。

3、监听并消费消息:ES 微服务监听 Kafka 的 product 主题,收到新消息(新插入商品的 id)后,从数据库中查询该 id 对象的商品对象。

4、添加文档:ES 微服务将通过 id 查询到的商品对象,添加到 Elasticsearch 的 renda 索引库中。

代码语言:javascript复制
{
    "name": "New Phone17",
    "price": ,
    "flag": ,
    "goodsDesc": "商品描述。。。",
    "images": "www.baidu.com",
    "goodsStock": ,
    "goodsType": "3"
}
代码语言:javascript复制
{
    "name": "华为手机 P40",
    "price": ,
    "flag": "1",
    "goodsDesc": "华为P40 5G手机 分期 麒麟990 晨曦金 8 256GB",
    "images": "https://img14.360buyimg.com/n0/jfs/t1/133822/33/8832/135985/5f4da578E7c6efde1/2cd53a53083ab2ed.jpg",
    "goodsStock": ,
    "goodsType": "1"
}

商品查询

流程图

需求描述

实现商品查询功能,类似电商站内商品搜索。

  • 查询条件:name
  • 分页查询:每页 5 条。
  • 排序规则:price,升序。
  • 结果过滤:商品价格范围过滤。
  • 实现高亮效果。

0 人点赞