搭建过程参考 作者 https://me.csdn.net/feng_qi_1984 的课程视频

声明:集群版是在我之前写的单机版基础之上进行搭建的,我将安装了fastfds单机版的docker打包成了镜像。

如对fastfds搭建流程不熟悉者,需先参阅之前的文章。点击进入文章

首先借鉴一个公众号的两张图来说明一下 fastfds 上传下载的流程,公众号为 "Java架构师之路"

我搭建的思路是,两个tracker、四个storage,然后通过nginx进行反向代理访问图片。

下面演示搭建步骤

先配置几个虚拟ip

运行上次打包的镜像,创建docker容器

docker run --privileged=true -itd -v /soft/:/back -p 192.168.46.230:80:80 -p 192.168.46.230:22122:22122 -p 192.168.46.230:8080:8080 529c212ff162 /bin/bash

进入容器

docker exec -it 0d581e092e1d /bin/bash

(一)tracker

集群版中 配置 tracker 修改tracker.conf文件

# cd /etc/fdfs/

# vi tracker.conf

修改 store_lookup=2 (0代表轮询,1代表固定group,2代表负载均衡)

启动 tracker

# service fdfs_trackerd start

查看一下

# netstat -unltp | grep fdfs

备用 tracker 进行相同操作

(二)storage

配置storage的配置文件

# cd /etc/fdfs/

# vi storage.conf

修改tracker_server

配置group_name 我的是两个1两个2

把主备两个tracker都配置上

tracker_server=172.17.0.34:22122

tracker_server=172.17.0.36:22122

修改/etc/fdfs/目录下的mod_fastdfs.conf

connect_timeout=10

tracker_server 主备两个都要配置       且更改  group_count = 2

我是设置了两个组 每个组两个storage

再配置group1和group2

修改nginx配置文件

# cd /usr/local/nginx/conf/

# vi nginx.conf

listen 8888; 由于storage的端口号为8888 所以这里要修改

如果是group2的话 需要修改group2

修改完以后 保存退出

将刚刚配置好的storage容器 打包成镜像

docker commit f790145a83a2 storage:v1

然后依旧是端口号映射、硬盘挂载创建容器,注意要更改ip地址,然后用新打包好的镜像

docker run --privileged=true -itd -v /soft/:/back -p 192.168.46.235:80:80 -p 192.168.46.235:23000:23000 -p 192.168.46.235:8888:8888 cea52388dba7 /bin/bash

注意 这里的 端口号 做了 修改

安装好以后 进入容器。 直接启动 storage服务 和 nginx 服务就行了

然后继续 安装 容器

这次进入以后 将 storage.conf 和 mod_fastdfs.conf 中的 groupname 修改为 group2

storage.conf

mod_fastdfs.conf

nginx 的配置文件 也要修改

再 启动 storage 服务 和 nginx 服务

然后再 安装一个容器 同上

安装并配置完以后

在cd /usr/bin 这个 文件夹下面 有很多可执行的脚本。

我们通过fdfs_monitor /etc/fdfs/storage.conf 命令

可以查看到 以下内容

再往下 可以看到 分别有哪些组,每个组里有哪些storage 以及这些storage的状态

(三) 测试一下

进入 主 tracker 也就是 第一个配置的那个 tracker

修改 /etc/fdfs/client/conf 文件

# /usr/bin/fdfs_test /etc/fdfs/client.conf upload /back/3.jpg

添加路由

复制地址,输入端口号 8888 可以访问

通过linux的ip也可以访问

由于我这个是group2,那么group2中的另一个 storage中应该也存放了该图片

上传虽然能成功 但是访问的时候IP都不同 所以访问起来很不方便 可以再用一个nginx做一个反向代理

# cd /usr/local/nginx/conf/

# vi nginx.conf

启动 nginx

就可以通过 nginx 的ip地址 加上后面的 路径 访问图片了
---------------------
作者:苝花向暖丨楠枝向寒
来源:CSDN
原文:https://blog.csdn.net/weixin_40247263/article/details/81087726
版权声明:本文为博主原创文章,转载请附上博文链接!

