最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java高級(jí)架構(gòu)之FastDFS分布式文件集群詳解

 更新時(shí)間:2019年04月15日 10:05:55   作者:BlueMiaomiao  
這篇文章主要介紹了Java高級(jí)架構(gòu)之FastDFS分布式文件集群詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

FastDFS簡介

FastDFS是一款開源的輕量級(jí)分布式文件系統(tǒng),使用C實(shí)現(xiàn),支持Linux、BSD等unix-like操作系統(tǒng)。值得注意的是,fastdfs并不是通用的文件系統(tǒng),只能通過專用的API訪問。

fastdfs為互聯(lián)網(wǎng)應(yīng)用量身定做,解決了大容量文件存儲(chǔ)的問題,fastdfs追求高性能和高擴(kuò)展性。fastdfs的主要概念:

tracker-server:跟蹤服務(wù)器。用于跟蹤文件,主要起調(diào)度作用。在內(nèi)存中記錄了所有存儲(chǔ)組和存儲(chǔ)服務(wù)器的狀態(tài)信息,是客戶端和數(shù)據(jù)存儲(chǔ)的主要樞紐。相比GFS更為精簡,因?yàn)椴挥涗浳募饕?/p>

storage-server: 存儲(chǔ)服務(wù)器。用于存儲(chǔ)文件。直接使用操作系統(tǒng)的文件系統(tǒng)來管理和組織文件。

group: 組,卷。多個(gè)服務(wù)器存在一個(gè)組中,在一個(gè)組中的服務(wù)器存儲(chǔ)的文件是完全相同的,并且同一個(gè)組的服務(wù)器地位是對等的。對于文件的操作可以在任意一個(gè)組中的服務(wù)器上進(jìn)行。

metadata: 元數(shù)據(jù)。以鍵值對的方式存儲(chǔ),用于存儲(chǔ)文件的相關(guān)信息。

各大存儲(chǔ)系統(tǒng)的對比

話說沒有對比就沒有傷害,fastdfs也不是萬能的,需要根據(jù)業(yè)務(wù)來選擇適合的存儲(chǔ)系統(tǒng)。

存儲(chǔ)系統(tǒng) 適合存儲(chǔ)的文件類型 文件分布情況 系統(tǒng)性能 復(fù)雜度 FUSE(用戶文件系統(tǒng)) POSIX() 備份機(jī)制 通訊協(xié)議接口 社區(qū)情況 實(shí)現(xiàn)語言
FastDFS 4KB至500MB 將小文件合并存儲(chǔ) 很高 簡單 不支持 不支持 組內(nèi)冗余備份 HTTP API 國內(nèi)用戶 C
TFS 所有文件 小文件合并以塊組織分片 - 復(fù)雜 不支持 不支持 塊存儲(chǔ)多份,主輔災(zāi)備 HTTP API C++
MFS 大于64K 分片存儲(chǔ) Master節(jié)點(diǎn)占用內(nèi)存較高 - 支持 支持 多點(diǎn)備份,動(dòng)態(tài)冗余 使用FUSE掛載 較多 Perl
HDFS 大文件 大文件分片塊存儲(chǔ) - 簡單 支持 支持 多副本 原生API 較多 Java
Ceph 對象大文件 OSD一主多從 - 復(fù)雜 支持 支持 多副本 原生API 較少 C++
MogileFS 海量小圖片 - 復(fù)雜 支持 不支持 動(dòng)態(tài)冗余 原生API 文檔少 Perl
ClusterFS 大文件 - - 簡單 支持 支持 - - C

GitHub項(xiàng)目主頁: https://github.com/happyfish100/fastdfs

FastDFS客戶端與服務(wù)器端交互原理

FastDFS+Nginx整合

架構(gòu)圖

安裝FastDFS

