廣告投放微服務設計與實現

2021-09-24 13:45:33 字數 1174 閱讀 1582

1、pdm設計資料庫

設計思路:

1、廣告投放表 ad_lanuch

2、廣告投放規則表(廢棄不用)ad_lanuch_rule

3、廣告投放使用者表 ad_lanuch_user

4、廣告位配置表 ad_location

5、廣告產品表 ad_product

7、廣告產品的跳轉規則表 ad_product_jump_rule

解釋:廣告投放規則表廢棄不用,把規則以json串的形式存入廣告投放表。原因:1、考慮到可擴充套件性2、前期以交付為主,積累產品經驗做相應的改進

2、**實現

投放需求場景:需要根據不同的渠道和程式位置根據投放規則去投放不同的廣告。

思路:要先生成廣告產品然後對廣告配置各種規則(裝飾),當使用者訪問到有廣告投放的位置時,根據投放規則確定此位置要投放的廣告。

實現:取出所有有效的廣告產品->經過各種規則的過濾後展示篩選之後的廣告

運用裝飾著模式,動態的將責任附加在物件上

這樣一層套一層的去篩選(裝飾)和裝飾者模式的使用場景完全吻合(類似給咖啡加各種佐料)。每次結尾呼叫上級的過濾條件,實現過濾條件的有序性。進而按照過濾範圍大小去逆向排序篩選規則。

一、裝飾者模式

裝飾者模式的結構

通常給物件新增功能,要麼直接修改物件新增相應的功能,要麼派生子類來擴充套件,抑或是使用物件組合的方式。顯然,直接修改對應的類的方式並不可取,在物件導向的設計中,我們應該盡量使用組合物件而不是繼承物件來擴充套件和復用功能,裝飾器模式就是基於物件組合的方式的。

二、裝飾器模式中的角色有:

1、抽象構件角色

給出乙個抽象介面,以規範準備接受附加責任的物件

2、具體構件角色

定義乙個將要接受附加責任的類

3、裝飾角色

持有乙個構建物件的例項,並定義乙個與抽象構件介面一致的介面(呼叫上級的過濾條件)

4、具體裝飾角色

負責給構建物件貼上附加的責任

開放-關閉原則:類應該對擴充套件開放,對修改關閉。

你需要把注意力集中在設計中最有可能改變的地方,然後應用開放-關閉。

裝飾著模式--動態地將責任附加到物件上。想要擴充套件功能,裝飾者提供有別於繼承的另一種選擇。

啟發:雖然實現結果會相同,但是對它的叫法會影響設計思路。

正確的定義問題比解決問題更重要

微服務與微服務架構

微服務 微服務強調的是服務的大小,它關注的是某乙個點,是具體解決某乙個問題 提供落地對應服務的乙個服務應用,狹意的看,可以看作eclipse裡面的乙個個微服務工程 或者module。例如 訂單服務 支付服務 微服務架構 馬丁.福勒 martin fowler 微服務架構介紹 微服務架構是 種架構模式...

微服務1之微服務設計要點

在開始轉為微服務之前,需要注意如下要點,考慮清楚再決定要不要做微服務。1 服務粒度 如何劃分各個服務之間的職責邊界。劃分過粗,則服務中包含的業務過多,時間長了之後,又會變為乙個複雜的單體應用。劃分過細,則服務增多,又會增加整體複雜性。2 通訊協議 各服務之間的通訊模式。是採用json,還是xml,還...

SpringCloud 微服務與微服務對接心德

對方已經提供好乙個api文件,然後傳一堆傳輸,返回給我一些資訊。如下 我這邊建立實體類,返回值這些東西,如下 介面如下 feignclient還有以下標籤 name 指定feignclient的名稱,如果專案使用了ribbon,name屬性會作為微服務的名稱,用於服務發現 url url一般用於除錯...