文档章节

手把手教你搭建FastDFS集群(下)

舒运
 舒运
发布于 2017/06/20 13:58
字数 2924
阅读 13
收藏 0
点赞 0
评论 0

  由于博客图片量大,篇幅太长,因此需要分上,中,下三篇博客来写,上篇和中篇我们已经一起学习完了,这篇博客我们一起学习下剩余部分。

一,配置反向代理

       我们需要在两个跟踪器上安装的nginx(也就是192.168.156.5和192.168.156.6)以提供反向代理服务,目的是使用统一的一个IP地址对外提供服务。为了避免一些不必要的错误,我们先把其它四台虚拟机的窗口关掉。

       1.解压ngx_cache_purge-2.3.tar.gz,解压命令:tar -zxvf ngx_cache_purge-2.3.tar.gz -C / usr / local / fast /,如下图所示(另一台设备就不粘贴图片了)。

         解压完之后我们在在/ usr /本地/快/目录下可以看到多了一个ngx_cache_purge-2.3文件夹。如下图所示。

      2.下载需要的依赖库,在两台设备上依次执行下面四条命令。

 

[html] 查看纯文本 

  1. yum安装pcre  
  2. yum安装pcre-devel  
  3. yum安装zlib  
  4. yum安装zlib-devel  

     3.为两台设备都安装nginx,我们在XShell的下方的输入框中输入命令:cd / usr / local / software /并敲回车,两个窗口都会进入/ usr / local / software目录下,然后在下面的输入框再输入 “LL” 来查看在/ usr /本地/软件目录下的文件,如下图所示(只有输入框左边的图标是多窗口的情况下才能一次作用所有窗口,如果当前是单窗口图标,就如下图那样选择全部XSHELL)。

 

      接着,我们在下面的输入框中输入:tar -zxvf nginx-1.6.2.tar.gz -C / usr / local /并按回车,会在两个窗口同时执行解压操作如下图所示。
 

      接下来我们在下面的输入框中输入:cd / usr / local并按回车,两台设备都进入/usr/local/nginx-1.6.2目录下。如下图所示。

        接着,在下面的输入框中加入模块命令:./configure --add-module = / usr / local / fast / ngx_cache_purge-2.3,回车就会在两台设备上都执行添加缓存模块并会检查环境。

         接着在下面的输入框中输入命令:make && make install,回车就会在两台设备上都执行编译安装如下图所示。

       下面我们需要修改下两台设备在/ usr /本地/ nginx的/ conf目录/目录下的nginx.conf文件,大家可以直接把下面代码替换这个目录下的该文件,也可以直接到:HTTP://下载。 csdn .NET / detail / u012453843 / 9803673这个地址下载nginx.conf文件来替换。不过由于我们搭建环境的虚拟机IP可能不一样,因此,我们需要根据实际情况修改下IP等信息(注意192.168.156.5和192.168.156.6这两台设备的在/ usr /本地/ nginx的/ CONF /目录下的nginx.conf都要修改

 

[html] 查看纯文本 

  1. #user nobody  
  2. worker_processes 1;  
  3.   
  4. #error_log logs / error.log;  
  5. #error_log logs / error.log notice;  
  6. #error_log logs / error.log info;  
  7.   
  8. #pid logs / nginx.pid;  
  9.   
  10.   
  11. 事件{  
  12.     worker_connections 1024;  
  13.     使用epoll  
  14. }  
  15.   
  16.   
  17. http {  
  18.     包括mime.types;  
  19.     default_type application / octet-stream;  
  20.   
  21.     #log_format main'$ remote_addr - $ remote_user [$ time_local]“$ request”'  
  22.     #'$ status $ body_bytes_sent“$ http_referer”'  
  23.     #'“$ http_user_agent”“$ http_x_forwarded_for”';  
  24.   
  25.     #access_log logs / access.log main;  
  26.   
  27.     发送文件;  
  28.     tcp_nopush on;  
  29.     #tcp_nopush on  
  30.   
  31.     #keepalive_timeout 0;  
  32.     keepalive_timeout 65;  
  33.   
  34.     #gzip on;  
  35.     #设置缓存  
  36.     server_names_hash_bucket_size 128;  
  37.     client_header_buffer_size 32k;  
  38.     large_client_header_buffers 4 32k;  
  39.     client_max_body_size 300m;  
  40.   
  41.     proxy_redirect关闭  
  42.     proxy_set_header主机$ http_host;  
  43.     proxy_set_header X-Real-IP $ remote_addr;  
  44.     proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;  
  45.     proxy_connect_timeout 90;  
  46.     proxy_send_timeout 90;  
  47.     proxy_read_timeout 90;  
  48.     proxy_buffer_size 16k;  
  49.     proxy_buffers 4 64k;  
  50.     proxy_busy_buffers_size 128k;  
  51.     proxy_temp_file_write_size 128k;  
  52.     #设置缓存存储路径,存储方式,分别内存大小,磁盘最大空间,缓存期限  
  53.     proxy_cache_path / fastdfs / cache / nginx / proxy_cache  levels = 1 :2  
  54.     keys_zone = http -cache:200m  max_size = 1g inactive = 30d ;   
  55.     proxy_temp_path / fastdfs / cache / nginx / proxy_cache / tmp;  
  56.     #1组的服务设置  
  57.     上游fdfs_group1 {  
  58.          服务器192.168.156.7:8888  weight = 1 max_fails = 2 fail_timeout = 30s ;    
  59.          服务器192.168.156.8:8888  weight = 1 max_fails = 2 fail_timeout = 30s ;    
  60.     }  
  61.     #第2组的服务设置  
  62.     上游fdfs_group2 {  
  63.          服务器192.168.156.9:8888  weight = 1 max_fails = 2 fail_timeout = 30s ;    
  64.          服务器192.168.156.10:8888  weight = 1 max_fails = 2 fail_timeout = 30s ;    
  65.     }  
  66.   
  67.     服务器{  
  68.         听8000;  
  69.         server_name localhost;  
  70.   
  71.         #charset koi8-r  
  72.   
  73.         #access_log logs / host.access.log main;  
  74.         #1组的负载均衡配置  
  75.         位置/ group1 / M00 {  
  76.             proxy_next_upstream http_502 http_504错误超时invalid_header;  
  77.             proxy_cache http-cache;  
  78.             proxy_cache_valid 200 304 12h;  
  79.             proxy_cache_key $ uri $ is_args $ args;  
  80.             #对应组1的服务设置  
  81.             proxy_pass http:// fdfs_group1;  
  82.             到期30d;  
  83.         }  
  84.   
  85.         位置/ group2 / M00 {  
  86.             proxy_next_upstream http_502 http_504错误超时invalid_header;  
  87.             proxy_cache http-cache;  
  88.             proxy_cache_valid 200 304 12h;  
  89.             proxy_cache_key $ uri $ is_args $ args;  
  90.             #对应组2的服务设置  
  91.             proxy_pass http:// fdfs_group2;  
  92.             到期30d;  
  93.          }  
  94.   
  95.         位置〜/ purge(/.*){  
  96.             允许127.0.0.1;  
  97.             允许192.168.156.0/24;  
  98.             拒绝所有  
  99.             proxy_cache_purge http-cache $ 1 $ is_args $ args;  
  100.         }  
  101.   
  102.         位置 / {  
  103.             根html;  
  104.             index index.html index.htm;  
  105.         }  
  106.   
  107.         #error_page 404 /404.html;  
  108.   
  109.         #将服务器错误页面重定向到静态页面/50x.html  
  110.         #  
  111.         error_page 500 502 503 504 /50x.html;  
  112.         location  = /50x.html {  
  113.             根html;  
  114.         }  
  115.   
  116.         #代码PHP脚本到Apache在127.0.0.1:80上监听  
  117.         #  
  118.         #location〜\ .php $ {  
  119.         #proxy_pass http://127.0.0.1;  
  120.         #}  
  121.   
  122.         #将PHP脚本传递给FastCGI服务器,侦听127.0.0.1:9000  
  123.         #  
  124.         #location〜\ .php $ {  
  125.         #root html;  
  126.         #fastcgi_pass 127.0.0.1:9000;  
  127.         #fastcgi_index index.php;  
  128.         #fastcgi_param SCRIPT_FILENAME / scripts $ fastcgi_script_name;  
  129.         #include fastcgi_params;  
  130.         #}  
  131.   
  132.         #deny访问.htaccess文件,如果是Apache的文档根  
  133.         #同意nginx的  
  134.         #  
  135.         #location〜/\.ht {  
  136.         #deny all;  
  137.         #}  
  138.     }  
  139.   
  140.   
  141.     #另一个使用IP-,基于名称和端口配置的虚拟主机  
  142.     #  
  143.     #server {  
  144.     #听8000;  
  145.     #听somename:8080;  
  146.     #server_name somename alias another.alias;  
  147.   
  148.     # 位置 / {  
  149.     #root html;  
  150.     #index index.html index.htm;  
  151.     #}  
  152.     #}  
  153.   
  154.   
  155.     #HTTPS服务器  
  156.     #  
  157.     #server {  
  158.     #listen 443 ssl;  
  159.     #server_name localhost;  
  160.   
  161.     #ssl_certificate cert.pem;  
  162.     #ssl_certificate_key cert.key;  
  163.   
  164.     #ssl_session_cache shared:SSL:1m;  
  165.     #ssl_session_timeout 5m;  
  166.   
  167.     #ssl_ciphers HIGH:!aNULL:!MD5;  
  168.     #ssl_prefer_server_ciphers on;  
  169.   
  170.     # 位置 / {  
  171.     #root html;  
  172.     #index index.html index.htm;  
  173.     #}  
  174.     #}  
  175.   
  176. }                               

      修改完nginx.conf文件之后,我们下面需要创建/ fastdfs /缓存/ nginx的/ proxy_cache和/ fastdfs /缓存/ nginx的/ proxy_cache的/ tmp目录,这是因为我们在nginx.conf文件中配置缓存路径时指定了该目录,但是这两个目录目前还不存在,因此我们需要在192.168.156.5和192.168.156.6这两台设备上都创建下这两个目录,由于涉及到多级,因此需要递归创建目录,使用命令:mkdir -p / fastdfs / cache / nginx / proxy_cache和mkdir -p / fastdfs / cache / nginx / proxy_cache / tmp,如下图所示。

 

       由于我们配置了两个跟踪器的访问端口是8000,而我们的防火墙是不允许访问该端口的,因此我们需要修改下防火墙,使其允许访问8000端口,这个操作我在上篇和中篇都介绍过了,这里就不啰嗦了。

       下面我们便来启动这两台设备上的nginx。启动所用的命令是/ usr / local / nginx / sbin / nginx。启动完后之后,可以使用ps -ef | grep nginx命令来查看nginx是否正常启动,如果看到根4027 1 0 08:18?00:00:00 nginx:master进程/ usr / local / nginx / sbin / nginx这条信息,说明正常启动了。

 

