Fungsi Java memberikan faedah berikut dalam seni bina tanpa pelayan: kebolehskalaan, pengoptimuman kos, masa yang lebih pantas untuk memasarkan dan mengurangkan beban penyelenggaraan. Langkah berikut menerangkan cara membina aplikasi tanpa pelayan menggunakan fungsi Java: pilih pembekal awan, cipta akaun, cipta fungsi, gunakan fungsi dan konfigurasikan pencetus. Contoh praktikal termasuk membina aplikasi pemprosesan imej menggunakan AWS Lambda dan mencetuskan pemberitahuan e-mel menggunakan Google Cloud Functions.
Impak Fungsi Java pada Seni Bina Tanpa Pelayan
Pengenalan
Seni bina tanpa pelayan telah menjadi pilihan popular untuk pembangunan aplikasi, menggunakan perkhidmatan awan bayar semasa anda tanpa perlu mengurus infrastruktur. Fungsi Java memainkan peranan penting dalam seni bina tanpa pelayan, menyediakan cara untuk mencipta aplikasi yang boleh skala dan boleh diselenggara dengan mudah. Faedah Fungsi Java dan Seni Bina Tanpa Pelayan
Kos Lebih Rendah: Model tanpa pelayan hanya mengecaj apabila fungsi berjalan, sekali gus menjimatkan kos infrastruktur.
Amazon Web Services (AWS), Google Web Services (AWS), Pembekal Awan Platform seperti (GCP) dan Microsoft Azure menawarkan perkhidmatan fungsi Java.
Buat Akaun:Buat akaun dengan penyedia awan pilihan anda.
import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Base64; import javax.imageio.ImageIO; public class ImageHandler implements RequestHandler<ImageEvent, ImageResponse> { @Override public ImageResponse handleRequest(ImageEvent event, Context context) { // 读取图像 byte[] imageData = Base64.getDecoder().decode(event.getImageData()); BufferedImage image = null; try { image = ImageIO.read(new ByteArrayInputStream(imageData)); } catch (IOException e) { throw new RuntimeException("无法读取图像", e); } // 调整图像大小 BufferedImage resizedImage = new BufferedImage(256, 256, BufferedImage.TYPE_INT_ARGB); Graphics2D graphics = resizedImage.createGraphics(); graphics.drawImage(image, 0, 0, 256, 256, null); graphics.dispose(); // 将调整后的图像编码为 base64 ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { ImageIO.write(resizedImage, "png", baos); return new ImageResponse(Base64.getEncoder().encodeToString(baos.toByteArray())); } catch (IOException e) { throw new RuntimeException("无法编码调整后的图像", e); } } }
Cetuskan pemberitahuan e-mel menggunakan Google Cloud Functions:
import com.google.cloud.functions.BackgroundFunction; import com.google.cloud.functions.Context; import com.google.cloud.pubsub.v1.Publisher; import com.google.cloud.pubsub.v1.TopicAdminClient; import com.google.pubsub.v1.ProjectTopicName; import com.google.pubsub.v1.PubsubMessage; import java.nio.charset.StandardCharsets; import java.util.logging.Logger; public class EmailNotification implements BackgroundFunction<PubsubMessage> { private static final Logger logger = Logger.getLogger(EmailNotification.class.getName()); private static Publisher publisher; public void setEmailTopic(Publisher publisher) { EmailNotification.publisher = publisher; } @Override public void accept(PubsubMessage message, Context context) { String data = new String(message.getData().toByteArray(), StandardCharsets.UTF_8); logger.info("Received message: " + data); try { TopicAdminClient topicAdminClient = TopicAdminClient.create(); ProjectTopicName topicName = ProjectTopicName.of(context.projectId(), System.getenv("EMAIL_TOPIC")); publisher.publish(topicName, PubsubMessage.newBuilder().setData(data.getBytes(StandardCharsets.UTF_8)).build()).get(); } catch (Exception exception) { logger.severe("Failed to publish email notification: " + exception.getMessage()); } } }
Atas ialah kandungan terperinci Apakah kesan fungsi Java pada seni bina tanpa サーバー?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!