All Products
Search
Document Center

Microservices Engine:Mulai dalam 10 menit

Last Updated:Jul 06, 2025

Anda dapat mengunggah gambar aplikasi ke Konsol Container Service for Kubernetes (ACK) dan menghubungkan aplikasi tersebut ke XXL-JOB. Hal ini memungkinkan Anda menjadwalkan pekerjaan serta melakukan sharding secara efisien.

Prasyarat

  • Pengguna RAM harus memiliki izin yang diperlukan pada XXL-JOB. Untuk informasi lebih lanjut, lihat Otorisasi XXL-JOB.

  • Sebuah instance XXL-JOB telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instance.

Ikhtisar

Solusi ini memberikan contoh cara menerapkan gambar ke kontainer menggunakan ACK Serverless atau Serverless App Engine (SAE) untuk mengembangkan dan menerapkan aplikasi, menghubungkan aplikasi ke XXL-JOB, serta menguji aplikasi yang terhubung dengan menggunakan pekerjaan standalone dan sharding broadcast. Dalam contoh ini, digunakan gambar aplikasi demo yang disediakan oleh XXL-JOB untuk membantu Anda memahami penggunaan dan konfigurasi XXL-JOB. Untuk mengimplementasikan solusi ini, ikuti langkah-langkah berikut:

  1. Buat aplikasi: Buat aplikasi di XXL-JOB untuk mengelola pekerjaan secara terpusat. Hal ini memungkinkan Anda melihat, mengonfigurasi, dan menjadwalkan pekerjaan dengan mudah serta meningkatkan efisiensi manajemen pekerjaan.

  2. Terapkan proyek demo ke kontainer: Gunakan ACK Serverless atau SAE untuk menerapkan dan menskalakan gambar demo dengan cepat.

  3. Lakukan pengujian dan verifikasi: Verifikasi bahwa pekerjaan pada aplikasi yang terhubung dapat dijadwalkan dan dikelola secara otomatis di XXL-JOB serta dieksekusi pada waktu yang ditentukan.

Langkah 1: Buat aplikasi

  1. Masuk ke Konsol MSE, dan pilih wilayah di bilah navigasi atas.

  2. Di halaman yang muncul, klik ID instance Anda untuk masuk ke halaman detail instance. Di halaman detail instance, klik Application Management di panel navigasi sebelah kiri. Di halaman yang muncul, klik CreateApplication. Di panel CreateApplication, konfigurasikan parameter AppName dan Name, klik Pembuatan Otomatis untuk AccessToken untuk mendapatkan token akses, lalu klik OK.

Langkah 2: Terapkan proyek demo ke kontainer

XXL-JOB menyediakan gambar aplikasi demo publik berikut: registry.cn-hangzhou.aliyuncs.com/schedulerx/xxljob-demo:2.4.1. Anda dapat menggunakan salah satu metode berikut untuk menerapkan aplikasi demo dan menghubungkannya ke XXL-JOB.

Penting

Pastikan kluster tempat aplikasi diterapkan berada di virtual private cloud (VPC) yang sama dengan instance XXL-JOB, dan aturan arah masuk dari grup keamanan tempat node aplikasi berada mengizinkan akses dari blok CIDR VPC.

ACK Serverless

  1. Masuk ke Konsol ACK. Di halaman Kluster, klik Buat Kluster Kubernetes. Di tab ACK Serverless halaman pembelian, pilih Konfigurasi SNAT untuk VPC untuk memfasilitasi penarikan gambar. Lewati operasi ini jika SNAT sudah dikonfigurasi untuk VPC.

  2. Di halaman yang muncul, klik Application Management di panel navigasi sebelah kiri. Kemudian, temukan aplikasi yang diinginkan dan klik Access Configuration di kolom Operasi.

  3. Di halaman Kluster Konsol ACK, klik nama kluster yang telah dibuat. Di panel navigasi sebelah kiri, pilih Workloads > Deployments. Di halaman Deployments, klik Create from YAML. Dalam contoh ini, Metode Akses 2 digunakan dan aplikasi di-restart menggunakan parameter -D. Salin kode yang disediakan oleh metode akses dan ganti nilai variabel lingkungan JAVA_OPTS dengan kode yang disalin.

    image

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: xxljob-demo
      labels:
        app: xxljob-demo
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: xxljob-demo
      template:
        metadata:
          labels:
            app: xxljob-demo
        spec:
          containers:
          - name: xxljob-executor
            image: registry.cn-hangzhou.aliyuncs.com/schedulerx/xxljob-demo:2.4.1
            ports:
            - containerPort: 9999
            env:
              - name: JAVA_OPTS
                value: >-
                  -Dxxl.job.admin.addresses=http://xxljob-xxxxx.schedulerx.mse.aliyuncs.com
                  -Dxxl.job.executor.appname=xxxxx
                  -Dxxl.job.accessToken=xxxxxxx

