fastdfs

JAVA 学习指南

橙三吉。 提交于 2021-01-23 06:38:33
Java基础 一:Java开发介绍 1. DOS常用命令 2. JVM、JRE、JDK之间的关系 3. Java开发环境的搭建:安装JDK,配置环境变量 4. Java入门程序(Java的开发流程) 5. Java的注释,标识符、标识符的命名规范 6. Java基本数据类型7. 变量和常量的定义及初始化 8. Java的运算符 9. 运算符的优先级 10. Java分支语句之if...else11. 循环的嵌套 12. 方法的定义 13. 方法的形参和实参 14. 方法的压栈 15. 方法的递归调用 二:Java数组 1. Java 数组的定义 2. Java 数组的声明 3. 数组的优势与局限 4. 数组的动态初始化 5. 数组的存储特点(堆和栈) 6. 数组的遍历访问(普通循环,增强for循环) 7. 数组元素的顺序查找 8. 数组元素的二分法查找 9. 数组元素的选择排序 10. 数组元素的冒泡法排序 11. Arrays工具类的使用 12. 二维数组的介绍 13. 二维数组的声明与初始化 14. 二维数组的遍历 15. 二维数组的使用 三:Java面向对象 1. 面向对象设计思想 2. 面向对象的分析与设计 3. Java与面向对象 4. 类中成员变量的定义与意义 5. 构造方法的定义和调用 6. 面向对象的封装特性 7. 局部变量和成员变量的作用域问题 8. 静态属性

SSM商城项目(四)

我的未来我决定 提交于 2021-01-16 04:11:14
1. 学习 计划 1、图片服务器 2、图片服务器安装 3、图片服务器的使用 4、图片上传功能 5、富文本编辑器的使用方法 6、商品添加功能实现 2. 图片服务器 1、存储空间可扩展。 2、提供一个统一的访问方式。 使用 FastDFS ,分布式文件系统。存储空间可以横向扩展,可以实现服务器的高可用。支持每个节点有备份机。 2.1. 什么是 FastDFS ? FastDFS 是用 c 语言编写的一款开源的分布式文件系统。 FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标 ,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 2.2. FastDFS 架构 FastDFS 架构包括 Tracker server 和 Storage server 。客户端请求 Tracker server 进行文件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载。 Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务器。 Storage server 作用是文件存储

docker 安装 fastdfs

北战南征 提交于 2021-01-14 03:21:22
fastdfs 安装 //1、拉取镜像 docker pull morunchang/fastdfs //2、启动tracker docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh //3、启动storage (172.21.91.218 ip 自行替换为docker 所在服务器的ip )( 此镜像不支持-p 参数) docker run -d --name storage --net=host -e TRACKER_IP=172.21.91.218:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh //4、防火墙添加端口 // 22122/23000 文件上传使用,不建议修改 // 8080 为storage容器中nginx的端口,用于浏览器文件访问使用,默认为8080,如需修改,请参考可选配置 建议修改 firewall-cmd --zone=public --add-port=22122/tcp --permanent firewall-cmd --zone=public --add-port=23000/tcp --permanent firewall-cmd --zone=public --add-port

FastCFS核心组件FastStore架构及特点

不问归期 提交于 2020-12-31 03:59:21
上一篇文章介绍了FastCFS服务端两大核心组件:FastDIR和FastStore。其中FastDIR管理文件元数据,FastStore以分块方式存储文件内容。FastDIR和FastStore均采用Master/Slave结构,Master不需要手工配置,由程序自动选举产生,并且做到了failover。FastDIR架构是FastStore架构子集(特例),因此我们着重介绍FastStore的架构及其特点。 无图无真相,先上FastStore的架构图。 FastStore对服务器和数据均采用分组方式,服务器分组简称 SG,为物理分组;数据分组简称 DG,为逻辑分组。FastStore的server各自管理数据块(文件块)索引,数据块的元数据采用无中心的分布式架构。FastStore本质是一个分布式KV系统,key是数据块所属的对象ID(inode) + 偏移量(offset),value是数据块内容。FastStore采用的数据路由规则:数据块key按数据分组数(DGC)求模得出所在的数据分组,即:block_hash_code % DGC。可见DGC一旦确定就不可更改,否则将导致数据访问混乱!如果数据增长远超预期需要增大DGC,只能搭建一套新集群,在新旧两套集群并存的情况下,把原有数据手工迁移到新集群,迁移完成后切换到新集群。 一个SG由一台到多台服务器组成

别在网上乱找代码了,这段代码突然爆了!!!

 ̄綄美尐妖づ 提交于 2020-12-24 03:22:47
作者:陈宏鸿 来源: www.cnblogs.com/aspwebchh/p/12220673.html 本人是做游戏服务器开发的,碰到一个需求,给符某些要求的玩家的发送道具奖励,奖励的数量根据离线的天数计算。 这个需求实现起来很简单,只需要在玩家上线的时候计算上次离线时间和当前时间间隔的天数,然后根据策划的算法,计算出道具种类与数量,发一封邮件给玩家就可以了。 计算两个时间间隔天数的函数没有现成的,自己又懒得写,就上谷歌搜了下,选了第一条结果,代码如下: public static int differentDays ( Date date1,Date date2 ) { Calendar cal1 = Calendar.getInstance(); cal1.setTime(date1); Calendar cal2 = Calendar.getInstance(); cal2.setTime(date2); int day1= cal1. get (Calendar.DAY_OF_YEAR); int day2 = cal2. get (Calendar.DAY_OF_YEAR); int year1 = cal1. get (Calendar.YEAR); int year2 = cal2. get (Calendar.YEAR); if (year1 != year2)

FastDFS的安装和配置(超详细)

此生再无相见时 提交于 2020-12-14 10:10:45
1.编译环境 yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y 2.磁盘目录 说明 位置 所有安装包 /user/local/src 数据存储位置 /home/dfs/ mkdir /home/dfs #创建数据存储目录 cd /usr/local/src #切换到安装目录准备下载安装包 3. 安装libfatscommon git clone https://github.com/happyfish100/libfastcommon.git --depth 1 cd libfastcommon/ ./make.sh && ./make.sh install #编译安装 4.安装FastDFS cd .. / #返回上一级目录 git clone https://github.com/happyfish100/fastdfs.git --depth 1 cd fastdfs/ ./make.sh && ./make.sh install #编译安装 #配置文件准备 cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf cp /etc/fdfs

linux多线程下的fwrite和write使用详解

ぃ、小莉子 提交于 2020-12-11 23:59:25
Linux下的文件操作,有人喜欢用C库的文件流操作,有人喜欢用Linux的原生的系统调用。一般来说,C库的文件操作会更高效一些,因为C库自己做了文件缓存的处理。今天,主要研究多线程下的fwrite与write,每个线程都对相同的FILE*或者fd进行写操作,看看结果是否为预期行为。 第一种情况:使用C库的fwrite,其线程的实现如下: 第二种情况:使用系统调用write,其线程的实现如下: 下面看主线程的实现: 其中LOOPS定义为1000000。也就是说,线程1~3分别写入"aaaaaa\n",“bbbbbb\n”,和"cccccc\n"各一百万次。如果写入文件的操作是“线程安全”的,那么最终的文件行数应该是3百万行,且每行只可能是"aaaaaa"、“bbbbbb”、和"cccccc"的一种。 【文章福利】需要C/C++ Linux服务器架构师学习资料加群812855908(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等) 接下来看测试结果: 1、定义了宏USE_CLIB,即使用C库的fwrite,其结果如下: 2、注释掉红USE_CLIB,即直接使用系统调用write,其结果如下:

使用nginx搭建简单文件服务器

风格不统一 提交于 2020-11-27 03:47:18
最近再做一个博客,本想使用fastdfs标准的文件存储服务器,但考虑到资源占用问题,且使用nginx比较快速,且效果不差。于是采用ngixn搭建。 nginx搭建文件服务器,本质上就是nginx的静态文件访问配置。 安装nginx mac: brew install nginx windows : 直接下载解压就行。 配置文件路径 对nginx.conf进行配置,(mac的brew安装后配置文件在/usr/local/etc/nginx 路径下) server { listen 8880; server_name localhost; location / { root html; index index.html index.htm; } location /app/images { alias /Users/czbcxy/images; } } 添加 红色部分即可,localtion后边的是你浏览器访问的跟随路径,alias后边跟的是你的图片的引用路径。 测试nginx配置文件后启动。 nginx -t 测试成功后 nginx start 或者nginx -s reload 重启 浏览器访问 localhost:8080/app/images/图片的名称.jpg 来源: oschina 链接: https://my.oschina.net/u/4309069/blog

FastDFS整合SpringBoot

橙三吉。 提交于 2020-11-25 06:43:37
FastDFS整合SpringBoot 搭建好fastDFS后当然就是要开始整合到项目中使用,这里使用 FastDFS-Client 和 SpringBoot 整合。 如果查看 分布式文件系统原理 和 服务器搭建 ,可以点击查看。 工具 jdk SpringBoot FastDFS-Client maven FastDFS 11 2.2.2 1.27.1 3.6.3 6.06 FastDFS-Client 介绍: 在原作者YuQing与yuqih发布的java客户端基础上进行了大量重构工作,便于Java工作者学习与阅读。 主要特性: 对关键部分代码加入了单元测试,便于理解与服务端的接口交易,提高接口质量 将以前对byte硬解析风格重构为使用 对象+注解 的形式,尽量增强了代码的可读性 支持对服务端的连接池管理(commons-pool2) 支持上传图片时候检查图片格式,并且自动生成缩略图 在SpringBoot当中自动导入依赖 其他的可以看github介绍 FastDFS-Client 整合开始 创建SpringBoot项目 依赖包: <!--fastdfs-client--> <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26

使用Spring Boot集成FastDFS

可紊 提交于 2020-11-25 06:43:15
原文:http://www.cnblogs.com/ityouknow/p/8298358.html#3893468 上篇文章介绍了 如何使用Spring Boot上传文件 ,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中。 这个项目会在上一个项目的基础上进行构建。 1、pom包配置 我们使用Spring Boot最新版本1.5.9、jdk使用1.8、tomcat8.0。 < dependency> < groupId>org.csource </ groupId> < artifactId>fastdfs-client-java </ artifactId> < version>1.27-SNAPSHOT </ version> </ dependency> 加入了 fastdfs-client-java 包,用来调用FastDFS相关的API。 2、配置文件 resources目录下添加 fdfs_client.conf 文件 connect_timeout = 60 network_timeout = 60 charset = UTF - 8 http. tracker_http_port = 8080 http. anti_steal_token = no http. secret_key = 123456 tracker