Rumah > Java > javaTutorial > Menggunakan Hazelcast untuk pemprosesan cache teragih dalam pembangunan API Java

Menggunakan Hazelcast untuk pemprosesan cache teragih dalam pembangunan API Java

WBOY
Lepaskan: 2023-06-18 08:08:01
asal
1516 orang telah melayarinya

Java ialah salah satu bahasa pengaturcaraan yang paling biasa digunakan. Kita perlu dapat membangunkan aplikasi yang cekap untuk mengatasi trafik akses serentak yang tinggi. Menggunakan caching ialah teknik yang sangat penting semasa pembangunan, kerana ia boleh meningkatkan prestasi aplikasi dengan ketara apabila memproses sejumlah besar data. Pada masa yang sama, caching teragih ialah teknologi yang sangat popular yang boleh menyebarkan data cache merentasi berbilang nod fizikal, yang boleh menyediakan akses data dan fungsi pengimbangan beban pada masa yang sama.

Hazelcast ialah rangka kerja cache sumber terbuka yang sangat popular yang menyediakan keupayaan caching teragih dan keupayaan storan data ketersediaan tinggi. Faedah menggunakan Hazelcast untuk caching teragih ialah rangka kerja secara automatik mengendalikan replikasi data teragih dan toleransi kesalahan, sambil turut mendayakan pengimbangan beban dinamik, pembahagian data dan pengurusan kluster.

Dalam artikel ini, kami akan meneroka cara membangunkan aplikasi cache Hazelcast menggunakan API Java. Kami akan memperkenalkan konsep utama dan operasi asas Hazelcast, dan cara menggunakan Hazelcast dalam pembangunan Java. Kami juga akan membina contoh mudah untuk menunjukkan cara menggunakan Hazelcast untuk caching teragih.

Konsep utama Hazelcast

Sebelum memahami cara menggunakan Hazelcast, kita perlu memahami beberapa konsep utama Hazelcast.

  1. Nod

Nod merujuk kepada mesin fizikal atau maya yang menjalankan tika Hazelcast. Setiap nod mempunyai alamat IP dan nombor portnya sendiri, dan mereka boleh menyertai kluster Hazelcast dan berkomunikasi serta berkongsi data dengan nod lain.

  1. Kluster

Kluster merujuk kepada rangkaian berbilang nod yang boleh berkomunikasi antara satu sama lain dan berkongsi data. Setiap kluster mempunyai nama unik di mana nod boleh bergabung atau meninggalkan kluster.

  1. Peta

Peta ialah pasangan kunci/nilai, di mana setiap kunci sepadan secara unik dengan nilai. Dalam Hazelcast, pemetaan ialah teras storan teragih yang membolehkan data disimpan dan diakses.

  1. Entri

Entri merujuk kepada pasangan kunci/nilai yang disimpan dalam peta. Portal biasanya menggunakan objek Java sebagai kunci dan nilai.

  1. Operasi

Operasi merujuk kepada beberapa operasi asas pada struktur data teragih, seperti mendapatkan data, menambah data, mengemas kini data dan memadamkan data.

Operasi asas:

Sekarang mari kita lihat operasi asas Hazelcast. Berikut ialah beberapa operasi Hazelcast biasa:

  1. Buat tika Hazelcast

Pertama, kita perlu mencipta tika Hazelcast untuk mengendalikan cache yang diedarkan. Kejadian Hazelcast baharu boleh dibuat menggunakan antara muka HazelcastInstance yang disediakan oleh Hazelcast. Contohnya, kod berikut menunjukkan cara untuk mencipta tika Hazelcast baharu:

HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
Salin selepas log masuk
  1. Dapatkan Peta

Salah satu kegunaan utama Hazelcast ialah untuk mencipta Peta teragih. Peta boleh dibuat menggunakan kaedah getMap HazelcastInstance. Contohnya, kod berikut menunjukkan cara mendapatkan peta bernama "pengguna":

IMap<String, User> users = hazelcastInstance.getMap("users");
Salin selepas log masuk
  1. Tambah Entri

Untuk menambah Entri pada peta Hazelcast, gunakan kaedah put . Contohnya, kod berikut menunjukkan cara menambah Entri baharu pada peta "pengguna":

User user = new User("John", "Doe");
users.put("123", user);
Salin selepas log masuk
  1. Mendapatkan Kemasukan