SAE

  1. Masuk ke Konsol SAE dan pilih Application Management > Applications di panel navigasi sebelah kiri. Di halaman Applications, klik Create Application untuk membuat aplikasi.

  2. Konfigurasikan informasi dasar tentang aplikasi. Pilih namespace yang ada, dan pilih vSwitch dan grup keamanan di VPC yang terkait dengan namespace. Klik Specify Image di bagian Application Deployment Method. Di panel Specify Image, masukkan URL gambar demo berikut di tab Custom Image: registry.cn-hangzhou.aliyuncs.com/schedulerx/xxljob-demo:2.4.1. Lalu, klik OK.

    Penting

    Namespace yang Anda pilih harus terkait dengan VPC tempat instance XXL-JOB berada.

3. Di langkah Advanced Settings, konfigurasikan variabel lingkungan JAVA_OPTS.

Anda dapat memperoleh nilai variabel lingkungan dengan melakukan operasi berikut:

Masuk ke Konsol MSE, dan pilih wilayah di bilah navigasi atas. Di halaman XXL-JOBVersion, temukan instance yang ingin Anda hubungkan ke aplikasi dan klik ID instance. Halaman detail instance muncul. Di panel navigasi sebelah kiri, klik Application Management. Di halaman yang muncul, temukan aplikasi yang telah dibuat dan klik Access Configuration di kolom Operasi. Dalam contoh ini, Metode Akses 2 digunakan. Salin kode yang disediakan oleh metode akses dan gunakan kode yang disalin sebagai nilai variabel lingkungan JAVA_OPTS.

image

4. Klik Create Application with One Click. Aplikasi dibuat di Konsol SAE.

Langkah 3: Lakukan pengujian dan verifikasi

1. Periksa executor

Di halaman detail instance Konsol MSE, klik Application Management di panel navigasi sebelah kiri. Di halaman Application Management, temukan aplikasi yang telah diterapkan dan klik nilai di kolom Jumlah aktuator untuk melihat alamat IP dan status online setiap executor.

image

2. Uji pekerjaan

Gambar demo berisi kode untuk menguji pekerjaan, termasuk JobHandler dari berbagai jenis pekerjaan:

  • JobHandler dari pekerjaan standalone: helloworld

  • JobHandler dari pekerjaan sharding broadcast: shardingJobHandler

Contoh Kode

@Component
public class SampleXxlJob {
    private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);

    /**
     * 1. Contoh pekerjaan sederhana, yang langsung mengembalikan hasil.
     */
    @XxlJob("helloworld")
    public ReturnT<String> helloworld(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, Hello World, param=" + param);
        System.out.println("XXL-JOB, Hello World, finished");
        return ReturnT.SUCCESS;
    }

    /**
     * 2. Contoh pekerjaan sederhana, yang diulang lima kali.
     */
    @XxlJob("demoJobHandler")
    public ReturnT<String> demoJobHandler(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, demoJobHandler, param=" + param);
        System.out.println("XXL-JOB, demoJobHandler, start...");
        for (int i = 0; i < 5; i++) {
            System.out.println("beat at:" + i);
            XxlJobLogger.log("beat at:" + i);
            TimeUnit.SECONDS.sleep(2);
        }
        System.out.println("XXL-JOB, demoJobHandler, end...");
        return ReturnT.SUCCESS;
    }

    /**
     * 3. Pekerjaan sharding broadcast.
     */
    @XxlJob("shardingJobHandler")
    public ReturnT<String> shardingJobHandler(String param) throws Exception {

        // Parameter shard
        ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
        XxlJobLogger.log("Parameter Shard: Shard ID saat ini = {}, Total jumlah shard = {}", shardingVO.getIndex(), shardingVO.getTotal());

        // Logika bisnis
        for (int i = 0; i < shardingVO.getTotal(); i++) {
            if (i == shardingVO.getIndex()) {
                XxlJobLogger.log("Shard {}, Proses shard yang cocok", i);
            } else {
                XxlJobLogger.log("Shard {}, Abaikan", i);
            }
        }

        return ReturnT.SUCCESS;
    }

    /**
     * 4. Pekerjaan siklus hidup: Mendukung logika kustom saat pekerjaan diinisialisasi atau dihapus.
     */
    @XxlJob(value = "demoJobHandler2", init = "init", destroy = "destroy")
    public ReturnT<String> demoJobHandler2(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, Hello World.");
        return ReturnT.SUCCESS;
    }
    public void init(){
        logger.info("init");
    }
    public void destroy(){
        logger.info("destory");
    }

    /**
     * 5. Pekerjaan gagal dan pengecualian 1 / 0 dilemparkan.
     */
    @XxlJob(value = "failedJobHandler")
    public ReturnT<String> failedJobHandler(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, Hello World.");
        int a = 1/0;
        return ReturnT.SUCCESS;
    }

}

Pekerjaan standalone

Pekerjaan standalone dieksekusi secara idempoten di executor yang dipilih berdasarkan kebijakan routing.

  1. Di halaman detail instance, klik Task Management di panel navigasi sebelah kiri. Di halaman yang muncul, klik Create Task. Di langkah Konfigurasi Dasar panel Create Task, konfigurasikan parameter Task Name dan jobhandler Name, pilih aplikasi yang telah diterapkan dari daftar drop-down Associated Applications, atur parameter Routing Policy ke Polling, lalu klik Next step.

    image

  2. Di langkah Timing Configuration, atur parameter Time Type ke cron dan klik Using the Build Tool untuk menghasilkan cron expression. Dalam contoh ini, pekerjaan dijalankan sekali sehari pada pukul 12:00. Lalu, klik Next step.

    image

  3. Di langkah Notification Configuration, Anda dapat mengonfigurasi peringatan untuk batas waktu eksekusi, keberhasilan eksekusi, dan kegagalan eksekusi, serta menentukan metode notifikasi dan kontak peringatan. Dalam contoh ini, konfigurasi default di konsol digunakan.

    image

  4. Setelah pekerjaan dibuat, temukan pekerjaan di halaman Task Management dan klik Run once di kolom Operasi. Di kotak dialog Perform tasks manually, pilih mesin tempat Anda ingin mengeksekusi pekerjaan, masukkan parameter instance, lalu klik OK.

    image

  5. Temukan pekerjaan di halaman Task Management dan pilih More > Scheduling Records di kolom Operasi untuk melihat catatan eksekusi pekerjaan.

  6. Di halaman detail instance, klik Execution List di panel navigasi sebelah kiri. Di halaman yang muncul, temukan catatan eksekusi yang ingin Anda lihat dan klik Log di kolom Operasi untuk melihat log eksekusi pekerjaan.

    image

Pekerjaan sharding broadcast

Pekerjaan sharding broadcast dieksekusi di semua executor aplikasi, dan setiap executor diberi nomor shard unik. Jenis pekerjaan ini berlaku untuk pemrosesan batch terdistribusi. Berbeda dengan XXL-JOB open source yang tidak mendukung fitur agregasi, XXL-JOB mengumpulkan dan menampilkan eksekusi pekerjaan sharding broadcast di setiap shard.

  1. Di halaman detail instance, klik Task Management di panel navigasi sebelah kiri. Di halaman yang muncul, klik Create Task. Di langkah Konfigurasi Dasar panel Create Task, konfigurasikan parameter Task Name dan jobhandler Name, pilih aplikasi yang telah diterapkan dari daftar drop-down Associated Applications, atur parameter Routing Policy ke Multipart Broadcast, lalu klik Next step.

    image

  2. Di langkah Timing Configuration, atur parameter Time Type ke cron dan klik Using the Build Tool untuk menghasilkan cron expression. Dalam contoh ini, pekerjaan dijalankan pada menit ke-10 setiap jam. Lalu, klik Next step.

    image

  3. Di langkah Notification Configuration, Anda dapat mengonfigurasi peringatan untuk batas waktu eksekusi, keberhasilan eksekusi, dan kegagalan eksekusi, serta menentukan metode notifikasi dan kontak peringatan. Dalam contoh ini, konfigurasi default di konsol digunakan.

    image

  4. Setelah pekerjaan dibuat, temukan pekerjaan di halaman Task Management dan klik Run once di kolom Operasi. Di kotak dialog Perform tasks manually, pilih satu atau lebih mesin tempat Anda ingin mengeksekusi pekerjaan, masukkan parameter instance, lalu klik OK.

    image

  5. Temukan pekerjaan di halaman Task Management dan pilih More > Scheduling Records di kolom Operasi untuk melihat catatan eksekusi pekerjaan.

  6. Di halaman detail instance, klik Execution List di panel navigasi sebelah kiri. Di halaman yang muncul, temukan catatan eksekusi yang ingin Anda lihat dan klik Details di kolom Operasi. Di panel Detail Penjadwalan, lihat detail eksekusi di setiap mesin pada tab Slice Details.

    image

  7. Temukan shard dan klik Log di kolom Operasi untuk melihat log eksekusi pekerjaan shard.

    image