Tüm Ürünler
Search
Belge Merkezi

:Java SDK sürüm notları

Son Güncelleme:Oct 04, 2026

Bu konuda, Java 2.x.x.Final TCP istemci SDK'sının kullanım notları, sürüm bilgileri, ortam gereksinimleri ve özellik değişiklikleri dahil olmak üzere sürüm notları açıklanmaktadır.

Kullanım notları

  • Java TCP istemci SDK'nızı yalnızca aşağıdaki bölgelerde V2.x.x.Final sürümüne yükseltebilirsiniz: Çin (Hangzhou), Çin (Qingdao), Çin (Beijing), Çin (Zhangjiakou), Çin (Hohhot), Çin (Shenzhen), Çin (Chengdu), Çin (Hong Kong), Almanya (Frankfurt) ve Endonezya (Cakarta). Java TCP istemci SDK'nızı diğer bölgelerde V2.x.x.Final sürümüne yükseltmeyin. Aksi takdirde, SDK'yı kullanarak ApsaraMQ for RocketMQ hizmetine bağlanamazsınız.

  • Java TCP istemci SDK 2.x.x.Final sürümünü kullanarak ApsaraMQ for RocketMQ hizmetine yalnızca sanal özel bulutlarda (VPC) erişebilirsiniz.

    Mevcut bir ApsaraMQ for RocketMQ örneği kullanıyor ve bu örneğe klasik ağ üzerinden erişiyorsanız, Java TCP istemci SDK'nızı 2.x.x.Final sürümüne yükseltmeyin. Aksi takdirde, ApsaraMQ for RocketMQ örneğine erişemezsiniz.

  • Java TCP istemci SDK 2.x.x.Final sürümünü kullanarak yalnızca ad alanı içeren örneklere erişebilirsiniz. Kullandığınız örnek bir ad alanı içermiyorsa, Java TCP istemci SDK'nızı 2.x.x.Final sürümüne yükseltmeyin.

    Varsayılan olarak, tüm ApsaraMQ for RocketMQ 5.x örnekleri ad alanı içerir. Bir ApsaraMQ for RocketMQ 4.x örneği kullanıyorsanız, ApsaraMQ for RocketMQ konsolu içindeki Instance Details sayfasının Basic Information bölümünden örneğin bir ad alanı içerip içermediğini kontrol edebilirsiniz.

Sürüm bilgileri


Yayın tarihi


Sürüm


İndirme bağlantısı


2023-02-23


2.0.5.Final


ons-client-2.0.5.Final


2022-08-17


2.0.3.Final


ons-client-2.0.3.Final


2022-06-16


2.0.2.Final


ons-client-2.0.2.Final


2021-11-29


2.0.1.Final


ons-client-2.0.1.Final


2021-10-18


2.0.0.Final


ons-client-2.0.0.Final

Ortam gereksinimleri

Java SDK V2.x.x sürümünü kullanmak istiyorsanız, Java 8 veya sonraki sürümleri destekleyen bir Java Geliştirme Kiti (JDK) kullandığınızdan emin olun.

V2.0.5 sürümündeki özellik değişiklikleri

Optimize edilen özellik

Eşzamansız günlükler desteklenir.

Düzeltilen sorunlar

  • Toplu iş tüketimi için bekleme süresi belirtilemiyordu.

  • Belirli güvenlik açıkları düzeltildi.

V2.0.3 sürümündeki özellik değişiklikleri

Fixed issue

Sonraki JDK sürümlerinde, bir iş parçacığı havuzundaki iş parçacığı sayısı 32'den büyük bir değere çıkarılamıyordu.

V2.0.2 sürümündeki özellik değişiklikleri

Fixed issue

Mesaj gönderimi sırasında kilitlenme oluşabiliyordu.

V2.0.1 sürümündeki özellik değişiklikleri

Message trace

İz sorgusu sonuçlarında daha fazla veri döndürülür.

V2.0.0 sürümündeki özellik değişiklikleri

Ordered message

MaxReconsumeTimes parametresinin varsayılan değeri Integer.MAX değerinden 16'ya değiştirilmiştir. Bu parametre, sıralı mesajlar için maksimum yeniden deneme sayısını belirtir. Tüketici, maksimum yeniden deneme sayısına ulaştıktan sonra da bir mesajı tüketemezse mesaj dead-letter kuyruğuna iletilir. Sıralı mesajlar için maksimum yeniden deneme sayısını değiştirmek üzere MaxReconsumeTimes parametresinin değerini değiştirebilirsiniz.

Transactional message

Bir producer mesaj gönderirken LocalTransactionExecutor sınıfı null ise bir özel durum oluşur. Önceki sürümlerde bu hata için özel durum oluşmazdı.

Broadcasting consumption

Yayın tabanlı tüketim modunda, tüketimin başlayacağı tüketici ofsetini belirtmek için offsetStore işlemine çağrı yapabilirsiniz. Tüketici ofsetini belirtmezseniz tüketim en son tüketici ofsetinden başlar. Bu davranış önceki sürümlerle tutarlıdır.

Örnek kod:

public class BroadcastingConsumerExample {
    public static void main(String[] args) throws InterruptedException {
        Properties properties = new Properties();

        properties.put(PropertyKeyConst.GROUP_ID, "MyGroupId");
        properties.put(PropertyKeyConst.AccessKey, "MyAccessKey");
        properties.put(PropertyKeyConst.SecretKey, "MySecretKey");
        // The TCP endpoint. You can obtain the endpoint in the TCP Endpoint section of the Instance Details page in the ApsaraMQ for RocketMQ console. 
        properties.put(PropertyKeyConst.NAMESRV_ADDR, "XXXX");
        // You can obtain the consumer offset by calling the offsetStore operations only in broadcasting consumption mode. 
        properties.put(PropertyKeyConst.MessageModel, MessageModel.BROADCASTING);

        Consumer consumer = ONSFactory.createConsumer(properties);
        // The frequency of calls for the AbstractOffsetStore method. The value 1 specifies that the system calls the AbstractOffsetStore method every second to set a persistent offset. 
        OffsetStore offsetStore = new AbstractOffsetStore(1) {
            @Override
            public Map<TopicPartition, Long> loadOffset() {
            // The logic that is used to obtain the offset from an external storage system. 
            }

            @Override
            public void persistOffset(Map<TopicPartition, Long> offsetTable) {
            // The logic that is used to persist the offset to an external storage system. 
            }
        };
        offsetStore.start();
        consumer.setOffsetStore(offsetStore);

        consumer.subscribe("testBroadcastingTopic", "TagA", new MessageListener() {
            @Override
            public Action consume(Message message, ConsumeContext context) {
                // The logic that is used to consume messages. 
                return Action.CommitMessage;
            }
        });

        consumer.start();
        Thread.sleep(100000);
        consumer.shutdown();
        offsetStore.shutdown();
    }
}

Consumption in Push mode

  • Normal mesajların toplu iş olarak tüketilmesi desteklenmez.

  • Belirtilen tüketim iş parçacığı sayısı 1 ile 1.000 arasındaki geçerli aralıkta değilse bir tüketici oluşturduğunuzda sistem bir özel durum oluşturur.

  • Tüketim kısıtlama özelliği eklendi. Mesaj tüketim oranlarını sınırlamak için tüketim kısıtlama özelliğini yapılandırabilirsiniz. Bu özellik, tüketici istemcilerinde ani mesaj artışlarından kaynaklanan uygulama özel durumlarının önlenmesine yardımcı olur. Aşağıdaki kodda, özel bir mesaj tüketim oranının nasıl belirtileceği gösterilmektedir.

    Not

    Tüketim kısıtlama özelliği, sıralı mesajların yeniden denenmeleri için geçerli değildir.

    public class RateLimitConsumerExample {
        public static void main(String[] args) throws InterruptedException {
            Properties properties = new Properties();
    
            properties.put(PropertyKeyConst.GROUP_ID, "MyGroupId");
            properties.put(PropertyKeyConst.AccessKey, "MyAccessKey");
            properties.put(PropertyKeyConst.SecretKey, "MySecretKey");
            // The TCP endpoint. You can obtain the endpoint in the TCP Endpoint section of the Instance Details page in the ApsaraMQ for RocketMQ console. 
            properties.put(PropertyKeyConst.NAMESRV_ADDR, "XXX");
    
            Consumer consumer = ONSFactory.createConsumer(properties);
    
            // Specify the message consumption rate in testTopicA. In this example, the consumer client can consume only 10 messages per second. 
            consumer.rateLimit("testTopicA", 10);
            consumer.subscribe("testTopic", "TagA", new MessageListener() {
                @Override
                public Action consume(Message message, ConsumeContext context) {
                    // The logic that is used to consume messages. 
                    return Action.CommitMessage;
                }
            });
    
            consumer.start();
            Thread.sleep(100000);
            consumer.shutdown();
        }
    }

Consumption in Pull mode

Pull modunda tüketim desteklenmez.

Log configuration

  • Varsayılan günlük yolu ~/logs/ons.log konumundan ~/logs/ons/ons-client.log konumuna değiştirilmiştir.

  • Günlük seviyeleri, logback çerçevesinde desteklenen günlük seviyeleriyle tutarlıdır. OFF, TRACE ve ALL günlük seviyeleri eklenmiştir. Önceki sürümler yalnızca ERROR, WARN, INFO ve DEBUG günlük seviyelerini destekler.

  • Günlükle ilgili parametreler eklemek için ortam değişkenleri desteklenir. Önceki sürümler yalnızca -D parametresini destekler.

Client creation

Geçersiz bir uç nokta belirtilirse sistem bir producer veya tüketici oluşturmaya çalışırken bir özel durum oluşturur.

Message trace

En yeni SDK kullanılarak mesaj gönderildiğinde ve alındığında iz sorgusu sonucuna aşağıdaki parametreler eklenir.


Parametre


Açıklama


AccessKey


Alibaba Cloud hesabınızın veya RAM kullanıcınızın AccessKey ID'si. Bu kimlik, bir SDK kullanarak veya bir API işlemi çağırarak ApsaraMQ for RocketMQ kaynaklarına erişirken kimlik doğrulaması için kullanılır.


Arrival at server


Mesajın ApsaraMQ for RocketMQ sunucusuna ulaştığı zaman.


Preset DeliverAt


Zamanlanmış bir mesajın beklenen teslim zamanı.


Actual AvailableAt


Zamanlanmış bir mesaj için zamanlayıcının sona erdiği ve mesajın tüketime hazır hale geldiği zaman.


Available Time


Mesajın tüketime hazır hale geldiği zaman.


Commit/Rollback time


İşlemsel mesajın commit edildiği veya rollback edildiği zaman.


Arrive at Consumer At


Mesajın tüketici istemcisine ulaştığı zaman.


Wait Duration before Processing


Mesajın tüketici istemcisine ulaşmasından, iş parçacığı havuzunun işleme için bir iş parçacığı ve kaynak ayırmasına kadar geçen süre.

V2.0.0 sürümünde düzeltilen sorunlar

Aşağıdaki sorun düzeltildi: updateCredential işlemi kısa bir süre içinde birden çok kez çağrıldığında, AccessKey ID, AccessKey secret ve STS token güncellenirken atomiklik sağlanamadığı için Security Token Service (STS) kullanılarak RAM rolleri için hesaplar arası yetkilendirme başarısız olur.

STS yetkilendirmesi için örnek SDK kodu hakkında bilgi almak için bkz. Adım 2: Alibaba Cloud hesapları arasında kaynaklara erişim.