Rumah  >  Artikel  >  Java  >  Java berfungsi berskala dan keanjalan dalam seni bina tanpa pelayan

Java berfungsi berskala dan keanjalan dalam seni bina tanpa pelayan

WBOY
WBOYasal
2024-04-26 18:33:01287semak imbas

Dalam seni bina tanpa pelayan, fungsi Java menyediakan kebolehskalaan dan keanjalan. 1. Kebolehskalaan: Melalui penskalaan automatik, fungsi boleh bertindak balas dengan lancar kepada perubahan beban. 2. Keanjalan: Fungsi sangat anjal, boleh mencuba semula secara automatik dan gagal, dan boleh digunakan dalam berbilang zon ketersediaan untuk meningkatkan daya tahan geografi.

Java berfungsi berskala dan keanjalan dalam seni bina tanpa pelayan

Kebolehskalaan dan Ketahanan Fungsi Java dalam Seni Bina Tanpa Pelayan

Dalam seni bina tanpa pelayan, Java Functions menyediakan cara yang cekap untuk membina aplikasi berskala dan berdaya tahan. Dengan menghapuskan keperluan untuk mengkonfigurasi dan mengurus infrastruktur pelayan, pengkomputeran tanpa pelayan membolehkan pembangun menumpukan pada menulis kod aplikasi.

Skalabiliti

Fungsi Java mencapai kebolehskalaan yang lancar melalui pengembangan automatik. Apabila beban meningkat, fungsi boleh melancarkan lebih banyak kejadian secara automatik untuk memastikan pelaksanaan pantas dan mengelakkan kelewatan. Begitu juga, apabila beban berkurangan, fungsi boleh dikecilkan kepada lebih sedikit contoh untuk mengoptimumkan kos.

Ketahanan

Fungsi Java sangat berdaya tahan untuk menghadapi beban puncak dan kegagalan pelayan. Fungsi boleh dicuba semula secara automatik dan dihalakan ke keadaan sihat melalui mekanisme failover. Selain itu, fungsi boleh digunakan dengan mudah merentas berbilang Zon Ketersediaan untuk meningkatkan daya tahan geografi.

Kes Praktikal

Pertimbangkan fungsi lambda yang menjana lakaran kecil berdasarkan imej input. Menggunakan seni bina tanpa pelayan, fungsi ini membolehkan kelebihan berikut:

import com.google.cloud.functions.Context;
import com.google.cloud.functions.RawBackgroundFunction;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.BlobInfo;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ThumbnailGenerator implements RawBackgroundFunction {
  private static final String BUCKET_NAME = "my-bucket";
  private static final String THUMBNAIL_SIZE = "50,50";

  @Override
  public void accept(InputStream inputStream, Context context) throws IOException {
    String body = new String(inputStream.readAllBytes(), com.google.api.client.util.Charsets.UTF_8);
    BlobInfo blobInfo = BlobInfo.newBuilder(BlobId.of(BUCKET_NAME, body)).build();

    Storage storage = StorageOptions.getDefaultInstance().getService();
    Blob blob = storage.get(blobInfo);

    if (blob != null) {
      // 生成缩略图
      String thumbFileName = "thumb_" + blob.getName();
      BlobInfo thumbBlobInfo = BlobInfo.newBuilder(BlobId.of(BUCKET_NAME, thumbFileName)).build();
      // 上传缩略图到存储桶
      Files.copy(Paths.get("/tmp", blob.getName()), Paths.get("/tmp", thumbFileName));
      storage.create(thumbBlobInfo, Paths.get("/tmp", thumbFileName).toFile());
    }
  }
}

Fungsi ini memastikan pelaksanaan pemprosesan imej yang lancar melalui mekanisme penskalaan automatik dan cuba semula, walaupun semasa puncak beban. Selain itu, ia meningkatkan daya tahan geografi dengan digunakan merentasi berbilang Zon Ketersediaan.

Atas ialah kandungan terperinci Java berfungsi berskala dan keanjalan dalam seni bina tanpa pelayan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn