当前位置:网站首页 > 云计算与后端部署 > 正文

redis集群客户端连接ip配置(redis 集群 连接)



作者:吴云涛,腾讯 CSIG 高级工程师

导语 | 最近梳理了一下如何用 Flink 来实现实时的 UV、PV 指标的统计,并和公司内微视部门的同事交流。然后针对该场景做了简化,并发现使用 Flink SQL 来 实现这些指标的统计会更加便捷。

一、解决方案描述

1.1 概述

本方案结合本地自建 Kafka 集群、腾讯云流计算 Oceanus(Flink)、云数据库 Redis 对博客、购物等网站 UV、PV 指标进行实时可视化分析。分析指标包含网站的独立访客数量(UV )、产品的点击量(PV)、转化率(转化率 = 成交次数 / 点击量)等。

相关概念介绍:UV(Unique Visitor):独立访客数量。访问您网站的一台客户端为一个访客,如用户对同一页面访问了 5 次,那么该页面的 UV 只加 1,因为 UV 统计的是去重后的用户数而不是访问次数。PV(Page View):点击量或页面浏览量。如用户对同一页面访问了 5 次,那么该页面的 PV 会加 5。

1.2 方案架构及优势

根据以上实时指标统计场景,设计了如下架构图:

涉及产品列表:

二、前置准备

购买所需的腾讯云资源,并打通网络。自建的 Kafka 集群需根据集群所在区域需采用 VPN 连接、专线连接或对等连接的方式来实现网络互通互联。

2.1 创建私有网络 VPC

私有网络(VPC)是一块在腾讯云上自定义的逻辑隔离网络空间,在构建 Oceanus 集群、Redis 组件等服务时选择的网络建议选择同一个 VPC,网络才能互通。否则需要使用对等连接、NAT 网关、VPN 等方式打通网络。私有网络创建步骤请参考帮助文档(https://cloud.tencent.com/document/product/215/36515)。

2.2 创建 Oceanus 集群

流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点的企业级实时大数据分析平台。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。

在 Oceanus 控制台的【集群管理】->【新建集群】页面创建集群,选择地域、可用区、VPC、日志、存储,设置初始密码等。VPC 及子网使用刚刚创建好的网络。创建完后 Flink 的集群如下:

2.3 创建 Redis 集群

在Redis 控制台(https://console.cloud.tencent.com/redis#/)的【新建实例】页面创建集群,选择与其他组件同一地域,同区域的同一私有网络 VPC,这里还选择同一子网。

2.4.1 修改自建 Kafka 集群配置

自建 Kafka 集群连接时 bootstrap-servers 参数常常使用 hostname 而不是 ip 来连接。但用自建 Kafka 集群连接腾讯云上的 Oceanus 集群为全托管集群, Oceanus 集群的节点上无法解析自建集群的 hostname 与 ip 的映射关系,所以需要改监听器地址由 hostname 为 ip 地址连接的形式。

将 config/server.properties 配置文件中 advertised.listeners 参数配置为IP地址。示例:

修改后重启 Kafka 集群。

! 若在云上使用到自建的zookeeper地址,也需要将zk配置中的hostname修改IP地址形式。

2.4.2 模拟发送数据到topic

本案例使用topic为topic为 uvpv-demo。

1)Kafka 客户端

进入自建 Kafka 集群节点,启动 Kafka 客户端,模拟发送数据。

2)使用脚本发送

脚本一:Java 代码参考:https://cloud.tencent.com/document/product/597/54834

脚本二:Python 脚本。参考之前案例中 python 脚本进行适当修改即可:

自建 Kafka 集群联通腾讯云网络,可通过以下前 3 种方式打通自建 IDC 到腾讯云的网络通信。

本方案中使用了 VPN 连接的方式,实现本地 IDC 和云上网络的通信。参考链接:

建立 VPC 到 IDC 的连接(路由表)(https://cloud.tencent.com/document/product/554/52854)

根据方案绘制了下面的网络架构图:

利用流计算 Oceanus 实现网站 UV、PV、转化率指标的实时统计,这里只列取以下3种统计指标:

Kafka topic:uvpv-demo(浏览记录)

Kafka 内部采用 json 格式存储,数据格式如下:

示例中实现了 UV、PV 和转化率3个指标的获取逻辑,并写入 Sink 端。

1、定义 Source

2、定义 Sink

3、业务逻辑

通常情况,会通过 Web 网站来展示统计到的 UV、PV 指标,这里为了简单直接在Redis 控制台(https://console.cloud.tencent.com/redis#/)登录进行查询:

userids: 存储 UV

pagevisits: 存储 PV

conversion_rate: 存储转化率,即购买商品次数/总页面点击量。

通过自建 Kafka 集群采集数据,在流计算 Oceanus (Flink) 中实时进行字段累加、窗口聚合等操作,将加工后的数据存储在云数据库Redis,统计到实时刷新的 UV、PV 等指标。这个方案在 Kafka json 格式设计时为了简便易懂做了简化处理,将浏览记录和产品购买记录都放在了同一个 topic 中,重点通过打通自建 IDC 和腾讯云产品间的网络来展现整个方案。针对超大规模的 UV 去重,微视的同事采用了 Redis hyperloglog 方式来实现 UV 统计。相比直接使用 set 类型方式有极小的内存空间占用的优点,详情见链接:https://cloud.tencent.com/developer/article/。

点击文末「阅读原文」,了解腾讯云流计算 Oceanus 更多信息~

腾讯云大数据

长按二维码 关注我们

到此这篇redis集群客户端连接ip配置(redis 集群 连接)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 安卓软件后缀一般是什么(安卓手机软件的后缀是什么)2026-04-29 19:09:04
  • linux连接redis客户端(linux打开redis客户端)2026-04-29 19:09:04
  • redis16379端口(redis端口号为什么是6379)2026-04-29 19:09:04
  • oracle em端口(oracle端口号怎么看)2026-04-29 19:09:04
  • 软件后缀名改成什么可以打开(软件后缀名为exe怎么打开)2026-04-29 19:09:04
  • 鸿蒙系统软件后缀(鸿蒙系统软件后缀怎么设置)2026-04-29 19:09:04
  • 操作系统教程课后答案(操作系统教程课后答案第六章骆)2026-04-29 19:09:04
  • git部署到服务器上(服务器部署gitlab)2026-04-29 19:09:04
  • 发送验证码过于频繁,请稍后再试怎么办(发送验证码过于频繁,请稍后再试怎么办)2026-04-29 19:09:04
  • py文件打包成exe(py文件打包成exe之后打开没有窗体)2026-04-29 19:09:04
  • 全屏图片