最新FastDFS分布式文件系统,三面美团、四面阿里成功斩下offer

感受:

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。

特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档

拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

FastDFS架构包括Tracker server 和 Storage server 。客户端请求Tracker server 进行文件上传、下载,通过Ttacker server 调度,最总由Storage server 完成文件上传和下载。

Tracher server 作用是负载均衡和调度,通过Tracker server 在文件上传时可以根据一些策略找到Storage server 提供的文件上传服务。可以将Tracker称为追踪服务器或调度服务器。

Storage server 的作用是文件存储,,客户端上传的文件最终存储在Storage服务器上,不过Storage server 没有实现自己的文件系统,而是利用操作系统的文件系统来管理文件。可以将Storage称为存储服务器。

6.在Nginx中安装FastDFS模块


1.上传fastdfs-nginx-module_v1.16.tar.gz到/usr/local目录

2.解压,进入fastdfs-nginx-module/src目录

3.修改config文件:把/usr/local改成/usr(共3处)

4.cp mod_fastdfs.conf /etc/fdfs/

5.修改/etc/fdfs/mod_fastdfs.conf内容

vim /etc/fdfs/mod_fastdfs.conf

base_path=/home/FastDFS

tracker_server=192.168.70.130:22122

tracker_server=192.168.70.133:22122(多个tracker配置多行)

url_have_group_name=true #URL中包含group名称

store_path0=/home/FastDFS/fdfs_storage #指定文件存储路径

6.在Nginx的解压目录下重新生成MakeFile

./configure \

–prefix=/usr/local/nginx \

–pid-path=/var/run/nginx/nginx.pid \

–lock-path=/var/lock/nginx.lock \

–error-log-path=/var/log/nginx/error.log \

–http-log-path=/var/log/nginx/access.log \

–with-http_gzip_static_module \

–http-client-body-temp-path=/var/temp/nginx/client \

–http-proxy-temp-path=/var/temp/nginx/proxy \

–http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

–http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

–http-scgi-temp-path=/var/temp/nginx/scgi \

–add-module=/usr/local/fastdfs-nginx-module/src

7.重新编译,还是执行make命令

8.用objs目录下的nginx文件替换/usr/local/nginx/sbin目录下的nginx文件

保险起见可以把被替换的/usr/local/nginx/sbin/nginx程序文件备份一下

如果看到Nginx文件忙无法替换的提示,则停止Nginx程序

/usr/local/nginx/sbin/nginx -s quit

9.在Nginx中加入如下配置

server {

listen 80;

server_name 192.168.70.130;

location /group1/M00/{

ngx_fastdfs_module;

}

}

10.启动Nginx

[root@rich conf]# /usr/local/nginx/sbin/nginx

ngx_http_fastdfs_set pid=10013

11.浏览器访问

#PRG=/usr/local/bin/fdfs_trackerd

PRG=/usr/bin/fdfs_trackerd

#if [ ! -f /usr/local/bin/stop.sh ]; then

echo “file /usr/local/bin/stop.sh does not exist!”

exit 2

#fi

if [ ! -f /usr/local/fdfs/stop.sh ]; then

echo “file /usr/local/fdfs/stop.sh does not exist!”

exit 2

fi

#if [ ! -f /usr/local/bin/restart.sh ]; then

echo “file /usr/local/bin/restart.sh does not exist!”

exit 2

#fi

if [ ! -f /usr/local/fdfs/restart.sh ]; then

echo “file /usr/local/fdfs/restart.sh does not exist!”

exit 2

fi

#stop() {

/usr/local/bin/stop.sh $CMD

RETVAL=$?

return $RETVAL

#}

stop() {

/usr/local/fdfs/stop.sh $CMD

RETVAL=$?

return $RETVAL

}

#restart() {

/usr/local/bin/restart.sh $CMD &

#}

restart() {

/usr/local/fdfs/restart.sh $CMD &

}

3.修改/etc/init.d/fdfs_storaged

#PRG=/usr/local/bin/fdfs_storaged

PRG=/usr/bin/fdfs_storaged

#if [ ! -f /usr/local/bin/stop.sh ]; then

echo “file /usr/local/bin/stop.sh does not exist!”

exit 2

#fi

if [ ! -f /usr/local/fdfs/stop.sh ]; then

echo “file /usr/local/fdfs/stop.sh does not exist!”

exit 2

fi

#if [ ! -f /usr/local/bin/restart.sh ]; then

echo “file /usr/local/bin/restart.sh does not exist!”

exit 2

#fi

if [ ! -f /usr/local/fdfs/restart.sh ]; then

echo “file /usr/local/fdfs/restart.sh does not exist!”

exit 2

fi

#stop() {

/usr/local/bin/stop.sh $CMD

RETVAL=$?

return $RETVAL

#}

stop() {

/usr/local/fdfs/stop.sh $CMD

RETVAL=$?

return $RETVAL

}

#restart() {

/usr/local/bin/restart.sh $CMD &

#}

restart() {

/usr/local/fdfs/restart.sh $CMD &

}

4.添加服务


chkconfig --add fdfs_trackerd

chkconfig --add fdfs_storaged

## 5.设置Nginx开机自动启动

mkdir /usr/local/nginx/logs

vim /usr/local/nginx/conf/nginx.conf

#pid logs/nginx.pid;

pid /usr/local/nginx/logs/nginx.pid;

vim /lib/systemd/system/nginx.service

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true

[Install]

WantedBy=multi-user.target

systemctl enable nginx.service

7.示例代码

//1.声明一个字符串变量,用来存储tracker.conf配置文件的路径

//参照基准为类路径根目录

String configPath = “/tracker.conf”;

//2.动态获取配置文件的绝对路径

String absolutePath = FastDFSClientTest.class.getResource(configPath).getPath();

//3.调用ClientGlobal类的静态方法执行初始化操作

ClientGlobal.init(absolutePath);

//4.创建TrackerClient对象

TrackerClient trackerClient = new TrackerClient();

//5.创建TrackerServer对象

TrackerServer trackerServer = trackerClient.getConnection();

//6.创建StorageServer对象,可以为null

StorageServer storageServer = null;

//7.创建StorageClient对象

StorageClient storageClient = new StorageClient(trackerServer, storageServer);

//8.上传文件

String[] resultArray = storageClient.upload_file(“C:/Users/Lenovo/Desktop/girls/bbb.jpg”, “jpg”, null);

for (String result : resultArray) {

System.out.println(result);

Java面试核心知识点笔记

其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

Java中高级面试高频考点整理

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

最后分享Java进阶学习及面试必备的视频教学

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。

[外链图片转存中…(img-Pq2pBmla-1715626251390)]

Java中高级面试高频考点整理

[外链图片转存中…(img-0RzmhzZY-1715626251390)]

[外链图片转存中…(img-4wNzKjkf-1715626251391)]

最后分享Java进阶学习及面试必备的视频教学

[外链图片转存中…(img-NtNpYpRi-1715626251391)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值