mkdir /source
cd /source
yum install -y gcc gcc-c++ make cmake wget libevent
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.35.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V5.10.tar.gz
tar -zxvf V1.0.35.tar.gz
tar -zxvf V5.10.tar.gz
cd libfastcommon-1.0.35
./make.sh
./make.sh install
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
cd ../
cd fastdfs-5.10/
./make.sh
./make.sh install
cd ../
rm -rf libfastcommon-1.0.35
rm -rf fastdfs-5.10
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
mkdir -p /data/fdfs/tracker
mkdir -p /data/fdfs/storage
ln -s /usr/bin/stop.sh /usr/local/bin/stop.sh
ln -s /usr/bin/restart.sh /usr/local/bin/restart.sh

修改配置文件

修改跟蹤器配置文件:

base_path=/data/fdfs/tracker

修改存儲(chǔ)器配置文件:

base_path=/data/fdfs/storage
store_path0=/data/fdfs/storage
tracker_server=192.168.80.3:22122

修改客戶端配置文件:

base_path=/data/fdfs/client
tracker_server=192.168.80.3:22122

啟動(dòng)

/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start
netstat -tunlap | grep :22122
tcp    0   0 0.0.0.0:22122      0.0.0.0:*        LISTEN   7247/fdfs_trackerd 
tcp    0   0 192.168.80.3:22122   192.168.80.3:39318   ESTABLISHED 7247/fdfs_trackerd 
tcp    0   0 192.168.80.3:39318   192.168.80.3:22122   ESTABLISHED 7444/fdfs_storaged 

啟動(dòng)后要查看狀態(tài), 出現(xiàn) active (exited) 字樣可以嘗試重啟服務(wù)。

測試

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /source/FastDFS_v5.05.tar.gz
group1/M00/00/00/wKhQA1ysjSGAPjXbAAVFOL7FJU4.tar.gz

文件存儲(chǔ)在:

ll /data/fdfs/storage/data/00/00/wKhQA1ysjSGAPjXbAAVFOL7FJU4.tar.gz

安裝Nginx并配置模塊

# 安裝Nginx需要的pcre(Perl兼容正則表達(dá)式)庫,允許Nginx使用rewrite模塊提供URL重寫功能。
yum install pcre pcre-devel perl-ExtUtils-Embed -y
# 安裝openssl-devel,允許Nginx提供HTTPS服務(wù)。
yum install openssl-devel -y
# 下載軟件包
cd /source
wget http://59.80.44.46/nginx.org/download/nginx-1.14.2.tar.gz
wget http://nchc.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
# 解壓軟件包
tar xvf nginx-1.14.2.tar.gz
tar xvf fastdfs-nginx-module_v1.16.tar.gz
# 創(chuàng)建必要的軟連接
ln -s /usr/include/fastdfs/ /usr/local/include/fastdfs
ln -s /usr/include/fastcommon/ /usr/local/include/fastcommon
cp FastDFS/conf/http.conf /etc/fdfs/
cp FastDFS/conf/mime.types /etc/fdfs/
cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
mkdir -p /data/fdfs/fastdfs-nginx-module

修改配置文件 /etc/fdfs/mod_fastdfs.conf :

connect_timeout=10
base_path=/data/fdfs/fastdfs-nginx-module
# 配置服務(wù)器的地址
tracker_server=192.168.80.3:22122
url_have_group_name = true
store_path0=/data/fdfs/storage
mkdir /applications
mkdir /tmp/nginx
useradd nginx -s /sbin/nologin -M
cd nginx-1.14.2
./configure \
--user=nginx \
--group=nginx \
--prefix=/applications/nginx-1.14.2 \
--with-http_ssl_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/tmp/nginx/client \
--http-proxy-temp-path=/tmp/nginx/proxy \
--http-fastcgi-temp-path=/tmp/nginx/cgi \
--with-poll_module \
--with-file-aio \
--with-http_realip_module \
--with-http_addition_module \
--with-http_random_index_module \
--with-pcre \
--with-http_stub_status_module \
--with-stream \
--add-module=/source/fastdfs-nginx-module/src
make
make install
ln -s /applications/nginx-1.14.2/ /applications/nginx
chown -R nginx.nginx /applications/nginx
chown -R nginx.nginx /applications/nginx-1.14.2/
chown -R nginx.nginx /tmp/nginx/

