大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 多租戶電子商城系統SpringCloud原理總結

多租戶電子商城系統SpringCloud原理總結

更新時間:2021-09-29 08:31:33 來源:動力節點 瀏覽1566次

多租戶電子商城系統Springcloud Bus原理總結

1.spring cloud bus

Sprcloud是根據spring的配置集成了一系列微服務框架。Sprcloud總線是微服務框架之一,用于實現微服務之間的通信。

JAVA分布式微服務云構建B2B2C電子商務平臺源碼 Spring Cloud大型企業

Sprcloud總線集成了java的事件處理機制和消息中間件消息收發,主要由sender、receiver和event組成。針對不同的業務需求,可以設置不同的事件,發送方發送事件,接收方接收相應的事件并進行相應的處理。

2.spring cloud bus實戰

網上有很多關于spring cloud bus的demo,這里就不贅述了。

3.原理

Spring cloud bus 集成了java事件處理機制和消息中間件,所以下面兩個方面來說明spring cloud bus的原理。

如圖,給出如下解釋:

(1)完整的過程:發送者(端點)構建體事件,發布ES它上下文的上下文(彈簧云總線具有父上下文,自舉),則將該事件發送至信道(JSON串消息),則接收機獲取消息從信道,轉換的消息到事件(轉換過程沒有深入研究),然后公布事件事件事件。ish到context context,最后Listener接收到事件并調用service進行處理。在整個過程中,只有發送/接收端從上下文上下文上下文中獲取事件和發送事件,需要在代碼中寫清楚. 其他部分由框架封裝。

(2) 首先,我們概括地描述該過程。關于封裝的一些過程,我們基本可以在BusAutoConfiguration.class中找到。下面的代碼在這個類中。

  @EventListener(classes = RemoteApplicationEvent.class)
    public void acceptLocal(RemoteApplicationEvent event) {
        if (this.serviceMatcher.isFromSelf(event)
                && !(event instanceof AckRemoteApplicationEvent)) {
            this.cloudBusOutboundChannel.send(MessageBuilder.withPayload(event).build());
        }
    }

這封裝了java事件處理機制。當接收到 RemoteApplication Event 時,如果該事件是從服務發送的,并且不是 ack 事件,則將該事件發送到通道。

  @StreamListener(SpringCloudBusClient.INPUT)
    public void acceptRemote(RemoteApplicationEvent event) {
        if (event instanceof AckRemoteApplicationEvent) {
            if (this.bus.getTrace().isEnabled() && !this.serviceMatcher.isFromSelf(event)
                    && this.applicationEventPublisher != null) {
                this.applicationEventPublisher.publishEvent(event);
            }
            // If it's an ACK we are finished processing at this point
            return;
        }
        if (this.serviceMatcher.isForSelf(event)
                && this.applicationEventPublisher != null) {
            if (!this.serviceMatcher.isFromSelf(event)) {
                this.applicationEventPublisher.publishEvent(event);
            }
            if (this.bus.getAck().isEnabled()) {
                AckRemoteApplicationEvent ack = new AckRemoteApplicationEvent(this,
                        this.serviceMatcher.getServiceId(),
                        this.bus.getAck().getDestinationService(),
                        event.getDestinationService(), event.getId(), event.getClass());
                this.cloudBusOutboundChannel
                        .send(MessageBuilder.withPayload(ack).build());
                this.applicationEventPublisher.publishEvent(ack);
            }
        }
        if (this.bus.getTrace().isEnabled() && this.applicationEventPublisher != null) {
            // We are set to register sent events so publish it for local consumption,
            // irrespective of the origin
            this.applicationEventPublisher.publishEvent(new SentApplicationEvent(this,
                    event.getOriginService(), event.getDestinationService(),
                    event.getId(), event.getClass()));
        }
    }

StreamListener 是一個有趣的標簽,您可以查看。這個方法是從channel中提取事件處理的過程(message to event部分需要自己理解,我沒有深入研究過),根據事件的類型,發送方和接收方來處理這個事件:如果是一個ack 事件,將其發送到上下文上下文;如果它是接收者而不是發送者,它會將事件發送到上下文上下文。

(3)消息中間件可以采用rabbitmq、kafka等。

以上就是關于“多租戶電子商城系統SpringCloud原理總結”的介紹,如果大家對此感興趣,不妨來關注一下動力節點的SpringCloud教程,相信對大家的學習會有一定的幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 色吧在线视频 | 香蕉成人国产精品免费看网站 | 狠狠久久久久久亚洲综合网 | 久久手机在线视频 | 国产精品久久久亚洲第一牛牛 | www.一区二区三区 | 天天综合干 | 亚洲综合网在线观看首页 | 思99热精品久久只有精品 | 成人在线不卡 | 国产精品久久自在自线观看 | 欧美福利视频在线 | 久久久99精品久久久久久 | 成人精品久久 | 在线欧美视频 | 欧美成人精品高清在线观看 | 久久综合给合久久97色美利坚 | 奇米网色 | 久久免费看视频 | jizz中国jizz女人 | 欧美高清免费精品国产自 | 深夜在线免费观看 | 日韩短视频 | 成年人视频在线免费 | 免费一级特黄 | 91热成人精品国产免费 | 五月色婷婷琪琪综合伊人 | 国产视频综合 | 99久久免费看精品国产一区 | 亚洲欧美一区二区久久 | 欧美另类成人 | 96精品国产高清在线看入口 | 欧美日韩一二三 | 伊人99| 精品一级毛片 | 日本不卡不码高清免费观看 | 免费观看美女光子让男人玩 | 国产午夜偷精品偷伦 | 国产成人一区二区视频在线观看 | 国产成人看片免费视频观看 | 国产欧美日韩精品a在线观看 |