Tüm Ürünler
Search
Belge Merkezi

IoT Platform:Cihaz verilerini ApsaraMQ for RocketMQ kullanarak iş sunucularına iletme

Son Güncelleme:Oct 03, 2026

IoT Platform, cihazlar tarafından gönderilen verileri ApsaraMQ for RocketMQ konularına iletir. Ardından ApsaraMQ for RocketMQ bu verileri iş sunucularınıza yönlendirir. Bu konuda veri iletiminin nasıl yapılacağı açıklanmaktadır.

Ön koşullar

  • Bir Alibaba Cloud hesabınızın olması gerekir.

  • IoT Platform hizmeti etkinleştirilmiş olmalıdır.

  • ApsaraMQ for RocketMQ hizmeti etkinleştirilmiş olmalıdır.

    ApsaraMQ for RocketMQ henüz etkinleştirilmemişse ApsaraMQ for RocketMQ ürün sayfasına giderek hizmeti etkinleştirin.

  • Bir geliştirme ortamı hazırlamanız gerekir. Bu örnekte aşağıdaki bileşenlerden oluşan bir Java geliştirme ortamı kullanılmaktadır.

Arka plan bilgileri

Veri iletim süreci

消息流转MQ

Avantajlar:

  • Cihazları Message Queuing Telemetry Transport (MQTT) üzerinden IoT Platform'a bağladığınızda veri iletim bağlantıları, verilerin değiştirilmesini önlemek için Transport Layer Security (TLS) şifrelemesi kullanır. MQTT hakkında daha fazla bilgi için bkz. MQTT protokolü özellikleri.

  • ApsaraMQ for RocketMQ, iş sunucularınızdaki trafik dalgalanmalarını ve eşzamanlı iş yüklerini azaltmak amacıyla bir mesaj arabelleği olarak görev yapar.