修改配置文件 /applications/nginx/conf/nginx.conf , 在http區(qū)塊添加:

server {
    listen    8000;
    server_name media;

    location / {
      root  html;
      index index.html index.htm;
    }

    # 攔截文件請求,轉(zhuǎn)發(fā)到下面的模塊
    location ~/group[0-9] {
      ngx_fastdfs_module;
    }

    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
      root  html;
    }
  }

測試配置文件正確性并啟動(dòng):

/applications/nginx/sbin/nginx -t
/applications/nginx/sbin/nginx

刪除臨時(shí)文件:

rm -rf FastDFS
rm -rf fastdfs-nginx-module
rm -rf libfastcommon-1.0.35
rm -rf nginx-1.14.2

測試Nginx文件下載功能, 在瀏覽器輸入: http://192.168.80.3:8000/group1/M00/00/00/wKhQA1ysjSGAPjXbAAVFOL7FJU4.tar.gz

一個(gè)nginx只能訪問一個(gè)storage服務(wù)器的數(shù)據(jù),所以多個(gè)storage服務(wù)器要配置多個(gè)nginx,然后將nginx按照請求路徑中的組id(groupid)進(jìn)行路由。

簡單的啟動(dòng)停止服務(wù)的腳本:

# start-service
# usage: ./start-service
echo "============================================Sync datetime==========================================="
ntpdate time7.aliyun.com
echo "===========================================Getting status==========================================="
/etc/init.d/fdfs_trackerd status
/etc/init.d/fdfs_storaged status
echo "==========================================Starting service=========================================="
/etc/init.d/fdfs_storaged start
/etc/init.d/fdfs_trackerd start
echo "===========================================Getting status==========================================="
/etc/init.d/fdfs_trackerd status
/etc/init.d/fdfs_storaged status
echo "=========================================Testing config file========================================"
/applications/nginx/sbin/nginx -t
echo "=========================================Starting web server========================================"
/applications/nginx/sbin/nginx
echo "=======================================Getting network status======================================="
sleep 5s
netstat -tunlap | grep :22122
netstat -tunlap | grep :8000
# stop-service
# usage: ./stop-service
echo "===========================================Getting status==========================================="
/etc/init.d/fdfs_trackerd status
/etc/init.d/fdfs_storaged status
echo "==========================================Stopping service=========================================="
/etc/init.d/fdfs_storaged stop
/etc/init.d/fdfs_trackerd stop
echo "========================================Stopping web server========================================="
kill `cat /applications/nginx/logs/nginx.pid`
echo "===========================================Getting status==========================================="
/etc/init.d/fdfs_trackerd status
/etc/init.d/fdfs_storaged status
echo "=======================================Getting network status======================================="
sleep 5s
netstat -tunlap | grep :22122
netstat -tunlap | grep :8000

基于Token的防盜鏈實(shí)現(xiàn)

FastDFS內(nèi)置使用Token的方式實(shí)現(xiàn)防盜鏈,Token是帶有時(shí)效性的,Token中包含了文件id、時(shí)間戳ts和token。在FastDFS中使用URL帶上ts和token的方式請求資源。在FastDFS中提供了生成Token的算法,擴(kuò)展模塊會(huì)對Token進(jìn)行驗(yàn)證。由于Token的生成和校驗(yàn)都在服務(wù)器端,因此不會(huì)存在安全性問題。鏈接示例:

http://192.168.1.15:8080/group1/M01/01/01/wKgBD01c15nvKU1cAABAOeCdFS466570.c?token=b32cd06a53dea4376e43d71cc882f9cb&ts=1297930137

/etc/fdfs/http.conf 中修改:

# 開啟Token校驗(yàn)
http.anti_steal.check_token=true
# Token的聲明周期為240秒
http.anti_steal.token_ttl=240
# 加密字符串,可以使用 openssl rand -base64 64 生成
http.anti_steal.secret_key=2scPwMPctXhbLVOYB0jyuyQzytOofmFCBIYe65n56PPYVWrntxzLIDbPdvDDLJM8QHhKxSGWTcr+9VdG3yptkw
# Token校驗(yàn)失敗的時(shí)候返回的圖片 
http.anti_steal.token_check_fail=/data/fdfs/error.svg