[html] 查看纯文本 

  1. [root @ itcast05 conf]#/ usr / local / nginx / sbin / nginx  
  2. [root @ itcast05 conf]#ps -ef | grep nginx  
  3. 根4027 1 0 08:18?00:00:00 nginx:主进程/ usr / local / nginx / sbin / nginx  
  4. 没有人4028 4027 0 08:18?00:00:00 nginx:worker进程        
  5. 没人4029 4027 0 08:18?00:00:00 nginx:缓存管理器进程  
  6. 没有人4030 4027 0 08:18?00:00:00 nginx:缓存加载器进程  
  7. root 4032 1522 0 08:18 pts / 0 00:00:00 grep nginx  

        两台设备都启动完nginx的之后,我们再在192.168.156.5上上传两次次图片,第一次返回的路径是在组1下,第二次返回的路径是在组2下。

 

 

[html] 查看纯文本 

  1. [root @ itcast05 conf]#/ usr / bin / fdfs_upload_file /etc/fdfs/client.conf /usr/local/3.jpg  
  2. 组1 / M00 / 00/00 / wKicCFjkOVGAMlQvAAHk-VzqZ6w757.jpg  
  3. [root @ itcast05 conf]#/ usr / bin / fdfs_upload_file /etc/fdfs/client.conf /usr/local/3.jpg  
  4. 组2 / M00 / 00/00 / wKicCVjkOeaAVb0dAAHk-VzqZ6w123.jpg  
  5. [root @ itcast05 conf]#   

        由于我们在192.168.156.5和192.168.156.6上配置了代理,代理端口是8000,所以我们可以访问这两个IP的8000端口来访问我们刚才上传的图片,如下图所示(我们访问的http:// 192.168.156.5:8000/group1/M00/00/00/wKicCFjkOVGAMlQvAAHk-VzqZ6w757.jpg也能访问到该图片)。这说明我们配置的代理完全没问题。

       我们知道,nginx的对外提供服务有可能碰到服务挂掉的时候,这时候高可用就显得异常重要了,因此现在我们搭建一个nginx的和KEEPALIVED结合实现的nginx的集群高可用的环境,大家可以参考的http: //blog.csdn .net / u012453843 / article / details / 69668663这篇博客进行学习。

       我们现在要把KEEPALIVED实现的nginx的集群高可用应用到我们的FastDFS集群当中,现在用于搭建nginx的集群高可用的设备是192.168.156.11和192.168.156.12,我们只需要修改下这两台设备的nginx的。的conf文件,配置文件如下

 

[html] 查看纯文本 

  1. #user nobody  
  2. worker_processes 1;  
  3.   
  4. #error_log logs / error.log;  
  5. #error_log logs / error.log notice;  
  6. #error_log logs / error.log info;  
  7.   
  8. #pid logs / nginx.pid;  
  9.   
  10.   
  11. 事件{  
  12.     worker_connections 1024;  
  13. }  
  14.   
  15.   
  16. http {  
  17.     包括mime.types;  
  18.     default_type application / octet-stream;  
  19.   
  20.     #log_format main'$ remote_addr - $ remote_user [$ time_local]“$ request”'  
  21.     #'$ status $ body_bytes_sent“$ http_referer”'  
  22.     #'“$ http_user_agent”“$ http_x_forwarded_for”';  
  23.   
  24.     #access_log logs / access.log main;  
  25.   
  26.     发送文件;  
  27.     #tcp_nopush on  
  28.   
  29.     #keepalive_timeout 0;  
  30.     keepalive_timeout 65;  
  31.   
  32.     #gzip on;  
  33.       
  34.     上游fastdfs_tracker {  
  35.        服务器192.168.156.5:8000  weight = 1 max_fails = 2 fail_timeout = 30s ;    
  36.        服务器192.168.156.6:8000  weight = 1 max_fails = 2 fail_timeout = 30s ;    
  37.     }  
  38.   
  39.     服务器{  
  40.         听80  
  41.         server_name localhost;  
  42.   
  43.         #charset koi8-r  
  44.   
  45.         #access_log logs / host.access.log main;  
  46.   
  47.         location / fastdfs {  
  48.            根html;  
  49.            index index.html index.htm;  
  50.            proxy_pass http:// fastdfs_tracker /;  
  51.            proxy_set_header主机$ http_host;  
  52.            proxy_set_header Cookie $ http_cookie;  
  53.            proxy_set_header X-Real-IP $ remote_addr;  
  54.            proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;  
  55.            proxy_set_header X-Forwarded-Proto $ scheme;  
  56.            client_max_body_size 300m;  
  57.         }  
  58.   
  59.         #error_page 404 /404.html;  
  60.   
  61.         #将服务器错误页面重定向到静态页面/50x.html  
  62.         #  
  63.         error_page 500 502 503 504 /50x.html;  
  64.         location  = /50x.html {  
  65.             根html;  
  66.         }  
  67.     }  
  68. }  


 

 

      我们对配置文件做了两处修改,一处是添加了负载均衡上游fastdfs_tracker,如下所示我们是把192.168.156.5和192.168.156.6两台设备作为追踪器,现在我们加了一层nginx来代理这两个跟踪器。

 

[html] 查看纯文本 

  1. 上游fastdfs_tracker {  
  2.    服务器192.168.156.5:8000  weight = 1 max_fails = 2 fail_timeout = 30s ;    
  3.    服务器192.168.156.6:8000  weight = 1 max_fails = 2 fail_timeout = 30s ;    
  4. }  

      第二处修改是,添加了一个位置,并且匹配规则是路径当中有fastdfs如下所示。

 

 

[html] 查看纯文本 

  1. location / fastdfs {  
  2.            根html;  
  3.            index index.html index.htm;  
  4.            proxy_pass http:// fastdfs_tracker /;  
  5.            proxy_set_header主机$ http_host;  
  6.            proxy_set_header Cookie $ http_cookie;  
  7.            proxy_set_header X-Real-IP $ remote_addr;  
  8.            proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;  
  9.            proxy_set_header X-Forwarded-Proto $ scheme;  
  10.            client_max_body_size 300m;  
  11.         }  

       做好了修改之后,我们只需重新启动192.168.156.11和192.168.156.12这两台设备的nginx的即可。

 

 

[html] 查看纯文本 

  1. [root @ nginx1 conf]#/ usr / local / nginx / sbin / nginx -s reload  
  2. [root @ nginx1 conf]#  

[html] 查看纯文本 

  1. [root @ nginx2 conf]#/ usr / local / nginx / sbin / nginx -s reload  
  2. [root @ nginx2 conf]#  

       这样我们便配置好了虚拟IP,现在我们从192.168.156.5再上传一张图片,如下所示。

 

 

[html] 查看纯文本 

  1. [root @ itcast05 conf]#/ usr / bin / fdfs_upload_file /etc/fdfs/client.conf /usr/local/3.jpg   
  2. 组1 / M00 / 00/00 / wKicB1jqnPqARiT6AAHk-VzqZ6w956.jpg  
  3. [root @ itcast05 conf]#   

       我们现在就用虚拟IP192.168.156.110来访我们刚才上传的图片,只是注意在地址栏中要记得输入fastdfs(这是我们nginx.conf文件中位置/ fastdfs {}规则规定的)如下图所示,发现,我们通过虚拟IP便可以访问我们上传的图片了。这样的好处是,对用户来说,只需要访问这个虚拟IP就可以了,不用关心FastDFS集群内部的转发机制。

 



       这样我们的FastDFS集群便搭建完了,搭建完后的集群图如下图所示。这个集群当中192.168.156.7,19​​2.168.156.8,192.168.156.9,192.168.156.10这四台设备以8888端口对外提供服务,我们使用追踪器跟踪器管理这四台存储设备,两个跟踪器的nginx的对外提供的端口号是8000,也就是我们可以使用两台跟踪的任何一台设备的IP并且使用端口8000来访问存储在存储上的资源文件。其实我们完全可以在两台跟踪设备上搭建KEEPALIVED和nginx的相结合的高可用环境并且对外提供虚拟IP192.168.156.110和端口80来访问资源文件。只不过这里为了展示多层nginx的负载均衡所以才在192.168.156.11和192.168.156.12上专门搭建了KEEPALIVED和nginx的相结合的高可用环境,由这两台设备对外提供虚拟IP服务,由于端口使用了默认的80,因此我们在使用虚拟IP192。 168.156.110访问图片的时候才不用输入端口号的。

       备注:启动集群步骤

        1.启动6台设备(192.168.156.5,192.168.156.6,192.168.156.7,19​​2.168.156.8,192.168.156.9,192.168.156.10)的nginx的(其中192.168.156.11和192.168.156.12配置了KEEPALIVED开机自启动,顺带会启动nginx的,因此这两台设备不用启动nginx的)

        2.启动跟踪器(192.168.156.5和192.168.156.6,启动命令:/etc/init.d/fdfs_trackerd start)

        启动存储(192.168.156.7,19​​2.168.156.8,192.168.156.9,192.168.156.10,启动命令:/etc/init.d/fdfs_storaged start)

        这样FastDFS集群便都启动完了。

© 著作权归作者所有

共有 人打赏支持
舒运
粉丝 7
博文 213
码字总数 510016
作品 0
深圳
【FastDFS】FastDFS分布式文件系统安装手册(单机版)

一、前言 FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用,高性能等指标。使用FastDFS很容易搭建...

qq_26545305 ⋅ 04/24 ⋅ 0

Ubuntu 14.04下部署FastDFS 5.08+Nginx 1.13.0

环境 Ubuntu 14.04 用户 admin 数据目录: /fastdfs 安装包:FastDFS v5.05 一、下载安装libfastcommon 1.1、上传或下载 libfastcommon-master.zip 到/usr/local/src 目录 1.2、解压 1.3、编...

paascloud ⋅ 2017/05/29 ⋅ 0

FastDFS分布式文件存储搭建

FastDFS分布式文件存储,具体介绍不在阐述,有很多相关的资料介绍。这里描述一下FastDFS存储应用的搭建过程: 一、环境: 1、操作系统 :centos6.5 2、FastDFS版本: 5.0.8 3、Nginx版本: ...

菜鸟早起 ⋅ 06/12 ⋅ 0

1Nginx+fastdfs分布式文件存储

 准备,将所需的软件传到服务器上,服务器的列表如下: fastdfs-nginx-modulev1.15.tar.gz FastDFSv4.06.tar.gz libevent-2.0.21-stable.tar.gz nginx-1.5.6.tar.gz openssl-1.0.1c.tar......

涂作权 ⋅ 2014/12/24 ⋅ 0

centos7安装FastDFS和nginx

1.所需的安装包: 链接:https://pan.baidu.com/s/1Hm48o3aBYn0C7PyWzBGUqw 密码:kio7 2安装centos7 输入yum -y install libevent 安装FastDFS依赖libevent库...

暴走萨摩耶 ⋅ 05/26 ⋅ 0

淘淘商城——VMware添加已配置好的虚拟机

我们有时候会碰到虚拟机环境搭建特别麻烦,很容易出错的问题,而这时我们又刚好有别人或者自己以前搭建好的虚拟机,我们便可以把搭建好的整个虚拟机copy过来供自己使用。本文就来教大家怎样在...

a_blackmoon ⋅ 05/24 ⋅ 0

CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)

背景 FastDFS是一个开源的轻量级分布式文件系统,为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,解决了大容量存储和负载均衡的问题,特别适...

botaozhao ⋅ 04/24 ⋅ 0

Mavn 项目 引入第三方jar包 导致ClassNotFoundException

案例 我有一个Maven构建的项目,项目模块之间有依赖关系,我需要用到一个本地的jar包,而该jar包不能通过配置pom.xml文件从远程仓库自动下载,于是我直接导入该jar包到其中一个项目,不通过p...

Dylan1009 ⋅ 05/22 ⋅ 0

fastdfs+springboot

springboot整合fastdfs上传文件报错 java.net.SocketException: Connection reset by peer: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.8.0_1......

feel105 ⋅ 05/02 ⋅ 0

【FastDFS】FastDFS+FastDHT完成文件上传去重

一、前言 最近公司让我搞FastDFS分布式文件系统。整个集群环境已经搭建成功啦。但是有一个问题一直困扰着我,那就是重复文件的上传。即使是同一个文件,多次上传,返回的id也是不一样的。这样...

qq_26545305 ⋅ 04/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

高并发之Nginx的限流

首先Nginx的版本号有要求,最低为1.11.5 如果低于这个版本,在Nginx的配置中 upstream web_app { server 到达Ip1:端口 max_conns=10; server 到达Ip2:端口 max_conns=10; } server { listen ...

算法之名 ⋅ 今天 ⋅ 0

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部