- 博客(77)
- 收藏
- 关注
原创 【云原生之k8s】k8s管理工具kubectl详解
kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口kubectl 是官方的 CLI 命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径kubectl 的命令大全k8s官方中文文档:http://docs.kubernetes.org.cn/683.html对资源的增、删、查操作比较容易,但对改的操作就不容易了。...
2022-08-08 20:05:56
1585
1
原创 【云原生之k8s】kubeadm搭建k8s集群
本文将介绍使用工具安装k8s的详细步骤KubeadmKubeadm是一个K8s 部署工具,提供 kubeadm init 和 kubeadm join,用于快速部署Kubernetes 集群。二进制包从github 下载发行版的二进制包,手动部署每个组件,组成Kubernetes 集群。Kubeadm 降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使用二进制包部署Kubernetes 集群,虽然手动部署麻烦点,期间可以学习很多工作原理,也利于后期维护。...
2022-08-04 05:15:00
465
原创 【云原生之k8s】k8s基础详解
Kubernetes的缩写为:K8S,这个缩写是因为k和s之间有八个字符的关系。Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes拥有一个庞大且快速增长的生态系统。Kubernetesd的服务、支持和工具广泛可用。kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。...
2022-08-04 03:45:00
5498
原创 Docker容器之harbor私有仓库部署与管理
之前我们搭建了本地私有仓库,但是本地仓库的管理和使用比较麻烦,个原生的私有仓库并不好用,所以我们采用harbor私有仓库,也叫私服,更加人性化。Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker Registry服务。Harbor以Docker 公司开源的Registry 为基础。...
2022-08-04 01:45:00
383
原创 Docker容器之搭建本地私有仓库
Docker 官方提供了一个搭建私有仓库的镜像 registry ,运行该镜像的容器并且对外暴露5000端口就ok了。通常我们在docker拉取的镜像都是在docker hub或quay.io等公有仓库获取,那么在实际工作中,每个公司如果使用到docker,那么肯定是要搭建自己的私有仓库。那么接下来就通过docker提供的registry镜像来搭建我们自己的私有仓库。...
2022-08-04 00:15:00
264
原创 Docker容器之Consul部署
template 模板(更新)registrator(自动发现)后端每构建出一个容器,会向registrator进行注册,控制consul 完成更新操作,consul会触发consul template模板进行热更新核心机制:consul :自动发现、自动更新,为容器提供服务(添加、删除、生命周期)...
2022-08-03 22:30:00
810
原创 Docker容器之compose容器集群的快速编排
Dockerfile可以让用户管理一个单独的应用容器;而Compose则允许用户在一个模板(YAML格式)中定义一组相关联的应用容器(被称为一个project,即项目),例如一个Web服务容器再加上后端的数据库服务容器等。Docker-Compose项目是基于Python开发的Docker官方开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service)以及容器(container)。...
2022-08-03 18:33:20
360
1
原创 Dockerfile概念简介
我回来了dockerfile构建镜像前要创建一个工作目录,docker build会扫描当前目录下所有文件优化四种方式——》基于docker镜像分层的原理来的① 每一条RUN 指令 都会生成一层新的镜像层② 每一层镜像缓存会继承到下一层中 ——》直接影响到镜像的大小。...
2022-08-03 17:42:50
25542
2
原创 Docker网络模式与数据管理
下次一定写(3)指定分配容器IP地址可以先自定义网络,再使用指定IP运行docker两个容器如果端口一致的情况下,暴露出去会产生地址冲突,所以需要在docker0上做一个端口映射,通过ens33暴露出去端口不同就可以了-p 自定义端口 ( 宿主机端口:容器内端口 )-P 随机端口 (-P 49153起始 49153到65535)1、自定义端口2、需要在容器中开启nginx3、在网页测试1、使用cp命令复制进去容器2、使用cp命令从容器中复制出来首先,我们可以修改/var/l
2022-07-14 17:57:36
410
1
原创 安装docker与docker镜像和容器基本的基本操作
没有前言docker初期版本是1.13(同一版本,开源)——》分类型 1.15 - 1.17 过程中分成两种。①开源社区 docker-ce ②企业版 docker-ee目前 Docker 只能支持 64 位系统。1、关闭防火墙2、安装依赖包3、设置阿里云镜像源4、安装Docker-ce并设置为开机自启为什么要开启路由转发功能?开启路由转发 是让docker0能根据虚拟机ip为自己所有的docker容器分配虚拟ip四、Doceker基本命令(运维)(1)查看镜像——docker
2022-07-13 19:12:29
269
原创 虚拟化+docker概念基本介绍
cpu分片后每个任务处理性能会打对折。虚拟机管理器功能:调用资源两大核心组件:QEMU、KVM①可以理解为队列,核心目的是调用资源内核中的资源,需要把KVM逻辑分割出来的资源运输给QEMU,再给虚拟机。②QEMU它并不是直接调用,而是用I/O方式调用,QEMU把资源调用来的过程借用ioctl,QEMU借助libvirt这个工具调用ioctl,再通过接口,给虚拟机应用程序。①用来逻辑分割物理资源,抽象化为虚拟化资源,根据VMM里的配置,会逻辑分割出多少G,给应用程序,去进行虚拟化。②只接受来自QEMU的请求指
2022-07-12 15:03:55
200
原创 ELK日志分析系统
随着业务量的增长,每天业务服务器将会产生上亿条的日志,单个日志文件达几个GB,这时我们发现用Linux自带工具,cat grep awk 分析越来越力不从心了,而且除了服务器日志,还有程序报错日志,分布在不同的服务器,查阅繁琐。ELK是三个软件的统称,即Elasticsearch、Logstash和Kibana三个开源软件的缩写。这三款软件都是开源软件,通常配合使用,并且都先后归于Elastic.co企业名下,故被简称为ELK协议栈。ELK主要用于部署在企业架构中,收集多台设备上多个服务的日志信息,并将其统
2022-07-10 13:20:43
373
原创 GFS分布式文件系统
开源的分布式文件系统,由存储服务器、客户端以及NFS/Samba 存储网关组成无元数据服务器,常见的分布式文件系统有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。GFS是一个可扩展、开源的分布式文件系统(可以很好的体现出弹性伸缩的特点),用于大型的、分布式的、对大量数据进行访问的应用,在传统的解决方案中,GFS 能够灵活的结合物理的,虚拟的和云资源去体现高可用
2022-07-10 12:58:11
836
原创 rsync 远程同步
rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过
2022-07-10 12:42:09
656
原创 Redis(主从复制、哨兵模式、集群)概述及部署
主从复制适用于数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复,哨兵模式基于主从复制,部署哨兵模式必须先部署主从复制,其在主从复制基础上提供了自动化的故障恢复。但是其写操作无法负载均衡,存储能力受到单机的限制。在MySQL数据库中为保证数据的高可用性,其有主从复制与MHA实现高可用。1、修改master主配置文件2、重启redis1、修改slave1节点配置2、重启slve服务1、在master上查看日志2、在master节点上验证从节点3、创建数据验证哨兵的核心功能
2022-07-07 20:33:48
191
原创 NoSQL之 Redis配置与优化
Redis基于内存运行的数据库,缓存是其最常应用的场最之一Redis是非关系型数据库,是单进程模型缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较慢的一方起到加速作用,比如CPU的一级、二级缓存是保存了CPU最近经常访问的数据,内存是保存CPU经常访问硬盘的数据,而且硬盘也有大小不一的缓存,甚至是物理服务器的raid 卡有也缓存,都是为了起到加速CPU 访问硬盘数据的目的,因为CPU的速度太快了,CPU需要的数据由于硬盘往往不能在短时间内满足CPU的需求,因此CPU缓存、内存、Raid
2022-07-06 20:29:20
307
原创 MySQL之MHA高可用配置及故障切换实例
MHA解决了mysql数据库单点故障,提高了数据的安全性。MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA 的出现就是解决MySQL 单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。MHA Node(数据节点)MHA Node 运行在每台 MySQL 服务器上。MHA Manager(管理节点)MHA Manager
2022-06-29 23:30:29
351
原创 MySQL主从复制与读写分离
在实际生产环境中,面对巨大的并发量和数据读写压力,我们往往需要多台数据库服务器来提共服务,并且将读和写的的压力分担到不同的服务器上,以满足在安全性与高可用性上的需求。MySQL 的主从复制和 MySQL 的读写分离两者有着紧密联系,首先要部署主从复制,只有主从复制完成了,才能在此基础上进行数据的读写分离。基于语句的复制(STATEMENT)。在主服务器上执行的 SQL 语句,在从服务器上执行同样的语句。MySQL 默认采用基于语句的复制,效率比较高。基于行的复制(ROW)。把改变的内容复制过去,而不是
2022-06-27 20:47:57
1207
4
原创 MySQL高级SQL语句
对MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。例如只取10条数据、对查询结果进行排序或分组等等。使用select语句可以将需要的数据从 mysql 数据库中查询出来,如果对查询的结果进行排序操作,可以使用 order by 语句完成排序,并且最终将排序后的结果返回给客户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段。创建一个新表ORDER BY 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段
2022-06-27 17:30:56
251
原创 MySQL日志管理、备份与恢复
在生产中,数据的重要性尤其的高,在我们听过的各种生产上的事故中,关于数据丢失误删的占了大多数,并导致了很严重的后果,所以数据备份对于我们来说非常重要。MySQL的日志默认保存位置为:/usr/local/mysql/data下配置文件位于:/etc/my.cnf文件中的[mysqld]内用来记录当MySQL启动、停止或运行时发生的错误信息,默认开启②通用查询日志用来记录MySQL的所有连接和语句,默认是关闭的③二进制日志用来记录所有更新了数据或者已经潜在更新了数据的语句,记录了数据的更改,可用于数
2022-06-23 21:58:50
311
原创 MySQL 索引、事务与存储引擎
索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度。索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容。索引是表中一列或者若干列值排序的方法。建立索引的目的是加快对表中记录的查找或排序。设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度,这是创建所有的最主要的
2022-06-21 22:19:01
151
原创 MySQL数据库用户管理
‘用户名’:指定将创建的用户名‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;若使用加密密码,需要先使用select password(‘密码’); 获取密文,再在语句中添加 password ‘密文’;若省略“identified by”部分,则用户的密码将为空(不建议使用)案例1:使用明文创建用户案例2:使用密文创建用户创
2022-06-15 20:27:37
127
原创 mysql数据库
mysql是目前最流行的关系型数据库管理系统,也是在WEB应用方面最好的应用软件之一,而学习mysql操作对于我们学习mysql数据库是必不可少的。设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.456,但总个数还以实际为准,即6位。整数部分最大是3位,如果插入数12.123456,存储的是12.1234,如果插入12.12,存储的是12.1200。decimal (5,2),当输入的数值后的小数位小于两位时,会拿0补全两位;当超过两位时,小数点后第三位是
2022-06-15 00:31:00
2344
原创 数据库基本概念
本文主要介绍了数据库的一些发展史与基本概念,以及对mysql的初步认识,而mysql最为应用最为广泛的数据库服务,学习它对我们学习这一领域的知识的有着非常好的帮助作用。相同格式和类型的数据统一存放在一起,而不会把"人”和"书"混在一起存储。这样,数据的存储就能够井然有序。使用一些介质进行存储,例如文字存在文档中数据库可以完成数据持久化保存+快速提取数据如何保存:最外层是mysql服务—》mysql数据库—》数据表—》记录为行,字段为列—>数据保存在一行行记录中**关系数据库的表由记录组成,记录由字段组成,字
2022-06-13 15:19:24
895
原创 Haproxy集群
HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。虽然在性能上跟硬件负载均衡设备和LVS相比有很大不足,但是因其成本较低,且在性能与稳定性都有着明显优势,成为了免费负载均衡软件的主流选择。Haproxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。LVS在企业应用中抗负载能力很强,但存在不足LVS不支持正则处理,不能实现动静分离对于大型网站,LVS的实施配置复杂,维护成本相对较高Haproxy是一款可提供高可
2022-06-11 18:18:03
228
原创 LVS+Keepalived 高可用群集
keepalived是一个Linux下基于VRRP协议来实现的LVS高可用方案,是为了LVS设计的监控集群系统中各个服务器的状态并将故障服务器从系统中剔除的工具,需要人工操作只有对故障节点的修复,它在企业中广泛应用。专为LVS和HA设计的一款健康检查工具支持故障自动切换(Failover)支持节点健康状态检查(Health Checking)是针对路由器的一种备份解决方案由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态若当前在线的
2022-06-09 21:07:09
96
原创 LVS负载均衡群集部署——DR直接路由模式
LVS的DR模式,是LVS的几种工作模式最常见的一种工作模式。不过,对于另外几种,也相对复杂一些。LVS-DR(Linux Virtual Server Director Server)工作模式,是生产环境中最常用的一 种工作模式。LVS-DR 模式,Director Server 作为群集的访问入口,不作为网关使用节点 Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过 Director Server。为了响应对整个群集的访问,Director S
2022-06-08 22:01:13
147
原创 LVS负载均衡群集——NAT模式实例
随着互联网的发展,站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求也越来越高,单台服务器也将难以无法承担所有的访问需求。所以负载均衡的技术应运而生,而LVS就是企业中非常常用的一种集群技术。Cluster,集群、群集,为解决某个特定问题将多台计算机组合起来形成的单个系统由多台主机构成,但对外只表现为一个整体Scale UP:垂直扩展,向上扩展,增强,性能更强的计算机运行同样的服务Scale Out:水平扩展,向外扩展,增加设备,并行地运行多个服务调度分配问题,Cluster垂直扩展不再提及:随着计算机
2022-06-08 20:23:43
233
原创 Tomcat多实例与负载均衡
tomcat由于其优秀的扩展性能,支持负载均衡的优点,在很多中小型系统和并发用户不是很多的场合中被普遍使用。所以,学习tomcat的多实例与负载均衡配置对我们的帮助是非常大的。在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境。关闭防火墙将安装Tomcat所需要的软件包传到/opt目录下切换至/opt下,安装JDK查看java版本切换至/opt下,解压tomcat包新建目录/usr/local/tomcat将解压后的包拷贝到/usr/loc
2022-06-02 23:06:19
475
原创 Tomcat服务部署及优化
自 2017 年 11 月编程语言排行榜 Java 占比 13%,高居榜首,Tomcat 也一度成为 Java 开发人员的首选。其开源、占用系统资源少、跨平台等特性被深受喜爱。所以今天我就跟大家讲讲一些关于Tomcat部署、优化等基本知识。Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。Tomcat 属于轻量级应用服务器
2022-06-01 00:00:32
730
原创 Nginx Rewrite
Nginx Rewrite前言一、nginx rewrite概述(1)(2)跳转场景(3)跳转实现(4)rewrite实际场景①nginx跳转需要的实现方式②rewrite放在server{}, if{},location{}段中③对域名或参数字符串二、常见的Nginx正则表达式(1)常见的正则表达式的元字符(2)正则表达的优势③Nginx使用正则的作用三、rewrite(1)rewrite语法(2)rewrite执行顺序四、location分类和优先级(1)location匹配规则格式(2)locatio
2022-05-30 16:09:04
26805
2
原创 Nginx优化与防盗链
Nginx优化与防盗链前言一、隐藏版本号(1)查看版本号(2)隐藏版本号二、修改用户和组三、缓存时间四、日志分割五、连接超时六、更改进程数七、配置网页压缩八、配置防盗链总结前言优化Nginx有效的降低我们的成本,提高高并发量,降低内存,提高用户体验,同时还能增强网站的安全性。一、隐藏版本号(1)查看版本号方法一查看服务版本号,可以在服务器上直接查看nginx -v或curl -i 192.168.48.10 #查看服务版本号 方法二在浏览器中查看打开浏览器,打开我们ngi
2022-05-26 23:48:36
160
原创 Nginx网站服务
Nginx网站服务前言一、Nginx简介(1)概述(2)Nginx与Apache的优缺点比较(3)简述Nginx和Apache的差异二、编译安装nginx(1)关闭防火墙,将所需软件包上传到/opt目录下(2)安装依赖包(3)创建运行用户、组(4)编译安装(5)优化路径(6)测试结果(7)检查、启动、重启、停止nginx服务(8)添加nginx系统服务三、平滑升级nginx版本(1)选择需要的版本(2)下载软件(3)编译升级(4)升级服务(5)验证结果四、Nginx配置文件前言相比较于apache,ng
2022-05-22 00:34:09
375
原创 源码编译安装LAMP
源码编译安装LAMP前言一、LAMP概述(1)各组件的作用(2)各组件安装顺序(3)数据流向![在这里插入图片描述](https://img-blog.csdnimg.cn/a48a7ce5c3434259b28cee7a03380a38.png)二、编译安装apache httpd服务(1)关闭防火墙,将安装apache的所需软件包上传到/OPT目录下(2)安装环境依赖包(3)配置软件模块(4)编译及安装(5)优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别(6)添
2022-05-20 00:28:26
144
原创 Web基础与HTTP协议
Web基础与HTTP协议前言一DNS与域名(1)域名的概念(2)域名的申请二、DNS解析的三种方式(1)/etc/hosts(2)/etc/resolv.conf(3)网卡中配置三、域名服务与域名注册(1)域名(2)域名服务(3)域名注册四、网页访问 (HTTP/HTTPS)(1)网页基本概念(2)HTML(3)网页基本标签①头标签中常用标签②内容标签中常用标签③网页基本标签前言一DNS与域名(1)域名的概念网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的固定的 IP 地址
2022-05-19 18:54:08
226
原创 Firewalld防火墙基础
Firewalld防火墙基础前言一、Firewalld概述二、firewalld与iptables的区别三、firewalld区域的概念(1)direwalld防火墙9个区域四、firewalld数据处理流程五、firewalld检查数据包的源地址规则六、firewalld防火墙的配置方式七、区域管理(1)显示当前系统中的默认区域(2)显示默认区域的所有规则(3)显示当前正在使用的区域及其对应的网卡接口(4)设置默认区域八、服务管理(1)查看默认区域内允许访问的所有服务(2)添加httpd服务到public
2022-05-17 23:22:06
142
原创 iptables之SNAT与DNAT
iptables之SNAT与DNAT前言一、SNAT策略及应用(1)SNAT策略概述①SNAT应用环境②SNAT的策略原理③SNAT转换前提条件(2)开启SNAT命令(3)SNAT案例二、DANT原理与应用(1)DNAT概述①DNAT应用环境②DNAT原理③DNAT转换前提条件(2)开启DNAT命令(3)DNAT转化(4)临时修改目标端口DNAT案例前言一、SNAT策略及应用(1)SNAT策略概述①SNAT应用环境局域网主机共享单个公网IP地址接入Internet(私有IP不能在Internet中
2022-05-17 22:35:28
595
原创 iptables防火墙
iptables防火墙前言一、iptables防火墙概述(1)概述(2)netfilter与iptables1、netfilter2、iptables3、包过滤的工作层次4、iptables的表、链结构①四标五链②四表③五链④数据包过滤的匹配流程⑤规则表之间的匹配顺序⑥规则链之间的顺序⑦规则链内部各条防火墙规则之间的顺序二、编写防火墙规则(1)安装iptables(2)基本语法(3)常用的控制类型(4)常用的管理选项①添加新的规则(规则表从上到下)②查看规则表③删除、清空规则④设置默认策略(5)规则的匹配条
2022-05-17 21:36:23
269
原创 Shell脚本之免交互操作
Shell脚本之免交互操作前言一、HereDocument免交互(1)免交互概念(2)基本语法格式二、Here Document变量设定三、格式控制(1)关闭变量(2)经典案例前言在Linux系统中,我们必不可少的会使用一些交互性的命令来完成我们需要的操作。而当我们试图在脚本中实现这些操作时,就需要通过免交互操作来代替我们操作。一、HereDocument免交互(1)免交互概念使用I/O重定向的方式将命令列表提供给交互式程序标准输入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构
2022-05-17 15:52:46
406
原创 Shell编程三剑客之awk
Shell编程三剑客之awk前言一、awk工具(1)awk介绍(2)awk工作原理(3)awk常用内置变量前言awk作为Linux三剑客之一,在Linux中使用的频率非常高。它在处理文本信息方面的便利性与可操作性,使得其在很多情况下都适用,因此掌握awk是我们掌握Shell脚本语言的一个必要的要求。一、awk工具(1)awk介绍AWK 是一种处理文本文件的语言,是一个强大的文本分析工具可以在无交互的模式下实现复杂的文本操作相较于sed常作用于一整个行的处理,awk则比较倾向于一行当
2022-05-12 11:14:20
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人