使用Java客戶端驗(yàn)證:

將客戶端安裝到本地倉庫:

git clone https://github.com/happyfish100/fastdfs-client-java.git
cd fastdfs-client-java
mvn clean install

使用Maven創(chuàng)建一個(gè)普通的項(xiàng)目,在POM文件中添加依賴:

<dependencies>
  <dependency>
    <groupId>org.csource</groupId>
    <artifactId>fastdfs-client-java</artifactId>
    <version>1.27-SNAPSHOT</version>
  </dependency>
</dependencies>

在resources目錄下創(chuàng)建FastDFS配置文件 fastdfs-client.properties :

fastdfs.connect_timeout_in_seconds = 5
fastdfs.network_timeout_in_seconds = 30
fastdfs.charset = UTF-8
fastdfs.http_anti_steal_token = true
fastdfs.http_secret_key = 2scPwMPctXhbLVOYB0jyuyQzytOofmFCBIYe65n56PPYVWrntxzLIDbPdvDDLJM8QHhKxSGWTcr+9VdG3yptkw
fastdfs.http_tracker_http_port = 8080
fastdfs.tracker_servers = 192.168.80.3:22122

創(chuàng)建 com.bluemiaomiao.Demo.java 類文件:

package com.bluemiaomiao;

import org.csource.common.MyException;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.ProtoCommon;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.Properties;

public class Demo {
  public static void main(String[] args) throws IOException, MyException, NoSuchAlgorithmException {
    // 加載配置文件
    Properties prop = new Properties();
    prop.load(Demo.class.getResourceAsStream("/fastdfs-client.properties"));
    ClientGlobal.initByProperties(prop);
    // 顯示初始化配置信息
    System.out.println(ClientGlobal.configInfo());
    // 使用文件上傳工具返回的地址,一般情況下保存在數(shù)據(jù)庫中
    String remoteFileName = "group1/M00/00/00/wKhQA1ysjSGAPjXbAAVFOL7FJU4.tar.gz";
    // 獲取當(dāng)前時(shí)間戳
    int ts = (int)(System.currentTimeMillis()/1000);
    // 獲取Token, 傳入的文件ID不要含有分組信息
    String token = ProtoCommon.getToken("M00/00/00/wKhQA1ysjSGAPjXbAAVFOL7FJU4.tar.gz", ts, prop.getProperty("fastdfs.http_secret_key"));
    // 使用瀏覽器訪問返回的URL
    System.out.println("http://192.168.80.3:8000/" + remoteFileName + "?token=" + token + "&ts=" + ts);
  }
}

如果訪問時(shí)顯示防盜鏈圖片,可能是測試客戶端與服務(wù)器之間的之間有一定差距,兩個(gè)主機(jī)之間不能有分鐘級(jí)別的差距,可以使用如下方法同步服務(wù)器:

# 安裝同步時(shí)間服務(wù)器的客戶端, Windows系統(tǒng)也需要與該服務(wù)器同步
# 控制面板->時(shí)鐘和區(qū)域->設(shè)置日期和時(shí)間->Internet時(shí)間->更改設(shè)置
yum install ntpdate
ntpdate time7.aliyun.com

整合FastDHT實(shí)現(xiàn)數(shù)據(jù)去重

FastDHT是分布式哈希系統(tǒng)(DHT),使用BerkeleyDB做數(shù)據(jù)存儲(chǔ),使用libevent做網(wǎng)絡(luò)IO處理。依賴于libfastcommon組件。

下載

去Oracle官方網(wǎng)站下載 Berkeley DB 數(shù)據(jù)庫,去Fastdfs的GitHub主頁下載FastDHT的源碼包。由于之前已經(jīng)安裝過linevent和libfastcommon,因此只需要安裝數(shù)據(jù)庫和FastDHT即可。

安裝配置數(shù)據(jù)庫與FastDHT