Untuk mendapatkan Entri dalam peta Hazelcast, Anda boleh menggunakan kaedah dapatkan. Contohnya, kod berikut menunjukkan cara untuk mendapatkan Entri dalam peta "pengguna":

User user = users.get("123");
Salin selepas log masuk
  1. Kemas Kini Entri

Untuk mengemas kini Entri dalam peta Hazelcast, anda boleh guna kaedah put. Contohnya, kod berikut menunjukkan cara mengemas kini Entri pengguna dalam peta "pengguna":

User newUser = new User("Jane", "Doe");
users.put("123", newUser);
Salin selepas log masuk
  1. Padam Entri

Untuk memadamkan Entri daripada peta Hazelcast, gunakan kaedah buang. Contohnya, kod berikut menunjukkan cara memadam Entri pengguna daripada peta "pengguna":

users.remove("123");
Salin selepas log masuk

Contoh pemprosesan cache teragih menggunakan Hazelcast

Sekarang mari kita lihat cara melakukannya dalam Java Cache teragih API menggunakan Hazelcast. Dalam contoh ini, kami akan mencipta aplikasi Java mudah untuk cache hasil tindak balas perkhidmatan web. Selain itu, kami akan menggunakan Hazelcast untuk caching teragih bagi memastikan aplikasi kami boleh mengendalikan sejumlah besar akses serentak dengan cekap.

Pertama, kita perlu mencipta klien HTTP untuk mendapatkan respons daripada perkhidmatan web. Berikut ialah kod contoh klien HTTP mudah:

public class HttpClient {
    public String get(String url) throws IOException {
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
      
        con.setRequestMethod("GET");

        try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))) {
            StringBuilder response = new StringBuilder();
            String line;
            while ((line = in.readLine()) != null) {
                response.append(line);
            }
            return response.toString();
        }
    }
}
Salin selepas log masuk

Seterusnya, kita perlu mencipta kelas cache untuk cache respons daripada perkhidmatan web. Jika tiada respons dalam cache, klien HTTP dipanggil untuk mendapatkan respons dan disimpan ke cache. Berikut ialah kod contoh kelas cache ringkas:

public class ResponseCache {
    private Map<String, String> cache;

    public ResponseCache(HazelcastInstance hazelcastInstance) {
        cache = hazelcastInstance.getMap("response-cache");
    }

    public String get(String url) throws IOException {
        String response = cache.get(url);
        if (response == null) {
            HttpClient client = new HttpClient();
            response = client.get(url);
            cache.put(url, response);
        }
        return response;
    }
}
Salin selepas log masuk

Dalam contoh ini, kami menyuntik tika Hazelcast dalam pembina dan boleh menggunakan kaedah getMap Hazelcast untuk mencipta fail yang dipanggil Peta Teragih "response-cache". Dalam kaedah dapatkan, kami mula-mula menyemak sama ada respons yang diambil daripada cache adalah batal, dan jika ya, hubungi klien HTTP untuk mendapatkan respons dan simpannya ke peta Hazelcast.

现在,让我们来看一下如何使用 ResponseCache 类来缓存 Web 服务的响应。以下是一个简单的客户端类示例代码:

public class Client {
    public static void main(String[] args) throws IOException {
        HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
        ResponseCache cache = new ResponseCache(hazelcastInstance);

        String response = cache.get("https://www.example.com/api/v1/data");
        System.out.println(response);
    }
}
Salin selepas log masuk

在这个例子中,我们首先创建了一个 Hazelcast 实例,然后创建了一个 ResponseCache 实例,并使用 get 方法来缓存和获取 Web 服务的响应。如果我们运行该应用程序多次,则可以看到 Hazelcast 自动处理缓存数据的复制和容错,并确保数据在分布式环境中可用。

结论

在本文中,我们介绍了 Hazelcast 的一些主要概念和基本操作,并演示了如何在 Java API 中使用 Hazelcast 进行分布式缓存处理。我们还建立了一个简单的示例来演示这一过程。通过使用 Hazelcast 进行分布式缓存,我们可以有效地处理大量的并发访问,并确保我们的应用程序具有高可用性和可扩展性。使用 Hazelcast 还可以减少应用程序中的网络延迟和资源利用率,并降低成本。

Atas ialah kandungan terperinci Menggunakan Hazelcast untuk pemprosesan cache teragih dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan