2017-08-13 4 views
0

Je suis en train de concevoir une application qui prend les fichiers et les divise/fusionne selon le contenu et les envoie vers un autre système. Une fois traitées, pas besoin de ces fichiers du tout. Donc, je prévois de stocker des fichiers sur le disque dur où l'application déployée à la place de tout système de fichiers distribué/réseau. Pourquoi je n'ai pas choisi le système de fichiers réseau comme dans mes scénarios J'ai besoin de traiter des fichiers énormes comme 1 Go et j'utilise des flux JSON pour le traitement de ces fichiers. Aussi, parfois, j'ai besoin d'utiliser le mécanisme RandomAccessFile pour diviser mon contenu. Si cela se produit sur un système de fichiers réseau, le temps de traitement peut être élevé.Stockage de fichiers sur un disque dur d'instance où l'application est déployée

Je pensais à la mise à l'échelle de l'application aussi bien avec le système de fichiers local, elle peut être mise à l'échelle sans souci puisque le système cible attend les données traitées du même système vers lequel les fichiers sont copiés.

Veuillez donner votre avis à ce sujet? Je veux vérifier que je suis sur le chemin droit

Répondre

0

Je vais donner quelques inconvénients de cette approche:

  • HDD local a généralement pas de redondance (par exemple RAID 5/0) - et est plus susceptible d'échouer (Cela dépend, oc, de votre fournisseur de matériel/cloud)
  • Le disque dur local est souvent basé sur du matériel de qualité inférieure (comparez au SAN/NAS) - et peut être plus lent.
    • La principale différence entre un disque dur rapide/lent est généralement un accès aléatoire. Pour l'accès séquentiel (vous avez principalement mentionné travailler avec des fichiers volumineux?), L'effet peut être beaucoup plus faible.
  • Les données de disque dur local sont souvent supprimées, sur les fournisseurs de cloud, en cas d'échec de l'instance. Donc, encore une fois, c'est un risque de perdre des données.

Pour récapituler: Si vos exigences de résilience et de performance sont remplies - Je ne vois pas un problème avec cette approche.

+0

OK. Que suggérez-vous si je devrais être capable de faire tout ce que je peux faire avec le système de fichiers local. Tous les services qui pourraient soutenir ce traitement de flux et l'accès aux fichiers aléatoires dans Java? – Pokuri

+0

Courez-vous sur le nuage? si oui - quel vendeur? Je considérerais seulement un service local - sinon la latence "tuerait" la performance. –

+0

Pas encore décidé sur l'environnement de déploiement. Et si c'est AWS? Et si c'était un autre environnement cloud? – Pokuri