Yordam

  1. IoT Platform konsolunda oturum açın ve bir ürün ile bir cihaz oluşturun.

    1. Overview sayfasında All environment seçeneğine tıklayın. All environment sekmesinde yönetmek istediğiniz örneği bulun ve örnek kimliğine veya örnek adına tıklayın.

      Bu örnekte China (Shanghai) bölgesi seçilmiştir.

    2. Sol gezinme bölmesinde Devices > Products seçimini yapın. Products sayfasında Create Product seçeneğine tıklayın. Create Product sayfasında parametreleri yapılandırın ve OK seçeneğine tıklayın.

      Bu örnekte Product Name parametresi MQ_test olarak, Node Type parametresi ise Directly Connected Device olarak ayarlanmıştır. Diğer parametreler için varsayılan değerler kullanılmıştır.

    3. View Product Details seçeneğine tıklayın. Ürün ayrıntıları sayfasında Topic Categories > Topic Category seçimini yapın ve cihaz verilerini göndermek için kullanılan bir konu kategorisi oluşturmak üzere Edit Topic Category seçeneğine tıklayın.

      Bu örnekte /{YourProductKey}/${YourDeviceName}/user/data adlı bir konu kategorisi oluşturulmuştur.

    4. Sol gezinme bölmesinde Devices > Devices seçimini yapın. Devices sayfasında MQ_test ürünü için bir cihaz oluşturmak amacıyla Add Device seçeneğine tıklayın.

      Bu örnekte MQdevice adlı bir cihaz oluşturulmuştur.

  2. ApsaraMQ for RocketMQ konsolunda bir konu ve bir tüketici oluşturun.

    1. ApsaraMQ for RocketMQ konsolunda oturum açın.

    2. Sol gezinme bölmesinde Instances seçeneğine tıklayın. Instances sayfasında Create Instance seçeneğine tıklayın. Bu örnekte Instance Version parametresi V4.0 ve Instance Type parametresi Standard Edition Instance olarak ayarlanmış bir örnek China (Shanghai) bölgesinde oluşturulmuştur.

      Daha fazla bilgi için bkz. Örnek oluşturma.

      Önemli
      • ApsaraMQ for RocketMQ örneği, IoT Platform örneğiyle aynı bölgede bulunmalıdır.

      • Veri akışlarını yalnızca ApsaraMQ for RocketMQ V4.x örneğinin konularına iletebilirsiniz.

    3. Instances sayfasında veritabanı oluşturmak istediğiniz örneği bulun ve örnek adına tıklayın.

    4. Instance Details sayfasında Create Group seçeneğine tıklayın. Create Group panelinde parametreleri yapılandırın ve OK seçeneğine tıklayın.

      Delivery Order değerini Concurrent Delivery olarak ve Description değerini IoT device message subscription olarak ayarlayın.

    5. Create Topic seçeneğine tıklayın. Create Topic panelinde Message Type parametresini Normal Message olarak ayarlayın.

      Aşağıdaki parametreleri yapılandırın:

      • Message Type: Normal Message

      • Description: IoT cihazının kurumsal sunucuya raporlama verileri

    6. ApsaraMQ for RocketMQ konsolunda bir tüketici oluşturun ve tüketicinin durumunu görüntüleyin. Tüketicinin Online durumunda olduğundan ve gruptaki tüketicilerin aboneliklerinin tutarlı olduğundan emin olun.

      Bu örnekte mesaj göndermek ve almak için bir TCP SDK kullanılmaktadır. TCP SDK'yı edinme ve kullanma hakkında daha fazla bilgi için bkz. TCP istemci SDK'ları ile normal mesajları gönderme ve abone olma.

      Örnek Java kodu:

      Not
      import com.aliyun.openservices.ons.api.Action;
      import com.aliyun.openservices.ons.api.ConsumeContext;
      import com.aliyun.openservices.ons.api.Consumer;
      import com.aliyun.openservices.ons.api.Message;
      import com.aliyun.openservices.ons.api.MessageListener;
      import com.aliyun.openservices.ons.api.ONSFactory;
      import com.aliyun.openservices.ons.api.PropertyKeyConst;
      import java.util.Properties;
      public class ConsumerTest {
          public static void main(String[] args) {
              Properties properties = new Properties();
              // The ID of the group that you created in the ApsaraMQ for RocketMQ console.
              properties.put(PropertyKeyConst.GROUP_ID, "XXX");
              // The AccessKey ID that you created in the Alibaba Cloud Management Console for identity authentication.
              properties.put(PropertyKeyConst.AccessKey, "${AccessKey}");
              // The AccessKey secret that you created in the Alibaba Cloud Management Console for identity authentication.
              properties.put(PropertyKeyConst.SecretKey, "${SecretKey}");
              // The TCP endpoint. To obtain the TCP endpoint, go to the Basic Information section of the instance details page in the IoT Platform console.
              properties.put(PropertyKeyConst.NAMESRV_ADDR,
                  "XXX");
              // Clustering subscription. This is the default mode.
              // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.CLUSTERING);
              // Broadcasting subscription.
              // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.BROADCASTING);
              Consumer consumer = ONSFactory.createConsumer(properties);
              consumer.subscribe("iotx_test_mq", "", new MessageListener() { // Subscribe to multiple tags.
                  public Action consume(Message message, ConsumeContext context) {
                      System.out.println("Receive: " + message);
                      return Action.CommitMessage;
                  }
              });
              consumer.start();
              System.out.println("Consumer Started");
          }
      }
  3. IoT Platform konsolunda, örnek için bir veri iletimi kuralı yapılandırarak cihaz verilerini ApsaraMQ for RocketMQ'ya iletin.

    1. Sol gezinme bölmesinde Message Forwarding > Data Forwarding seçimini yapın.

    2. Data Forwarding sayfasında Create Rule seçeneğine tıklayın.

      Önemli

      En son sürümün Data Forwarding sayfası görünürse sayfanın sağ üst köşesindeki Back to Previous Version seçeneğine tıklayın. Önceki sürümün Data Forwarding sayfası göründüğünde Create Rule seçeneğine tıklayın.

    3. Create Data Forwarding Rule iletişim kutusunda Rule Name parametresini MQ forwarding olarak ve Data Type parametresini JSON olarak ayarlayın. Ardından OK seçeneğine tıklayın.

    4. Kural ayrıntıları sayfasında Write SQL Statement seçeneğine tıklayın. Write SQL Statement iletişim kutusunda aşağıdaki şekilde gösterildiği gibi parametreleri yapılandırın ve OK seçeneğine tıklayın.

      物联网设备消息

    5. Add Operation seçeneğine tıklayın. Add Operation iletişim kutusunda verileri iletmek istediğiniz hedefi belirtin ve OK seçeneğine tıklayın.

      İletişim kutusunda aşağıdaki parametreleri yapılandırın:

      • Data Destination Name: ToRocketMQ

      • Select Operation: Send data to ApsaraMQ for RocketMQ

      • Region: China (Shanghai)

      • Instance: IoT-forward-data-test

      • Authorization: AliyunIOTAccessingMQRole

    6. Data Forwarding sayfasına gidin. MQ forwarding kuralını bulun ve Actions sütunundaki Start seçeneğine tıklayın.

      Kural etkinleştirildikten sonra IoT Platform, cihaz verilerini ApsaraMQ for RocketMQ konusuna iletir.

  4. Bir Java SDK kullanarak bir cihazı simüle edin, cihazı IoT Platform'a bağlayın ve ardından cihazı kullanarak veri gönderin.

    1. Java SDK Demo paketini indirin ve paketi sıkıştırılmış dosyadan çıkarın.

    2. IntelliJ IDEA'yı başlatın ve demo paketinden JavaLinkKitDemo adlı örnek projeyi içe aktarın.

    3. device_id.json dosyasında MQdevice cihazının aşağıdaki cihaz sertifika bilgilerini belirtin: ProductKey, DeviceName ve DeviceSecret.

    4. src\main\java\com.aliyun.alink.devicesdk.demo\MqttSample.java dosyasındaki MQTT konusunu, cihazın veri gönderdiği konuyla değiştirin.

      Bu örnekte /{YourProductKey}/${YourDeviceName}/user/data konusu kullanılmaktadır.

      /**
       * Example of a publish operation
       */
      public void publish() {
              MqttPublishRequest request = new MqttPublishRequest();
              // Specify a topic based on your business scenario.
              request.topic = "/" + productKey + "/" + deviceName + "/user/data";
              ......
              ......
      }
    5. src\main\java\com.aliyun.alink.devicesdk.demo\HelloWorld.java dosyasındaki MQTT uç noktasını cihazınızın MQTT uç noktasıyla değiştirin.

      Bu örnekte aşağıdaki MQTT uç noktası kullanılmaktadır. MQTT uç noktalarını elde etme hakkında daha fazla bilgi için bkz. Örneğin uç noktasını görüntüleme.

      public void init(final DeviceInfoData deviceInfoData) {
              ......
              ......
              /**
               * Configure the parameters for MQTT initialization.
               */
              IoTMqttClientConfig config = new IoTMqttClientConfig();
              config.productKey = deviceInfoData.productKey;
              config.deviceName = deviceInfoData.deviceName;
              config.deviceSecret = deviceInfoData.deviceSecret;
              config.channelHost = "iot-06****.mqtt.iothub.aliyuncs.com:1883";
              ......
              ......
      }
    6. Cihazı başlatmak için src\main\java\com.aliyun.alink.devicesdk.demo\HelloWorld.java dosyasını çalıştırın.

    IoT Platform konsolunda örneğin Instance Details sayfasına gidin ve Maintenance > Device Log seçimini yapın. Cihaz günlüklerini görüntüleyebilir ve cihaz verilerinin ApsaraMQ for RocketMQ'ya iletilip iletilmediğini kontrol edebilirsiniz.物联网设备消息

  5. ApsaraMQ for RocketMQ konsolundaki verileri görüntüleyin.

    1. ApsaraMQ for RocketMQ konusuna abone olmak için yerel sunucunuzdaki kodu çalıştırın.

      物联网设备消息

    2. ApsaraMQ for RocketMQ konsolundaki instance details sayfasına gidin ve Message Query seçeneğine tıklayın. Message Query sayfasında konuya veya mesaj kimliğine göre mesajlarda arama yapın.

      ApsaraMQ for RocketMQ'ya iletilen mesajın ayrıntılarını görüntülemek ve mesajı indirmek için Details seçeneğine tıklayabilirsiniz.

      Örnek mesaj:

      {"deviceName":"MQdevice"}