tar -xvf db-6.2.23.tar.gz
cd db-6.2.23/build_unix/
../dist/configure --prefix=/applications/db-6.2.23
cd ../../
rm -rf db-6.2.23
unzip fastdht-master.zip
cd fastdht-master
vim make.sh

修改第27行代碼:

CFLAGS='-Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I /applications/db-6.2.23/include/ -L /applications/db-6.2.23/lib/'

-I : 指定數(shù)據(jù)庫提供的頭文件目錄

-L : 指定數(shù)據(jù)庫提供的庫文件目錄

./make.sh
./make.sh install
cd ../
rm -rf fastdht-master

配置

mkdir /data/fdht

修改 /etc/fdht/fdht_client.conf 內(nèi)容:

base_path=/data/fdht
#include /etc/fdht/fdht_servers.conf

修改 /etc/fdht/fdht_servers.conf 內(nèi)容:

group0 = 192.168.80.3:11411

修改 /etc/fdht/fdhtd.conf 內(nèi)容:

base_path=/data/fdht
#include /etc/fdht/fdht_servers.conf

修改 /etc/fdfs/storage.conf 內(nèi)容:

check_file_duplicate=1
key_namespace=FastDFS
keep_alive=1
#include /etc/fdht/fdht_servers.conf

主要需要包含服務(wù)器端配置文件。

ln -s /applications/db-6.2.23/lib/libdb-6.2.so /usr/lib/libdb-6.2.so
ln -s /applications/db-6.2.23/lib/libdb-6.2.so /usr/lib64/libdb-6.2.so

啟動(dòng)并測試

fdhtd /etc/fdht/fdhtd.conf

重啟使用:

fdhtd /etc/fdht/fdhtd.conf restart

查看結(jié)果:

netstat -tunlap | grep :11411
tcp    0   0 0.0.0.0:11411      0.0.0.0:*        LISTEN   20605/fdhtd

由于安裝FastDHT的時(shí)候關(guān)閉了FastDFS,因此需要啟動(dòng)FastDFS

./start-service

修改之前的 start-service 腳本, 在啟動(dòng)tracker和storage服務(wù)之前添加:

fdhtd /etc/fdht/fdhtd.conf

在查看tracker和ngixn網(wǎng)絡(luò)狀態(tài)之前添加:

netstat -tunlap | grep :11411

測試:

fdfs_upload_file /etc/fdfs/client.conf /source/db-6.2.23.tar.gz
group1/M00/00/00/wKhQA1yu2L6APTk-AqQOLABfhaQ.tar.gz
fdfs_upload_file /etc/fdfs/client.conf /source/db-6.2.23.tar.gz
group1/M00/00/00/wKhQA1yu2MKAOmIiAqQOLHUWXfw.tar.gz
ll /data/fdfs/storage/data/00/00/
total 45268
-rw-r--r-- 1 root root 44305964 Apr 11 14:03 wKhQA1yu2L6AM0aiAqQOLKFBFuc.tar.gz
lrwxrwxrwx 1 root root    64 Apr 11 14:03 wKhQA1yu2L6APTk-AqQOLABfhaQ.tar.gz -> /data/fdfs/storage/data/00/00/wKhQA1yu2L6AM0aiAqQOLKFBFuc.tar.gz
lrwxrwxrwx 1 root root    64 Apr 11 14:03 wKhQA1yu2MKAOmIiAqQOLHUWXfw.tar.gz -> /data/fdfs/storage/data/00/00/wKhQA1yu2L6AM0aiAqQOLKFBFuc.tar.gz

自定義 fastdfs-spring-boot-starter

為了快速構(gòu)建SpringBoot項(xiàng)目,我們可以自定義一個(gè)場景啟動(dòng)器來解決。詳細(xì)信息: https://github.com/bluemiaomiao/fastdfs-spring-boot-starter .

下面使用SpringBoot構(gòu)建一個(gè)示例項(xiàng)目:

添加依賴:

<dependency>
  <groupId>com.bluemiaomiao</groupId>
  <artifactId>fastdfs-spring-boot-starter</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

在主配置類中添加注解:

@EnableFastdfsClient
@SpringBootApplication
public class DemoApplication {

@Autowired
private FastdfsClientService fastdfsClientService;

public static void main(String[] args) {
  SpringApplication.run(DemoApplication.class, args);
}
}

此時(shí)將會(huì)自動(dòng)初始化好全局客戶端。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java貪吃蛇游戲完善版

    Java貪吃蛇游戲完善版

    這篇文章主要為大家詳細(xì)介紹了Java貪吃蛇游戲完善版,支持菜單操作,鍵盤監(jiān)聽,可加速,減速,統(tǒng)計(jì)得分等功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Java String字符串的常用使用方法

    Java String字符串的常用使用方法

    String是JDK提供的一個(gè)類,是引用類型,并不是基本的數(shù)據(jù)類型,String用于字符串操作,在之前學(xué)習(xí)c語言的時(shí)候,對于一些字符串,會(huì)初始化字符數(shù)組表示,本文給大家介紹Java String字符串的常用使用方法,感興趣的朋友一起看看吧
    2025-04-04
  • java 實(shí)現(xiàn)微信服務(wù)器下載圖片到自己服務(wù)器

    java 實(shí)現(xiàn)微信服務(wù)器下載圖片到自己服務(wù)器

    這篇文章主要介紹了 java 實(shí)現(xiàn)微信服務(wù)器下載圖片到自己服務(wù)器的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Mybatis執(zhí)行update失敗的解決

    Mybatis執(zhí)行update失敗的解決

    這篇文章主要介紹了Mybatis執(zhí)行update失敗的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Spring Cloud Gateway 使用JWT工具類做用戶登錄校驗(yàn)功能

    Spring Cloud Gateway 使用JWT工具類做用戶登錄校驗(yàn)功能

    這篇文章主要介紹了Spring Cloud Gateway 使用JWT工具類做用戶登錄校驗(yàn)的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Idea設(shè)置全局highlighting?level為Syntax問題

    Idea設(shè)置全局highlighting?level為Syntax問題

    這篇文章主要介紹了Idea設(shè)置全局highlighting?level為Syntax問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • java中Ajax與Axios的使用小結(jié)

    java中Ajax與Axios的使用小結(jié)

    在項(xiàng)目中我們經(jīng)常會(huì)遇到需要向請求頭中添加消息的場景,本文主要介紹了java中Ajax與Axios的使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Centos 7 安裝 OpenJDK 11 兩種方式及問題小結(jié)

    Centos 7 安裝 OpenJDK 11 兩種方式及問題小結(jié)

    這篇文章主要介紹了Centos 7 安裝 OpenJDK 11 兩種方式,第一種方式使用yum安裝,第二種方式使用tar解壓安裝,每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • IDEA遠(yuǎn)程連接HBase及其Java API實(shí)戰(zhàn)詳解

    IDEA遠(yuǎn)程連接HBase及其Java API實(shí)戰(zhàn)詳解

    這篇文章主要介紹了IDEA遠(yuǎn)程連接HBase及其Java API實(shí)戰(zhàn)詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • SpringMVC使用JsonView針對統(tǒng)一實(shí)體返回不同信息

    SpringMVC使用JsonView針對統(tǒng)一實(shí)體返回不同信息

    這篇文章主要為大家介紹了SpringMVC使用JsonView針對統(tǒng)一實(shí)體返回不同信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03

最新評(píng)論

深水埗区| 青铜峡市| 湖南省| 乡宁县| 平利县| 武陟县| 桐柏县| 永嘉县| 乾安县| 泉州市| 长宁区| 双辽市| 鄂伦春自治旗| 射洪县| 湄潭县| 织金县| 河池市| 淮阳县| 中方县| 兴山县| 左权县| 房产| 康定县| 临湘市| 南乐县| 集贤县| 平顺县| 巴塘县| 舟山市| 科技| 贺兰县| 枣强县| 新津县| 建湖县| 天等县| 龙江县| 怀化市| 外汇| 炎陵县| 河北区| 绍兴市|