docker下搭建fastfds集群版的更多相关文章

  1. 在centos7使用docker下搭建elasticsearch集群

    一 .docker的安装 https://www.cnblogs.com/ghostdot/p/12410242.html 二.创建相关映射文件 cd /home/ mkdir node cd nod ...

  2. Linux下搭建tomcat集群全记录(转)

    本文将讲述如何在Linux下搭建tomcat集群,以及搭建过程中可能的遇到的问题和解决方法.为简单起见,本文演示搭建的集群只有两个tomact节点外加一个apache组成,三者将安装在同一机器上:ap ...

  3. Windows下搭建Redis集群

    Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Redis是单线程处理的,多核CPU也只能使用一个核, 所以部署在同一台电脑上,通过运行多个Redis实例组成集群,然后能提高CPU的利用 ...

  4. Redis集群搭建(转自一菲聪天的“Windows下搭建Redis集群”)

    配置Redis参考:http://blog.csdn.net/zsg88/article/details/73715947 使用Ruby配置集群参考:https://www.cnblogs.com/t ...

  5. Windows下 搭建redis集群

    Windows下搭建redis集群教程 一,redis集群介绍 Redis cluster(redis集群)是在版本3.0后才支持的架构,和其他集群一样,都是为了解决单台服务器不够用的情况,也防止了主 ...

  6. windows环境下搭建Redis集群

    转载请注明出处,原文章地址: https://www.cnblogs.com/tommy-huang/p/6240083.html Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Red ...

  7. Linux下搭建tomcat集群全记录

    (转) Linux下搭建tomcat集群全记录 2011-10-12 10:23 6133人阅读 评论(1) 收藏 举报 tomcatlinuxapacheinterceptorsession集群 1 ...

  8. Windows下搭建REDIS集群

    Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Redis是单线程处理的,多核CPU也只能使用一个核, 所以部署在同一台电脑上,通过运行多个Redis实例组成集群,然后能提高CPU的利用 ...

  9. docker下搭建fastfds

    https://blog.csdn.net/weixin_40247263/article/details/81087726 搭建过程参考 作者 https://me.csdn.net/feng_qi ...

随机推荐

  1. MySQL 数据库备份策略:全备与增量备份

    一.备份策略1.周日全备份,周一至周六增量备份2.全备份目录/u03/backup/innobackup/full_backup3.增量备份目录/u03/backup/innobackup/incre ...

  2. PC/FORTH 循环

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  3. 7.1 C++模板基本概念及语法 《C++模板与标准模板库》

    参考:http://www.weixueyuan.net/view/6398.html 总结: 模板是另一种代码重用机制. 需要设计的几个类,其功能都是一样的,仅仅只是需要操作的数据类型不同. 有更好 ...

  4. spin lock自旋锁 双链表操作(多线程安全)(Ring0)

    通过spin lock自旋锁 ,为每个链表都定义并初始化一个锁,在需要向该链表插入或移除节点时不使用前面介绍的普通函数,而是使用如下方法: ExInterlockedInsertHeadList(&a ...

  5. shell怎么判断两个文件内容是否相同

    #cat diff_two_file#/bin/sbinfile1=/mnt/mmc/test/aafile2=/mnt/mmc/test/bbdiff $file1 $file2 > /dev ...

  6. python random模块(获取随机数)

    如果要使用random模块,需要先导入 import random 1.random.random()  #用于生成一个0到1的随机浮点数 2.random.uniform(a,b)  #用于生成一个 ...

  7. 扩展HtmlHelper类实现Mvc4分页

    1.扩展HtmlHelper类方法Pager public static HtmlString Pager(this HtmlHelper htmlHelper, int currentPage, i ...

  8. L306 词汇题

    Public acceptance of rabbit as an economical source of protein depends on how aggressively producers ...

  9. rgba 和 opacity 的对比.

    rgba 中 的 a  指的是透明度: 1. rgba 的 设置的 透明度 不会被子级 元素继承;    opacity 设置的透明度会被子级元素继承 . 因此 ,有时候 使用 rgba 会比 opa ...

  10. 2019-03-20-day015-序列化存储

    昨日回顾 序列化模块: json -- load dump dumps loads pickle -- load dump dumps loads shelve -- 文件 + 字典 f = shel ...