SpringCloud Stream訊息驅動

2021-10-04 23:12:26 字數 4092 閱讀 9591

遮蔽底層訊息中介軟體的差異,降低切換成本,統一訊息的程式設計模型。

在沒有binder這個概念的情況下,springboot應用要直接與訊息中介軟體進行資訊互動的時候,由於各訊息中介軟體構建的初衷不同,他們的實現細節上有較大差異,通過定義binder作為中間層,完美實現了應用程式與訊息中介軟體細節之間的隔離。stream對訊息中介軟體的進一步封裝,做到**層面對中介軟體的無感知,甚至於動態切換中介軟體,使得微服務開發的高度解耦。

:# 在此處配置要繫結的rabbitmq的服務資訊;

defaultrabbit

:# 表示定義的名稱,用於於binding整合

type

: rabbit # 訊息元件型別

environment

:# 設定rabbitmq的相關的環境配置

spring

:rabbitmq

:host

: localhost

port

:5672

username

: guest

password

: guest

bindings

:# 服務的整合處理

output

:# 這個名字是乙個通道的名稱

destination

: studyexchange # 表示要使用的exchange名稱定義

content-type

binder

: defaultrabbit # 設定要繫結的訊息服務的具體設定

eureka

:client

:# 客戶端進行eureka註冊的配置

# 設定心跳的時間間隔(預設是30秒)

lease-expiration-duration-in-seconds:5

# 如果現在超過了5秒的間隔(預設是90秒)

instance-id

: send-8801.com # 在資訊列表時顯示主機名稱

prefer-ip-address

:true

# 訪問的路徑變為ip位址

service

@enablebinding

(source.

class

)//定義訊息的推送管道

public

class

messageproviderimpl

implements

imessageprovider

}

1.pom

>

>

org.springframework.cloudgroupid

>

>

spring-cloud-starter-stream-rabbitartifactid

>

dependency

>

yaml

server

:port

:8802

spring::

name

: cloud-stream-consumer

cloud

:stream

:binders

:# 在此處配置要繫結的rabbitmq的服務資訊;

defaultrabbit

:# 表示定義的名稱,用於於binding整合

type

: rabbit # 訊息元件型別

environment

:# 設定rabbitmq的相關的環境配置

spring

:rabbitmq

:host

: localhost

port

:5672

username

: guest

password

: guest

bindings

:# 服務的整合處理

input

:# 這個名字是乙個通道的名稱

destination

: studyexchange # 表示要使用的exchange名稱定義

content-type

binder

: defaultrabbit # 設定要繫結的訊息服務的具體設定

eureka

:client

:# 客戶端進行eureka註冊的配置

# 設定心跳的時間間隔(預設是30秒)

lease-expiration-duration-in-seconds:5

# 如果現在超過了5秒的間隔(預設是90秒)

instance-id

: receive-8802.com # 在資訊列表時顯示主機名稱

prefer-ip-address

:true

# 訪問的路徑變為ip位址

controller

@component

@enablebinding

(sink.

class

)public

class

receivemessagelistenercontroller")

private string serverport;

@streamlistener

(sink.input)

public

void

input

(message

message)

}

bindings

:# 服務的整合處理

input

:# 這個名字是乙個通道的名稱

destination

: studyexchange # 表示要使用的exchange名稱定義

content-type

binder

: defaultrabbit # 設定要繫結的訊息服務的具體設定

group

: a

微服務應用放置於同乙個group中,就能夠保證訊息只會被其中乙個應用消費一次。不同的組是可以消費的,同乙個組內會發生競爭關係,只有其中乙個可以消費。

分組後,預設開啟訊息持久化,即服務開啟後可以收到開啟之前的訊息。

SpringCloud Stream訊息驅動概述

簡介 如果系統裡同時存在多種mq,可以使用使用cloud stream,只需要和stream互動就可以進行管理。一句話,遮蔽底層訊息中介軟體的差異,降低切換成本,統一訊息的程式設計模型 官網 中文手冊 官方定義springcloud stream是乙個構建訊息驅動微服務的框架 應用程式通過input...

springcloud stream訊息驅動

什麼是spring cloud stream?官方定義 spring cloud stream 是乙個構建 訊息驅動 微服務的框架。應用程式通過inputs或者outputs來與 spring cloud stream 中binder互動,通過我們配置來 binding 而 spring cloud...

SpringCloud Stream 訊息驅動

spring cloud stream 是乙個構建訊息微服務驅動的框架。可以遮蔽底層訊息中介軟體的差異,降低版本切換成本,統一訊息的程式設計模型,目前僅支援 rabbitmq 和 kafka。生產者 消費者之間靠訊息媒介傳遞資訊內容,message 訊息必須走特定的通道,messagechannel...