<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          微服務(wù)架構(gòu)中10個(gè)常用的設(shè)計(jì)模式

          共 21255字,需瀏覽 43分鐘

           ·

          2021-06-03 11:23

          相關(guān)閱讀:一個(gè)90后員工猝死的全過程
          來源:網(wǎng)絡(luò)

          從軟件開發(fā)早期(1960 年代)開始,應(yīng)對大型軟件系統(tǒng)中的復(fù)雜性一直是一項(xiàng)令人生畏的任務(wù)。多年來為了應(yīng)對軟件系統(tǒng)的復(fù)雜性,軟件工程師和架構(gòu)師們做了許多嘗試:David Parnas 的模塊化和封裝 (1972), Edsger W. Dijkstra (1974)的關(guān)注點(diǎn)分離以及 SOA(1988)。

          他們都是使用分而治之這項(xiàng)成熟的傳統(tǒng)技術(shù)來應(yīng)對大型系統(tǒng)的復(fù)雜性。自 2010 年開始,這些技術(shù)被證實(shí)無法繼續(xù)應(yīng)對 Web 級應(yīng)用或者現(xiàn)代大型企業(yè)級應(yīng)用的復(fù)雜性。因此架構(gòu)師和工程師們發(fā)展出了一種全新的現(xiàn)代方式來解決這個(gè)問題,就是微服務(wù)架構(gòu)。它雖然延續(xù)了分而治之的思想,但卻是以全新的方式來實(shí)現(xiàn)的。

          軟件設(shè)計(jì)模式是解決軟件設(shè)計(jì)中常見問題的通用、可復(fù)用的解決方案。設(shè)計(jì)模式讓我們可以分享通用詞匯并使用經(jīng)實(shí)戰(zhàn)檢驗(yàn)的方案,以免重復(fù)造輪子。我先簡單介紹下微服務(wù)架構(gòu)。

          通過閱讀這篇文章,你會學(xué)到:

          • 微服務(wù)架構(gòu)

          • 微服務(wù)架構(gòu)的優(yōu)勢

          • 微服務(wù)架構(gòu)的劣勢

          • 何時(shí)使用微服務(wù)架構(gòu)

          最重要的微服務(wù)架構(gòu)設(shè)計(jì)模式,包括其優(yōu)缺點(diǎn)、用例、上下文、技術(shù)棧示例及可用資源。

          請注意,本清單中的大部分設(shè)計(jì)模式常出現(xiàn)在多種語境中,并且可以在非微服務(wù)架構(gòu)中使用。而我將在微服務(wù)這個(gè)特定語境中介紹它們。

          1微服務(wù)架構(gòu)

          我在之前的博客《微服務(wù)架構(gòu)概述及為什么要應(yīng)用在下個(gè)項(xiàng)目》和《單體軟件架構(gòu)真的終結(jié)了嗎?》中對微服務(wù)架構(gòu)有非常詳盡的介紹。如果你感興趣,可以閱讀這兩篇博客來深入了解。

          https://towardsdatascience.com/microservice-architecture-a-brief-overview-and-why-you-should-use-it-in-your-next-project-a17b6e19adfd

          https://towardsdatascience.com/looking-beyond-the-hype-is-modular-monolithic-software-architecture-really-dead-e386191610f8

          那到底什么是微服務(wù)架構(gòu)?有很多種定義方法。我的定義是這這樣的:

          微服務(wù)架構(gòu)指的是將大型復(fù)雜系統(tǒng)按功能或者業(yè)務(wù)需求垂直切分成更小的子系統(tǒng),這些子系統(tǒng)以獨(dú)立部署的子進(jìn)程存在,它們之間通過輕量級的、跨語言的同步(比如 REST,gRPC)或者異步(消息)網(wǎng)絡(luò)調(diào)用進(jìn)行通信。

          下面是基于微服務(wù)架構(gòu)的商業(yè) Web 應(yīng)用的組件視圖:

          來自 Md Kamaruzzaman 的微服務(wù)架構(gòu)

           微服務(wù)架構(gòu)的重要特征
          • 整個(gè)應(yīng)用程序被拆分成相互獨(dú)立但包含多個(gè)內(nèi)部模塊的子進(jìn)程

          • 與模塊化的單體應(yīng)用(Modular Monoliths)或 SOA 相反,微服務(wù)應(yīng)用程序根據(jù)業(yè)務(wù)范圍或領(lǐng)域垂直拆分。

          • 微服務(wù)邊界是外部的,微服務(wù)之間通過網(wǎng)絡(luò)調(diào)用(RPC 或消息)相互通信。

          • 微服務(wù)是獨(dú)立的進(jìn)程,它們可以獨(dú)立部署。

          • 它們以輕量級的方式進(jìn)行通信,不需要任何智能通信通道。

           微服務(wù)架構(gòu)的優(yōu)點(diǎn)
          • 更好的開發(fā)規(guī)模

          • 更快的開發(fā)速度

          • 支持迭代開發(fā)或現(xiàn)代化增量開發(fā)

          • 充分利用現(xiàn)代軟件開發(fā)生態(tài)系統(tǒng)的優(yōu)勢(云、容器、 DevOps、Serverless)

          • 支持水平縮放和細(xì)粒度縮放

          • 小體量,較低了開發(fā)人員的認(rèn)知復(fù)雜性

           微服務(wù)架構(gòu)的缺點(diǎn)
          • 更高數(shù)量級的活動組件(服務(wù)、數(shù)據(jù)庫、進(jìn)程、容器、框架)

          • 復(fù)雜性從代碼轉(zhuǎn)移到基礎(chǔ)設(shè)施

          • RPC 調(diào)用和網(wǎng)絡(luò)通信的大量增加

          • 整個(gè)系統(tǒng)的安全性管理更具有挑戰(zhàn)性

          • 整個(gè)系統(tǒng)的設(shè)計(jì)變得更加困難

          • 引入了分布式系統(tǒng)的復(fù)雜性

           何時(shí)使用微服務(wù)架構(gòu)
          • 大規(guī)模 Web 應(yīng)用開發(fā)

          • 跨團(tuán)隊(duì)企業(yè)級應(yīng)用協(xié)作開發(fā)

          • 長期收益優(yōu)先于短期收益

          • 團(tuán)隊(duì)擁有能夠設(shè)計(jì)微服務(wù)架構(gòu)的軟件架構(gòu)師或高級工程師

          2微服務(wù)架構(gòu)的設(shè)計(jì)模式
           獨(dú)享數(shù)據(jù)庫(Database per Microservice)

          當(dāng)一家公司將大型單體系統(tǒng)替換成一組微服務(wù),首先要面臨的最重要決策是關(guān)于數(shù)據(jù)庫。單體架構(gòu)會使用大型中央數(shù)據(jù)庫。即使轉(zhuǎn)移到微服務(wù)架構(gòu)許多架構(gòu)師仍傾向于保持?jǐn)?shù)據(jù)庫不變。雖然有一些短期收益,但它卻是反模式的,特別是在大規(guī)模系統(tǒng)中,微服務(wù)將在數(shù)據(jù)庫層嚴(yán)重耦合,整個(gè)遷移到微服務(wù)的目標(biāo)都將面臨失敗(例如,團(tuán)隊(duì)授權(quán)、獨(dú)立開發(fā)等問題)。

          更好的方法是為每個(gè)微服務(wù)提供自己的數(shù)據(jù)存儲,這樣服務(wù)之間在數(shù)據(jù)庫層就不存在強(qiáng)耦合。這里我使用數(shù)據(jù)庫這一術(shù)語來表示邏輯上的數(shù)據(jù)隔離,也就是說微服務(wù)可以共享物理數(shù)據(jù)庫,但應(yīng)該使用分開的數(shù)據(jù)結(jié)構(gòu)、集合或者表,這還將有助于確保微服務(wù)是按照領(lǐng)域驅(qū)動設(shè)計(jì)的方法正確拆分的。

          Md Kamaruzzaman 的微服務(wù)獨(dú)享數(shù)據(jù)庫

          優(yōu)點(diǎn)

          • 數(shù)據(jù)由服務(wù)完全所有

          • 服務(wù)的開發(fā)團(tuán)隊(duì)之間耦合度降低

          缺點(diǎn)

          • 服務(wù)間的數(shù)據(jù)共享變得更有挑戰(zhàn)性

          • 在應(yīng)用范圍的保證 ACID 事務(wù)變得困難許多

          • 細(xì)心設(shè)計(jì)如何拆分單體數(shù)據(jù)庫是一項(xiàng)極具挑戰(zhàn)的任務(wù)

          何時(shí)使用獨(dú)享數(shù)據(jù)庫

          • 在大型企業(yè)應(yīng)用程序中

          • 當(dāng)團(tuán)隊(duì)需要完全把控微服務(wù)以實(shí)現(xiàn)開發(fā)規(guī)模擴(kuò)展和速度提升

          何時(shí)不宜使用獨(dú)享數(shù)據(jù)庫

          • 在小規(guī)模應(yīng)用中

          • 如果是單個(gè)團(tuán)隊(duì)開發(fā)所有微服務(wù)

          可用技術(shù)示例

          所有 SQL、 NoSQL 數(shù)據(jù)庫都提供數(shù)據(jù)的邏輯分離(例如,單獨(dú)的表、集合、結(jié)構(gòu)、數(shù)據(jù)庫)。

           事件源(Event Sourcing)

          在微服務(wù)架構(gòu)中,特別使用獨(dú)享數(shù)據(jù)庫時(shí),微服務(wù)之間需要進(jìn)行數(shù)據(jù)交換。對于彈性高可伸縮的和可容錯(cuò)的系統(tǒng),它們應(yīng)該通過交換事件進(jìn)行異步通信。在這種情況,您可能希望進(jìn)行類似更新數(shù)據(jù)庫并發(fā)送消息這樣的原子操作,如果在大數(shù)據(jù)量的分布式場景使用關(guān)系數(shù)據(jù)庫,您將無法使用兩階段鎖協(xié)議(2PL),因?yàn)樗鼰o法伸縮。而 NoSQL 數(shù)據(jù)庫因?yàn)榇蠖嗖恢С謨呻A段鎖協(xié)議甚至無法實(shí)現(xiàn)分布式事務(wù)。

          在這些場景,可以基于事件的架構(gòu)使用事件源模式。在傳統(tǒng)數(shù)據(jù)庫中,直接存儲的是業(yè)務(wù)實(shí)體的當(dāng)前“狀態(tài)”,而在事件源中任何“狀態(tài)”更新事件或其他重要事件都會被存儲起來,而不是直接存儲實(shí)體本身。這意味著業(yè)務(wù)實(shí)體的所有更改將被保存為一系列不可變的事件。因?yàn)閿?shù)據(jù)是作為一系列事件存儲的,而非直接更新存儲,所以各項(xiàng)服務(wù)可以通過重放事件存儲中的事件來計(jì)算出所需的數(shù)據(jù)狀態(tài)。

          Md Kamaruzzaman 的事件源

          優(yōu)點(diǎn)

          • 為高可伸縮系統(tǒng)提供原子性操作

          • 自動記錄實(shí)體變更歷史,包括時(shí)序回溯功能

          • 松耦合和事件驅(qū)動的微服務(wù)

          缺點(diǎn)

          • 從事件存儲中讀取實(shí)體成為新的挑戰(zhàn),通常需要額外的數(shù)據(jù)存儲(CQRS 模式)。

          • 系統(tǒng)整體復(fù)雜性增加了,通常需要領(lǐng)域驅(qū)動設(shè)計(jì)。

          • 系統(tǒng)需要處理事件重復(fù)(冪等)或丟失

          • 變更事件結(jié)構(gòu)成為新的挑戰(zhàn)。

          何時(shí)使用事件源

          • 使用關(guān)系數(shù)據(jù)庫的、高可伸縮的事務(wù)型系統(tǒng)

          • 使用 NoSQL 數(shù)據(jù)庫的事務(wù)型系統(tǒng)

          • 彈性高可伸縮微服務(wù)架構(gòu)

          • 典型的消息驅(qū)動或事件驅(qū)動系統(tǒng)(電子商務(wù)、預(yù)訂和預(yù)約系統(tǒng))

          何時(shí)不宜使用事件源

          • 使用 SQL 數(shù)據(jù)庫的低可伸縮性事務(wù)型系統(tǒng)

          • 在服務(wù)可以同步交換數(shù)據(jù)(例如,通過 API)的簡單微服務(wù)架構(gòu)中。

          可用技術(shù)示例

          事件存儲:EventStoreDB、Apache Kafka、Confluent Cloud、AWS Kinesis、Azure Event Hub、GCP Pub/Sub、Azure Cosmos DB、MongoDB、Cassandra、Amazon DynamoDB

          框架:Lagom、Akka、Spring、akkatecture、Axon、Eventuate

           命令和查詢職責(zé)分離(CQRS)

          如果我們使用事件源,那么從事件存儲中讀取數(shù)據(jù)就變得困難了。要從數(shù)據(jù)存儲中獲取實(shí)體,我們需要處理所有的實(shí)體事件。有時(shí)我們對讀寫操作還會有不同的一致性和吞吐量要求。

          這種情況,我們可以使用 CQRS 模式。在該模式中,系統(tǒng)的數(shù)據(jù)修改部分(命令)與數(shù)據(jù)讀取部分(查詢)是分離的。而 CQRS 模式有兩種容易令人混淆的模式,分別是簡單的和高級的。

          在其簡單形式中,不同實(shí)體或 ORM 模型被用于讀寫操作,如下所示:


          Md Kamaruzzaman 的 CQRS (簡單)

          它有助于強(qiáng)化單一職責(zé)原則和分離關(guān)注點(diǎn),從而實(shí)現(xiàn)更簡潔的設(shè)計(jì)。

          搜索公眾號互聯(lián)網(wǎng)架構(gòu)師后臺回復(fù)“2T”,獲取一份驚喜禮包。

          在其高級形式中,會有不同的數(shù)據(jù)存儲用于讀寫操作。高級的 CQRS 通常結(jié)合事件源模式。根據(jù)不同情況,會使用不同類型的寫數(shù)據(jù)存儲和讀數(shù)據(jù)存儲。寫數(shù)據(jù)存儲是“記錄的系統(tǒng)”,也就是整個(gè)系統(tǒng)的核心源頭。

          Md Kamaruzzaman 的 CQRS(高級)

          對于讀頻繁的應(yīng)用程序或微服務(wù)架構(gòu),OLTP 數(shù)據(jù)庫(任何提供 ACID 事務(wù)保證的關(guān)系或非關(guān)系數(shù)據(jù)庫)或分布式消息系統(tǒng)都可以被用作寫存儲。對于寫頻繁的應(yīng)用程序(寫操作高可伸縮性和大吞吐量),需要使用寫可水平伸縮的數(shù)據(jù)庫(如全球托管的公共云數(shù)據(jù)庫)。標(biāo)準(zhǔn)化的數(shù)據(jù)則保存在寫數(shù)據(jù)存儲中。

          對搜索(例如 Apache Solr、Elasticsearch)或讀操作(KV 數(shù)據(jù)庫、文檔數(shù)據(jù)庫)進(jìn)行優(yōu)化的非關(guān)系數(shù)據(jù)庫常被用作讀存儲。許多情況會在需要 SQL 查詢的地方使用讀可伸縮的關(guān)系數(shù)據(jù)庫。非標(biāo)準(zhǔn)化和特殊優(yōu)化過的數(shù)據(jù)則保存在讀存儲中。

          數(shù)據(jù)是從寫存儲異步復(fù)制到讀存儲中的,所以讀存儲和寫存儲之間會有延遲,但最終是一致的。

          優(yōu)點(diǎn)

          • 在事件驅(qū)動的微服務(wù)中數(shù)據(jù)讀取速度更快

          • 數(shù)據(jù)的高可用性

          • 讀寫系統(tǒng)可獨(dú)立擴(kuò)展

          缺點(diǎn)

          • 讀數(shù)據(jù)存儲是弱一致性的(最終一致性)

          • 整個(gè)系統(tǒng)的復(fù)雜性增加了,混亂的 CQRS 會顯著危害整個(gè)項(xiàng)目。

          何時(shí)使用 CQRS

          • 在高可擴(kuò)展的微服務(wù)架構(gòu)中使用事件源

          • 在復(fù)雜領(lǐng)域模型中,讀操作需要同時(shí)查詢多個(gè)數(shù)據(jù)存儲。

          • 在讀寫操作負(fù)載差異明顯的系統(tǒng)中

          何時(shí)不宜使用 CQRS

          • 在沒有必要存儲大量事件的微服務(wù)架構(gòu)中,用事件存儲快照來計(jì)算實(shí)體狀態(tài)是一個(gè)更好的選擇。

          • 在讀寫操作負(fù)載相近的系統(tǒng)中。

          可用技術(shù)示例

          寫存儲:EventStoreDB, Apache Kafka, Confluent Cloud, AWS Kinesis, Azure Event Hub, GCP Pub/Sub, Azure Cosmos DB, MongoDB, Cassandra. Amazon DynamoDB

          讀存儲:Elastic Search, Solr, Cloud Spanner, Amazon Aurora, Azure Cosmos DB, Neo4j

          框架:Lagom, Akka, Spring, akkatecture, Axon, Eventuate

           Saga

          如果微服務(wù)使用獨(dú)享數(shù)據(jù)庫,那么通過分布式事務(wù)管理一致性是一個(gè)巨大的挑戰(zhàn)。你無法使用傳統(tǒng)的兩階段提交協(xié)議,因?yàn)樗床豢缮炜s(關(guān)系數(shù)據(jù)庫),要么不被支持(多數(shù)非關(guān)系數(shù)據(jù)庫)。

          但您還是可以在微服務(wù)架構(gòu)中使用 Saga 模式實(shí)現(xiàn)分布式事務(wù)。Saga 是 1987 年開發(fā)的一種古老模式,是關(guān)系數(shù)據(jù)庫中關(guān)于大事務(wù)的一個(gè)替代概念。但這種模式的一種現(xiàn)代變種對分布式事務(wù)也非常有效。Saga 模式是一個(gè)本地事務(wù)序列,其每個(gè)事務(wù)在一個(gè)單獨(dú)的微服務(wù)內(nèi)更新數(shù)據(jù)存儲并發(fā)布一個(gè)事件或消息。Saga 中的首個(gè)事務(wù)是由外部請求(事件或動作)初始化的,一旦本地事務(wù)完成(數(shù)據(jù)已保存在數(shù)據(jù)存儲且消息或事件已發(fā)布),那么發(fā)布的消息或事件則會觸發(fā) Saga 中的下一個(gè)本地事務(wù)。

          Md Kamaruzzaman 的 Saga

          如果本地事務(wù)失敗,Saga 將執(zhí)行一系列補(bǔ)償事務(wù)來回滾前面本地事務(wù)的更改。

          Saga 事務(wù)協(xié)調(diào)管理主要有兩種形式:

          1. 事件編排 Choreography:分散協(xié)調(diào),每個(gè)微服務(wù)生產(chǎn)并監(jiān)聽其他微服務(wù)的事件或消息然后決定是否執(zhí)行某個(gè)動作。

          2. 命令編排 Orchestration:集中協(xié)調(diào),由一個(gè)協(xié)調(diào)器告訴參與的微服務(wù)哪個(gè)本地事務(wù)需要執(zhí)行。

          優(yōu)點(diǎn)

          • 為高可伸縮或松耦合的、事件驅(qū)動的微服務(wù)架構(gòu)提供一致性事務(wù)。

          • 為使用了不支持 2PC 的非關(guān)系數(shù)據(jù)庫的微服務(wù)架構(gòu)提供一致性事務(wù)。

          缺點(diǎn)

          • 需要處理瞬時(shí)故障,并且提供等冪性。

          • 難以調(diào)試,而且復(fù)雜性隨著微服務(wù)數(shù)量增加而增加。

          何時(shí)使用 Saga

          • 在使用了事件源的高可伸縮、松耦合的微服務(wù)中。

          • 在使用了分布式非關(guān)系數(shù)據(jù)庫的系統(tǒng)中。

          何時(shí)不宜使用 Saga

          • 使用關(guān)系數(shù)據(jù)庫的低可伸縮性事務(wù)型系統(tǒng)。

          • 在服務(wù)間存在循環(huán)依賴的系統(tǒng)中。

          可用技術(shù)示例

          Axon, Eventuate, Narayana

           面向前端的后端 (BFF)

          在現(xiàn)代商業(yè)應(yīng)用開發(fā),特別是微服務(wù)架構(gòu)中,前后端應(yīng)用是分離和獨(dú)立的服務(wù),它們通過 API 或 GraphQL 連接。如果應(yīng)用程序還有移動 App 客戶端,那么 Web 端和移動客戶端使用相同的后端微服務(wù)就會出現(xiàn)問題。因?yàn)橐苿涌蛻舳撕?Web 客戶端有不同的屏幕尺寸、顯示屏、性能、能耗和網(wǎng)絡(luò)帶寬,它們的 API 需求不同。

          面向前端的后端模式適用于需要為特殊 UI 定制單獨(dú)后端的場景。它還提供了其他優(yōu)勢,比如作為下游微服務(wù)的封裝,從而減少 UI 和下游微服務(wù)之間的頻繁通信。此外,在高安全要求的場景中,BFF 為部署在 DMZ 網(wǎng)絡(luò)中的下游微服務(wù)提供了更高的安全性。

          Md Kamaruzzaman 的面向前端的后端

          優(yōu)點(diǎn)

          • 分離 BFF 之間的關(guān)注點(diǎn),使得我們可以為具體的 UI 優(yōu)化他們。

          • 提供更高的安全性

          • 減少 UI 和下游微服務(wù)之間頻繁的通信

          缺點(diǎn)

          • BFF 之間代碼重復(fù)

          • 大量的 BFF 用于其他用戶界面(例如,智能電視,Web,移動端,PC 桌面版)

          • 需要仔細(xì)的設(shè)計(jì)和實(shí)現(xiàn),BFF 不應(yīng)該包含任何業(yè)務(wù)邏輯,而應(yīng)只包含特定客戶端邏輯和行為。

          何時(shí)使用 BFF

          • 如果應(yīng)用程序有多個(gè)含不同 API 需求的 UI

          • 出于安全需要,UI 和下游微服務(wù)之間需要額外的層。

          • 如果在 UI 開發(fā)中使用微前端。

          何時(shí)不宜使用 BFF

          • 如果應(yīng)用程序雖有多個(gè) UI,但使用的 API 相同。

          • 如果核心微服務(wù)不是部署在 DMZ 網(wǎng)絡(luò)中。

          可用技術(shù)示例

          任何后端框架(Node.js,Spring,Django,Laravel,F(xiàn)lask,Play,…)都能支持。

           API 網(wǎng)關(guān)

          在微服務(wù)架構(gòu)中,UI 通常連接多個(gè)微服務(wù)。如果微服務(wù)是細(xì)粒度的(FaaS) ,那么客戶端可能需要連接非常多的微服務(wù),這將變得繁雜和具有挑戰(zhàn)性。此外,這些服務(wù)包括它們的 API 還將不斷進(jìn)化。大型企業(yè)還希望能有其他橫切關(guān)注點(diǎn)(SSL 終止、身份驗(yàn)證、授權(quán)、節(jié)流、日志記錄等)。

          一個(gè)解決這些問題的可行方法是使用 API 網(wǎng)關(guān)。API 網(wǎng)關(guān)位于客戶端 APP 和后端微服務(wù)之間充當(dāng) facade,它可以是反向代理,將客戶端請求路由到適當(dāng)?shù)暮蠖宋⒎?wù)。它還支持將客戶端請求扇出到多個(gè)微服務(wù),然后將響應(yīng)聚合后返回給客戶端。它還支持必要的橫切關(guān)注點(diǎn)。

          Md Kamaruzzaman 的 API 網(wǎng)關(guān)

          優(yōu)點(diǎn)

          • 在前端和后端服務(wù)之間提供松耦合

          • 減少客戶端和微服務(wù)之間的調(diào)用次數(shù)

          • 通過 SSL 終端、身份驗(yàn)證和授權(quán)實(shí)現(xiàn)高安全性

          • 集中管理的橫切關(guān)注點(diǎn),例如,日志記錄和監(jiān)視、節(jié)流、負(fù)載平衡。

          缺點(diǎn)

          • 可能導(dǎo)致微服務(wù)架構(gòu)中的單點(diǎn)故障

          • 額外的網(wǎng)絡(luò)調(diào)用帶來的延遲增加

          • 如果不進(jìn)行擴(kuò)展,它們很容易成為整個(gè)企業(yè)應(yīng)用的瓶頸。

          • 額外的維護(hù)和開發(fā)費(fèi)用

          何時(shí)使用 API 網(wǎng)關(guān)

          • 在復(fù)雜的微服務(wù)架構(gòu)中,它幾乎是必須的。

          • 在大型企業(yè)中,API 網(wǎng)關(guān)是中心化安全性和橫切關(guān)注點(diǎn)的必要工具。

          何時(shí)不宜使用 API 網(wǎng)關(guān)

          • 在安全和集中管理不是最優(yōu)先要素的私人項(xiàng)目或小公司中。

          • 如果微服務(wù)的數(shù)量相當(dāng)少。

          可用技術(shù)示例

          Amazon API 網(wǎng)關(guān), Azure API 管理, Apigee, Kong, WSO2 API 管理器

           Strangler

          如果想在運(yùn)行中的項(xiàng)目中使用微服務(wù)架構(gòu),我們需要將遺留的或現(xiàn)有的單體應(yīng)用遷移到微服務(wù)。將現(xiàn)有的大型在線單體應(yīng)用程序遷移到微服務(wù)是相當(dāng)有挑戰(zhàn)性的,因?yàn)檫@可能破壞應(yīng)用程序的可用性。

          一個(gè)解決方案是使用 Strangler 模式。Strangler 模式意味著通過使用新的微服務(wù)逐步替換特定功能,將單體應(yīng)用程序增量地遷移到微服務(wù)架構(gòu)。此外,新功能只在微服務(wù)中添加,而不再添加到遺留的單體應(yīng)用中。然后配置一個(gè) Facade (API 網(wǎng)關(guān))來路由遺留單體應(yīng)用和微服務(wù)間的請求。當(dāng)某個(gè)功能從單體應(yīng)用遷移到微服務(wù),F(xiàn)acade 就會攔截客戶端請求并路由到新的微服務(wù)。一旦遷移了所有的功能,遺留單體應(yīng)用程序就會被“扼殺(Strangler)”,即退役。

          搜索公眾號互聯(lián)網(wǎng)架構(gòu)師后臺回復(fù)“2T”,獲取一份驚喜禮包。

          Md Kamaruzzaman 的 Strangler

          優(yōu)點(diǎn)

          • 安全的遷移單體應(yīng)用程序到微服務(wù)

          • 可以并行地遷移已有功能和開發(fā)新功能

          • 遷移過程可以更好把控節(jié)奏

          缺點(diǎn)

          • 在現(xiàn)有的單體應(yīng)用服務(wù)和新的微服務(wù)之間共享數(shù)據(jù)存儲變得具有挑戰(zhàn)性

          • 添加 Facade (API 網(wǎng)關(guān))將增加系統(tǒng)延遲

          • 端到端測試變得困難

          何時(shí)使用 Strangler

          • 將大型后端單體應(yīng)用程序的增量遷移到微服務(wù)

          何時(shí)不宜使用 Strangler

          • 如果后端單體應(yīng)用很小,那么全量替換會更好。

          • 如果無法攔截客戶端對遺留的單體應(yīng)用程序的請求。

          可用技術(shù)示例

          API 網(wǎng)關(guān)后端應(yīng)用框架。

           斷路器

          在微服務(wù)架構(gòu)中,微服務(wù)通過同步調(diào)用其他服務(wù)來滿足業(yè)務(wù)需求。服務(wù)調(diào)用會由于瞬時(shí)故障(網(wǎng)絡(luò)連接緩慢、超時(shí)或暫時(shí)不可用) 導(dǎo)致失敗,這種情況重試可以解決問題。然而,如果出現(xiàn)了嚴(yán)重問題(微服務(wù)完全失敗),那么微服務(wù)將長時(shí)間不可用,這時(shí)重試沒有意義且浪費(fèi)寶貴的資源(線程被阻塞,CPU 周期被浪費(fèi))。此外,一個(gè)服務(wù)的故障還會引發(fā)整個(gè)應(yīng)用系統(tǒng)的級聯(lián)故障。這時(shí)快速失敗是一種更好的方法。

          在這種情況,可以使用斷路器模式挽救。一個(gè)微服務(wù)通過代理請求另一個(gè)微服務(wù),其工作原理類似于電氣斷路器,代理通過統(tǒng)計(jì)最近發(fā)生的故障數(shù)量,并使用它來決定是繼續(xù)請求還是簡單的直接返回異常。

          Md Kamaruzzaman 的斷路器

          斷路器可以有以下三種狀態(tài):

          1. 關(guān)閉:斷路器將請求路由到微服務(wù),并統(tǒng)計(jì)給定時(shí)段內(nèi)的故障數(shù)量,如果超過閾值,它就會觸發(fā)并進(jìn)入打開狀態(tài)。

          2. 打開:來自微服務(wù)的請求會快速失敗并返回異常。在超時(shí)后,斷路器進(jìn)入半開啟狀態(tài)。

          3. 半開:只有有限數(shù)量的微服務(wù)請求被允許通過并進(jìn)行調(diào)用。如果這些請求成功,斷路器將進(jìn)入閉合狀態(tài)。如果任何請求失敗,斷路器則會進(jìn)入開啟狀態(tài)。

          優(yōu)點(diǎn)

          • 提高微服務(wù)架構(gòu)的容錯(cuò)性和彈性

          • 阻止引發(fā)其他微服務(wù)的級聯(lián)故障

          缺點(diǎn)

          • 需要復(fù)雜的異常處理

          • 日志和監(jiān)控

          • 應(yīng)該支持人工復(fù)位

          何時(shí)使用斷路器

          • 在微服務(wù)間使用同步通信的緊耦合的微服務(wù)架構(gòu)中

          • 如果微服務(wù)依賴多個(gè)其他微服務(wù)

          何時(shí)不宜使用斷路器

          • 松耦合、事件驅(qū)動的微服務(wù)架構(gòu)

          • 如果微服務(wù)不依賴于其他微服務(wù)

          可用技術(shù)示例

          API 網(wǎng)關(guān),服務(wù)網(wǎng)格,各種斷路器庫(Hystrix, Reselience4J, Polly)。

           外部化配置

          每個(gè)業(yè)務(wù)應(yīng)用都有許多用于各種基礎(chǔ)設(shè)施的配置參數(shù)(例如,數(shù)據(jù)庫、網(wǎng)絡(luò)、連接的服務(wù)地址、憑據(jù)、證書路徑)。此外在企業(yè)應(yīng)用程序通常部署在各種運(yùn)行環(huán)境(Local、 Dev、 Prod)中,實(shí)現(xiàn)這些的一個(gè)方法是通過內(nèi)部配置。這是一個(gè)致命糟糕實(shí)踐,它會導(dǎo)致嚴(yán)重的安全風(fēng)險(xiǎn),因?yàn)樯a(chǎn)憑證很容易遭到破壞。此外,配置參數(shù)的任何更改都需要重新構(gòu)建應(yīng)用程序,這在在微服務(wù)架構(gòu)中會更加嚴(yán)峻,因?yàn)槲覀兛赡軗碛袛?shù)百個(gè)服務(wù)。

          更好的方法是將所有配置外部化,使得構(gòu)建過程與運(yùn)行環(huán)境分離,生產(chǎn)的配置文件只在運(yùn)行時(shí)或通過環(huán)境變量使用,從而最小化了安全風(fēng)險(xiǎn)。

          優(yōu)點(diǎn)

          • 生產(chǎn)配置不屬于代碼庫,因而最小化了安全漏洞。

          • 修改配置參數(shù)不需要重新構(gòu)建應(yīng)用程序。

          缺點(diǎn)

          • 我們需要選擇一個(gè)支持外部化配置的框架。

          何時(shí)使用外部化配置

          • 任何重要的生產(chǎn)應(yīng)用程序都必須使用外部化配置。

          何時(shí)不宜使用外部化配置

          • 在驗(yàn)證概念的開發(fā)中。

          可用技術(shù)示例

          幾乎所有企業(yè)級的現(xiàn)代框架都支持外部化配置。

           消費(fèi)端驅(qū)動的契約測試

          在微服務(wù)架構(gòu)中,通常有許多有不同團(tuán)隊(duì)開發(fā)的微服務(wù)。這些微型服務(wù)協(xié)同工作來滿足業(yè)務(wù)需求(例如,客戶請求),并相互進(jìn)行同步或異步通信。消費(fèi)端微服務(wù)的集成測試具有挑戰(zhàn)性,通常用 TestDouble 以獲得更快、更低成本的測試運(yùn)行。但是 TestDouble 通常并不能代表真正的微服務(wù)提供者,而且如果微服務(wù)提供者更改了它的 API 或 消息,那么 TestDouble 將無法確認(rèn)這些。另一種選擇是進(jìn)行端到端測試,盡管它在生產(chǎn)之前是強(qiáng)制性的,但卻是脆弱的、緩慢的、昂貴的且不能替代集成測試(Test Pyramid)。

          在這方面消費(fèi)端驅(qū)動的契約測試可以幫助我們。在這里,負(fù)責(zé)消費(fèi)端微服務(wù)的團(tuán)隊(duì)針對特定的服務(wù)端微服務(wù),編寫一套包含了其請求和預(yù)期響應(yīng)(同步)或消息(異步)的測試套件,這些測試套件稱為顯式的約定。對于微服務(wù)服務(wù)端,將其消費(fèi)端所有約定的測試套件都添加到其自動化測試中。當(dāng)特定服務(wù)端微服務(wù)的自動化測試執(zhí)行時(shí),它將一起運(yùn)行自己的測試和約定的測試并進(jìn)行驗(yàn)證。通過這種方式,契約測試可以自動的幫助維護(hù)微服務(wù)通信的完整性。

          優(yōu)點(diǎn)

          • 如果提供程序意外更改 API 或消息,可以被快速的自動發(fā)現(xiàn)。

          • 更少意外、更健壯,特別是包含大量微服務(wù)的企業(yè)應(yīng)用程序。

          • 改善團(tuán)隊(duì)自主性。

          缺點(diǎn)

          • 需要額外的工作來開發(fā)和集成微服務(wù)服務(wù)端的契約測試,因?yàn)樗麄兛赡苁褂猛耆煌臏y試工具。

          • 如果契約測試與真實(shí)服務(wù)情況不匹配,將可能導(dǎo)致生產(chǎn)故障。

          何時(shí)使用需求驅(qū)動的契約測試

          • 在大型企業(yè)業(yè)務(wù)應(yīng)用程序中,通常由不同的團(tuán)隊(duì)開發(fā)不同服務(wù)。

          何時(shí)不宜使用消費(fèi)端驅(qū)動的契約測試

          • 所有微服務(wù)由同一團(tuán)隊(duì)負(fù)責(zé)開發(fā)的小型簡單的應(yīng)用程序。

          • 如果服務(wù)端微服務(wù)是相對穩(wěn)定的,并且不處在活躍的開發(fā)狀態(tài)。

          可用技術(shù)示例

          Pact, Postman, Spring Cloud Contract

          3總結(jié)

          在現(xiàn)代大規(guī)模企業(yè)軟件開發(fā)中,微服務(wù)架構(gòu)能夠幫助開發(fā)擴(kuò)展規(guī)模并帶來很多長期收益。但是微服務(wù)架構(gòu)并不是隨處可用的銀彈,如果應(yīng)用在錯(cuò)誤的應(yīng)用程序類型,微服務(wù)架構(gòu)將弊大于利。希望采用微服務(wù)架構(gòu)的開發(fā)團(tuán)隊(duì)?wèi)?yīng)該遵循最佳實(shí)踐,并使用一系列可重用的、久經(jīng)錘煉的設(shè)計(jì)模式。

          微服務(wù)架構(gòu)中至關(guān)重要的設(shè)計(jì)模式是獨(dú)享數(shù)據(jù)庫。實(shí)現(xiàn)這種設(shè)計(jì)模式具有挑戰(zhàn)性,需要其他幾種密切相關(guān)的設(shè)計(jì)模式(事件驅(qū)動、 CQRS、 Saga)來支持。在具有多個(gè)客戶端(Web、 Mobile、 Desktop、 Smart Devices)的典型業(yè)務(wù)應(yīng)用程序中,客戶端和微服務(wù)之間的通信量可能是很大的,并且需要統(tǒng)一的安全控制,在這種情況面向前端的后端和 API 網(wǎng)關(guān)的設(shè)計(jì)非常有用。此外,斷路器模式可以大大地幫助應(yīng)對這類應(yīng)用程序的錯(cuò)誤處理場景。遷移遺留的單體應(yīng)用到微服務(wù)是極具挑戰(zhàn)性的,而 Strangler 模式可以幫助做到這點(diǎn)。消費(fèi)端驅(qū)動的契約測試是微服務(wù)集成測試的基礎(chǔ)模式。另外外部化配置是任何現(xiàn)代化應(yīng)用程序開發(fā)中的一種必備模式。

          這個(gè)系列并不全面,在實(shí)際情況中您可能需要其他的設(shè)計(jì)模式,但這個(gè)系列能為您提供一個(gè)關(guān)于微服務(wù)架構(gòu)設(shè)計(jì)模式的極好介紹。

          原文鏈接:

          https://towardsdatascience.com/microservice-architecture-and-its-10-most-important-design-patterns-824952d7fa41

          更多精彩內(nèi)容,關(guān)注我們▼▼


          - EOF -

          PS:如果覺得我的分享不錯(cuò),歡迎大家隨手點(diǎn)贊、在看

          大家一起在評論區(qū)聊聊唄~

          茉莉花,別名茉莉,拉丁文名:Jasminum sambac (L.) Ait,木犀科、素馨屬直立或攀援灌木,高達(dá)3米。

          小枝圓柱形或稍壓扁狀,有時(shí)中空,疏被柔毛。葉對生,單葉,葉片紙質(zhì),圓形、橢圓形、卵狀橢圓形或倒卵形,兩端圓或鈍,基部有時(shí)微心形,在上面稍凹入或凹起,下面凸起,細(xì)脈在兩面常明顯,微凸起,除下面脈腋間常具簇毛外,其余無毛;裂片長圓形至近圓形,先端圓或鈍。果球形,呈紫黑色。花期5-8月,果期7-9月。

          茉莉的花極香,為著名的花茶原料及重要的香精原料;花、葉藥用治目赤腫痛,并有止咳化痰之效。

          吳王子子駒亡走閩越,怨東甌殺其父,常勸閩越擊東甌。至建元三年,閩越發(fā)兵圍東甌。東甌食盡,困,

          太史公曰:余每讀虞書,至於君臣相敕,維是幾安,而股肱不良,萬事墮壞,未嘗不流涕也。成王作頌,推己懲艾,悲彼家難,可不謂戰(zhàn)戰(zhàn)恐懼,善守善終哉?君子不為約則修德,滿則棄禮,佚能思初,安能惟始,沐浴膏澤而歌詠勤苦,非大德誰能如斯!傳曰“治定功成,禮樂乃興”。海內(nèi)人道益深,其德益至,所樂者益異。滿而不損則溢,盈而不持則傾。凡作樂者,所以節(jié)樂。君子以謙退為禮,以損減為樂,樂其如此也。以為州異國殊,情習(xí)不同,故博采風(fēng)俗,協(xié)比聲律,以補(bǔ)短移化,助流政教。天子躬於明堂臨觀,而萬民咸蕩滌邪穢,斟酌飽滿,以飾厥性。故云雅頌之音理而民正,嘄噭之聲興而士奮,鄭衛(wèi)之曲動而心淫。及其調(diào)和諧合,鳥獸盡感,而況懷五常,含好惡,自然之勢也?

            治道虧缺而鄭音興起,封君世辟,名顯鄰州,爭以相高。自仲尼不能與齊優(yōu)遂容於魯,雖退正樂以誘世,作五章以剌時(shí),猶莫之化。陵遲以至六國,流沔沈佚,遂往不返,卒於喪身滅宗,并國於秦。

            秦二世尤以為娛。丞相李斯進(jìn)諫曰:“放棄詩書,極意聲色,祖伊所以懼也;輕積細(xì)過,恣心長夜,紂所以亡也。”趙高曰:“五帝、三王樂各殊名,示不相襲。上自朝廷,下至人民,得以接歡喜,合殷勤,非此和說不通,解澤不流,亦各一世之化,度時(shí)之樂,何必華山之騄耳而后行遠(yuǎn)乎?”二世然之。

            高祖過沛詩三侯之章,令小兒歌之。高祖崩,令沛得以四時(shí)歌鳷宗廟。孝惠、孝文、孝景無所增更,於樂府習(xí)常肄舊而已。

            至今上即位,作十九章,令侍中李延年次序其聲,拜為協(xié)律都尉。通一經(jīng)之士不能獨(dú)知其辭,皆集會五經(jīng)家,相與共講習(xí)讀之,乃能通知其意,多爾雅之文。

            漢家常以正月上辛祠太一甘泉,以昏時(shí)夜祠,到明而終。常有流星經(jīng)於祠壇上。使僮男僮女七十人俱歌。春歌青陽,夏歌硃明,秋歌西昚,冬歌玄冥。世多有,故不論。

            又嘗得神馬渥洼水中,復(fù)次以為太一之歌。曲曰:“太一貢兮天馬下,霑赤汗兮沫流赭。騁容與兮跇萬里,今安匹兮龍為友。”後伐大宛得千里馬,馬名蒲梢,次作以為歌。歌詩曰:“天馬來兮從西極,經(jīng)萬里兮歸有德。承靈威兮降外國,涉流沙兮四夷服。”中尉汲黯進(jìn)曰:“凡王者作樂,上以承祖宗,下以化兆民。今陛下得馬,詩以為歌,協(xié)於宗廟,先帝百姓豈能知其音邪?”上默然不說。丞相公孫弘曰:“黯誹謗圣制,當(dāng)族。”

            凡音之起,由人心生也。人心之動,物使之然也。感於物而動,故形於聲;聲相應(yīng),故生變;變成方,謂之音;比音而樂之,及干戚羽旄,謂之樂也。樂者,音之所由生也,其本在人心感於物也。是故其哀心感者,其聲噍以殺;其樂心感者,其聲啴以緩;其喜心感者,其聲發(fā)以散;其怒心感者,其聲粗以厲;其敬心感者,其聲直以廉;其愛心感者,其聲和以柔。六者非性也,感於物而后動,是故先王慎所以感之。故禮以導(dǎo)其志,樂以和其聲,政以壹其行,刑以防其奸。禮樂刑政,其極一也,所以同民心而出治道也。

            凡音者,生人心者也。情動於中,故形於聲,聲成文謂之音。是故治世之音安以樂,其正和;亂世之音怨以怒,其正乖;亡國之音哀以思,其民困。聲音之道,與正通矣。宮為君,商為臣,角為民,徵為事,羽為物。五者不亂,則無怗懘之音矣。宮亂則荒,其君驕;商亂則搥,其臣壞;角亂則憂,其民怨;徵亂則哀,其事勤;羽亂則危,其財(cái)匱。五者皆亂,迭相陵,謂之慢。如此則國之滅亡無日矣。鄭衛(wèi)之音,亂世之音也,比於慢矣。桑間濮上之音,亡國之音也,其政散,其民流,誣上行私而不可止。

            凡音者,生於人心者也;樂者,通於倫理者也。是故知聲而不知音者,禽獸是也;知音而不知樂者,眾庶是也。唯君子為能知樂。是故審聲以知音,審音以知樂,審樂以知政,而治道備矣。是故不知聲者不可與言音,不知音者不可與言樂知樂則幾於禮矣。禮樂皆得,謂之有德。德者得也。是故樂之隆,非極音也;食饗之禮,非極味也。清廟之瑟,硃弦而疏越,一倡而三嘆,有遺音者矣。大饗之禮,尚玄酒而俎腥魚,大羹不和,有遺味者矣。是故先王之制禮樂也,非以極口腹耳目之欲也,將以教民平好惡而反人道之正也。

            人生而靜,天之性也;感於物而動,性之頌也。物至知知,然后好惡形焉。好惡無節(jié)於內(nèi),知誘於外,不能反己,天理滅矣。夫物之感人無窮,而人之好惡無節(jié),則是物至而人化物也。人化物也者,滅天理而窮人欲者也。於是有悖逆詐偽之心,有淫佚作亂之事。是故彊者脅弱,眾者暴寡,知者詐愚,勇者苦怯,疾病不養(yǎng),老幼孤寡不得其所,此大亂之道也。是故先王制禮樂,人為之節(jié):衰麻哭泣,所以節(jié)喪紀(jì)也;鐘鼓干戚,所以和安樂也;婚姻冠笄,所以別男女也;射鄉(xiāng)食饗,所以正交接也。禮節(jié)民心,樂和民聲,政以行之,刑以防之。禮樂刑政四達(dá)而不悖,則王道備矣。

            樂者為同,禮者為異。同則相親,異則相敬。樂勝則流,禮勝則離。合情飾貌者,禮樂之事也。禮義立,則貴賤等矣;樂文同,則上下和矣;好惡著,則賢不肖別矣;刑禁暴,爵舉賢,則政均矣。仁以愛之,義以正之,如此則民治行矣。

            樂由中出,禮自外作。樂由中出,故靜;禮自外作,故文。大樂必易,大禮必簡。樂至則無怨,禮至則不爭。揖讓而治天下者,禮樂之謂也。暴民不作,諸侯賓服,兵革不試,五刑不用,百姓無患,天子不怒,如此則樂達(dá)矣。合父子之親,明長幼之序,以敬四海之內(nèi)。天子如此,則禮行矣。

            大樂與天地同和,大禮與天地同節(jié)。和,故百物不失;節(jié),故祀天祭地。明則有禮樂,幽則有鬼神,如此則四海之內(nèi)合敬同愛矣。禮者,殊事合敬者也;樂者,異文合愛者也。禮樂之情同,故明王以相沿

          萬石君名奮,其父趙人也,姓石氏。趙亡,徙居溫。高祖東擊項(xiàng)籍,過河內(nèi),時(shí)奮年十五,為小吏,侍高祖。高祖與語,愛其恭敬,問曰:“若何有?”對曰:“奮獨(dú)有母,不幸失明。家貧。有姊,能鼓琴。”高祖曰:“若能從我乎?”曰:“原盡力。”於是高祖召其姊為美人,以奮為中涓,受書謁,徙其家長安中戚里,以姊為美人故也。其官至孝文時(shí),積功勞至大中大夫。無文學(xué),恭謹(jǐn)無與比。

            文帝時(shí),東陽侯張相如為太子太傅,免。選可為傅者,皆推奮,奮為太子太傅。及孝景即位,以為九卿;迫近,憚之,徙奮為諸侯相。奮長子建,次子甲,次子乙,次子慶,皆以馴行孝謹(jǐn),官皆至二千石。於是景帝曰:“石君及四子皆二千石,人臣尊寵乃集其門。”號奮為萬石君。

            孝景帝季年,萬石君以上大夫祿歸老于家,以歲時(shí)為朝臣。過宮門闕,萬石君必下車趨,見路馬必式焉。子孫為小吏,來歸謁,萬石君必朝服見之,不名。子孫有過失,不譙讓,為便坐,對案不食。然后諸子相責(zé),因長老肉袒固謝罪,改之,乃許。子孫勝冠者在側(cè),雖燕居必冠,申申如也。僮仆如也,唯謹(jǐn)。上時(shí)賜食於家,必稽首俯伏而食之,如在上前。其執(zhí)喪,哀戚甚悼。子孫遵教,亦如之。萬石君家以孝謹(jǐn)聞乎郡國,雖齊魯諸儒質(zhì)行,皆自以為不及也。

            建元二年,郎中令王臧以文學(xué)獲罪。皇太后以為儒者文多質(zhì)少,今萬石君家不言而躬行,乃以長子建為郎中令,少子慶為內(nèi)史。

            建老白首,萬石君尚無恙。建為郎中令,每五日洗沐歸謁親,入子舍,竊問侍者,取親中稖廁窬,身自浣滌,復(fù)與侍者,不敢令萬石君知,以為常。建為郎中令,事有可言,屏人恣言,極切;至廷見,如不能言者。是以上乃親尊禮之。

            萬石君徙居陵里。內(nèi)史慶醉歸,入外門不下車。萬石君聞之,不食。慶恐,肉袒請罪,不許。舉宗及兄建肉袒,萬石君讓曰:“內(nèi)史貴人,入閭里,里中長老皆走匿,而內(nèi)史坐車中自如,固當(dāng)!”乃謝罷慶。慶及諸子弟入里門,趨至家。

            萬石君以元朔五年中卒。長子郎中令建哭泣哀思,扶杖乃能行。歲馀,建亦死。諸子孫咸孝,然建最甚,甚於萬石君。

            建為郎中令,書奏事,事下,建讀之,曰:“誤書!‘馬’者與尾當(dāng)五,今乃四,不足一。上譴死矣!”甚惶恐。其為謹(jǐn)慎,雖他皆如是。

            萬石君少子慶為太仆,御出,上問車中幾馬,慶以策數(shù)馬畢,舉手曰:“六馬。”慶於諸子中最為簡易矣,然猶如此。為齊相,舉齊國皆慕其家行,不言而齊國大治,為立石相祠。

            元狩元年,上立太子,選群臣可為傅者,慶自沛守為太子太傅,七歲遷為御史大夫。

            元鼎五年秋,丞相有罪,罷。制詔御史:“萬石君先帝尊之,子孫孝,其以御史大夫慶為丞相,封為牧丘侯。”是時(shí)漢方南誅兩越,東擊朝鮮,北逐匈奴,西伐大宛,中國多事。天子巡狩海內(nèi),修上古神祠,封禪,興禮樂。公家用少,桑弘羊等致利,王溫舒之屬峻法,兒寬等推文學(xué)至九卿,更進(jìn)用事,事不關(guān)決於丞相,丞相醇謹(jǐn)而已。在位九歲,無能有所匡言。嘗欲請治上近臣所忠、九卿咸宣罪,不能服,反受其過,贖罪。

            元封四年中,關(guān)東流民二百萬口,無名數(shù)者四十萬,公卿議欲請徙流民於邊以適之。上以為丞相老謹(jǐn),不能與其議,乃賜丞相告歸,而案御史大夫以下議為請者。丞相慚不任職,乃上書曰:“慶幸得待罪丞相,罷駑無以輔治,城郭倉庫空虛,民多流亡,罪當(dāng)伏斧質(zhì),上不忍致法。原歸丞相侯印,乞骸骨歸,避賢者路。”天子曰:“倉廩既空,民貧流亡,而君欲請徙之,搖蕩不安,動危之,而辭位,君欲安歸難乎?”以書讓慶,慶甚慚,遂復(fù)視事。

            慶文深審謹(jǐn),然無他大略,為百姓言。後三歲馀,太初二年中,丞相慶卒,謚為恬侯。慶中子德,慶愛用之,上以德為嗣,代侯。後為太常,坐法當(dāng)死,贖免為庶人。慶方為丞相,諸子孫為吏更至二千石者十三人。及慶死後,稍以罪去,孝謹(jǐn)益衰矣。

            建陵侯衛(wèi)綰者,代大陵人也。綰以戲車為郎,事文帝,功次遷為中郎將,醇謹(jǐn)無他。孝景為太子時(shí),召上左右飲,而綰稱病不行。文帝且崩時(shí),屬孝景曰:“綰長者,善遇之。”及文帝崩,景帝立,歲馀不噍呵綰,綰日以謹(jǐn)力。

            景帝幸上林,詔中郎將參乘,還而問曰:“君知所以得參乘乎?”綰曰:“臣從車士幸得以功次遷為中郎將,不自知也。”上問曰:“吾為太子時(shí)召君,君不肯來,何也?”對曰:“死罪,實(shí)病!”上賜之劍。綰曰:“先帝賜臣劍凡六,劍不敢奉詔。”上曰:“劍,人之所施易,獨(dú)至今乎?”綰曰:“具在。”上使取六劍,劍尚盛,未嘗服也。郎官有譴,常蒙其罪,不與他將爭;有功,常讓他將。上以為廉,忠實(shí)無他腸,乃拜綰為河間王太傅。吳楚反,詔綰為將,將河間兵擊吳楚有功,拜為中尉。三歲,以軍功,孝景前六年中封綰為建陵侯。

            其明年,上廢太子,誅栗卿之屬。上以為綰長者,不忍,乃賜綰告歸,而使郅都治捕栗氏。既已,上立膠東王為太子,召綰,拜為太子太傅。久之,遷為御史大夫。五歲,代桃侯舍為丞相,朝奏事如職所奏。然自初官以至丞相,終無可言。天子以為敦厚,可相少主,尊寵之,賞賜甚多。

            為丞相三歲,景帝崩,武帝立。建元年中,丞相以景帝疾時(shí)諸官囚多坐不辜者,而君不任職,免之。其後綰卒,子信代。坐酎金失侯。

            塞侯直不疑者,南陽人也。為郎,事文帝。其同舍有告歸,誤持同舍郎金去,已而金主覺,妄意不疑,不疑謝有之,買金償。而告歸者來而歸金,而前郎亡金者大慚,以此稱為長者。文帝稱舉,稍遷至太中大夫。朝廷見,人或毀曰:“不疑狀貌甚美,然獨(dú)無柰其善盜嫂何也!”不疑聞,曰:“我乃無兄。”然終不自明也。

            吳楚反時(shí),不疑以二千石將兵擊之。景帝後元年,拜為御史大夫。天子修吳楚時(shí)功,乃封不疑為塞侯。武帝建元年中,

          諺曰“力田不如逢年,善仕不如遇合”,固無虛言。非獨(dú)女以色媚,而士宦亦有之。

            昔以色幸者多矣。至漢興,高祖至暴抗也,然籍孺以佞幸;孝惠時(shí)有閎孺。此兩人非有材能,徒以婉佞貴幸,與上臥起,公卿皆因關(guān)說。故孝惠時(shí)郎侍中皆冠鵕璘,貝帶,傅脂粉,化閎、籍之屬也。兩人徙家安陵。

            孝文時(shí)中寵臣,士人則鄧通,宦者則趙同、北宮伯子。北宮伯子以愛人長者;而趙同以星氣幸,常為文帝參乘;鄧通無伎能。鄧通,蜀郡南安人也,以濯船為黃頭郎。孝文帝夢欲上天,不能,有一黃頭郎從後推之上天,顧見其衣裻帶後穿。覺而之漸臺,以夢中陰目求推者郎,即見鄧通,其衣後穿,夢中所見也。召問其名姓,姓鄧氏,名通,文帝說焉,尊幸之日異。通亦愿謹(jǐn),不好外交,雖賜洗沐,不欲出。於是文帝賞賜通巨萬以十?dāng)?shù),官至上大夫。文帝時(shí)時(shí)如鄧通家游戲。然鄧通無他能,不能有所薦士,獨(dú)自謹(jǐn)其身以媚上而已。上使善相者相通,曰“當(dāng)貧餓死”。文帝曰:“能富通者在我也。何謂貧乎?”於是賜鄧通蜀嚴(yán)道銅山,得自鑄錢,“鄧氏錢”布天下。其富如此。

            文帝嘗病癰,鄧通常為帝唶吮之。文帝不樂,從容問通曰:“天下誰最愛我者乎?”通曰:“宜莫如太子。”太子入問病,文帝使唶癰,唶癰而色難之。已而聞鄧通常為帝唶吮之,心慚,由此怨通矣。及文帝崩,景帝立,鄧通免,家居。居無何,人有告鄧通盜出徼外鑄錢。下吏驗(yàn)問,頗有之,遂竟案,盡沒入鄧通家,尚負(fù)責(zé)數(shù)巨萬。長公主賜鄧通,吏輒隨沒入之,一簪不得著身。於是長公主乃令假衣食。竟不得名一錢,寄死人家。

            孝景帝時(shí),中無寵臣,然獨(dú)郎中令周文仁,仁寵最過庸,乃不甚篤。

            今天子中寵臣,士人則韓王孫嫣,宦者則李延年。嫣者,弓高侯孽孫也。今上為膠東王時(shí),嫣與上學(xué)書相愛。及上為太子,愈益親嫣。嫣善騎射,善佞。上即位,欲事伐匈奴,而嫣先習(xí)胡兵,以故益尊貴,官至上大夫,賞賜擬於鄧通。時(shí)嫣常與上臥起。江都王入朝,有詔得從入獵上林中。天子車駕蹕道未行,而先使嫣乘副車,從數(shù)十百騎,騖馳視獸。江都王望見,以為天子,辟從者,伏謁道傍。嫣驅(qū)不見。既過,江都王怒,為皇太后泣曰:“請得歸國入宿衛(wèi),比韓嫣。”太后由此嗛嫣。嫣侍上,出入永巷不禁,以奸聞皇太后。皇太后怒,使使賜嫣死。上為謝,終不能得,嫣遂死。而案道侯韓說,其弟也,亦佞幸。

            李延年,中山人也。父母及身兄弟及女,皆故倡也。延年坐法腐,給事狗中。而平陽公主言延年女弟善舞,上見,心說之,及入永巷,而召貴延年。延年善歌,為變新聲,而上方興天地祠,欲造樂詩歌弦之。延年善承意,弦次初詩。其女弟亦幸,有子男。延年佩二千石印,號協(xié)聲律。與上臥起,甚貴幸,埒如韓嫣也。久之,浸與中人亂,出入驕恣。及其女弟李夫人卒後,愛弛,則禽誅延年昆弟也。

            自是之後,內(nèi)寵嬖臣大底外戚之家,然不足數(shù)也。衛(wèi)青、霍去病亦以外戚貴幸,然頗用材能自進(jìn)。

            太史公曰:甚哉愛憎之時(shí)!彌子瑕之行,足以觀後人佞幸矣。雖百世可知也。

            傳稱令色,詩刺巧言。冠璘入侍,傅粉承恩。黃頭賜蜀,宦者同軒。新聲都尉,挾彈王孫。泣魚竊駕,著自前論。

          與丞相綰俱以過免。

            不疑學(xué)老子言。其所臨,為官如故,唯恐人知其為吏跡也。不好立名稱,稱為長者。不疑卒,子相如代。孫望,坐酎金失侯。

            郎中令周文者,名仁,其先故任城人也。以醫(yī)見。景帝為太子時(shí),拜為舍人,積功稍遷,孝文帝時(shí)至太中大夫。景帝初即位,拜仁為郎中令。

            仁為人陰重不泄,常衣敝補(bǔ)衣溺袴,期為不絜清,以是得幸。景帝入臥內(nèi),於後宮祕戲,仁常在旁。至景帝崩,仁尚為郎中令,終無所言。上時(shí)問人,仁曰:“上自察之。”然亦無所毀。以此景帝再自幸其家。家徙陽陵。上所賜甚多,然常讓,不敢受也。諸侯群臣賂遺,終無所受。

            武帝立,以為先帝臣,重之。仁乃病免,以二千石祿歸老,子孫咸至大官矣。

            御史大夫張叔者,名歐,安丘侯說之庶子也。孝文時(shí)以治刑名言事太子。然歐雖治刑名家,其人長者。景帝時(shí)尊重,常為九卿。至武帝元朔四年,韓安國免,詔拜歐為御史大夫。自歐為吏,未嘗言案人,專以誠長者處官。官屬以為長者,亦不敢大欺。上具獄事,有可卻,卻之;不可者,不得已,為涕泣面對而封之。其愛人如此。

            老病篤,請免。於是天子亦策罷,以上大夫祿歸老于家。家於陽陵。子孫咸至大官矣。

            太史公曰:仲尼有言曰“君子欲訥於言而敏於行”,其萬石、建陵、張叔之謂邪?是以其教不肅而成,不嚴(yán)而治。塞侯微巧,而周文處讇,君子譏之,為其近於佞也。然斯可謂篤行君子矣!

            萬石孝謹(jǐn),自家形國。郎中數(shù)馬,內(nèi)史匍匐。綰無他腸,塞有陰德。刑名張歐,垂涕恤獄。敏行訥言,俱嗣芳躅。

          也。故事與時(shí)并,名與功偕。故鐘鼓管磬羽籥干戚,樂之器也;詘信俯仰級兆舒疾,樂之文也。簠簋俎豆制度文章,禮之器也;升降上下周旋裼襲,禮之文也。故知禮樂之情者能作,識禮樂之文者能術(shù)。作者之謂圣,術(shù)者之謂明。明圣者,術(shù)作之謂也。

            樂者,天地之和也;禮者,天地之序也。和,故百物皆化;序,故群物皆別。樂由天作,禮以地制。過制則亂,過作則暴。明於天地,然後能興禮樂也。論倫無患,樂之情也;欣喜驩愛,樂之也。中正無邪,禮之質(zhì)也;莊敬恭順,禮之制也。若夫禮樂之施於金石,越於聲音,用於宗廟社稷,事于山川鬼神,則此所以與民同也。

            王者功成作樂,治定制禮。其功大者其樂備,其治辨者其禮具。干戚之舞,非備樂也;亨孰而祀,非達(dá)禮也。五帝殊時(shí),不相沿樂;三王異世,不相襲禮。樂極則憂,禮粗則偏矣。及夫敦樂而無憂,禮備而不偏者,其唯大圣乎?天高地下,萬物散殊,而禮制行也;流而不息,合同而化,而樂興也。春作夏長,仁也;秋斂冬藏,義也。仁近於樂,義近於禮。樂者敦和,率神而從天;禮者辨宜,居鬼而從地。故圣人作樂以應(yīng)天,作禮以配地。禮樂明備,天地官矣。

            天尊地卑,君臣定矣。高卑已陳,貴賤位矣。動靜有常,小大殊矣。方以類聚,物以群分,則性命不同矣。在天成象,在地成形,如此則禮者天地之別也。地氣上隮,天氣下降,陰陽相摩,天地相蕩,鼓之以雷霆,奮之以風(fēng)雨,動之以四時(shí),暖之以日月,而百化興焉,如此則樂者天地之和也。

            化不時(shí)則不生,男女無別則亂登,此天地之情也。及夫禮樂之極乎天而蟠乎地,行乎陰陽而通乎鬼神,窮高極遠(yuǎn)而測深厚,樂著太始而禮居成物。著不息者天也,著不動者地也。一動一靜者,天地之間也。故圣人曰“禮云樂云”。

          且降,乃使人告急天子。天子問太尉田蚡,蚡對曰:“越人相攻擊,固其常,又?jǐn)?shù)反覆,不足以煩中國往救也。自秦時(shí)棄弗屬。”於是中大夫莊助詰蚡曰:“特患力弗能救,德弗能覆;誠能,何故棄之?且秦舉咸陽而棄之,何乃越也!今小國以窮困來告急天子,天子弗振,彼當(dāng)安所告愬?又何以子萬國乎?”上曰:“太尉未足與計(jì)。吾初即位,不欲出虎符發(fā)兵郡國。”乃遣莊助以節(jié)發(fā)兵會稽。會稽太守欲距不為發(fā)兵,助乃斬一司馬,諭意指,遂發(fā)兵浮海救東甌。未至,閩越引兵而去。東甌請舉國徙中國,乃悉舉眾來,處江淮之間。

            至建元六年,閩越擊南越。南越守天子約,不敢擅發(fā)兵擊而以聞。上遣大行王恢出豫章,大農(nóng)韓安國出會稽,皆為將軍。兵未逾嶺,閩越王郢發(fā)兵距險(xiǎn)。其弟馀善乃與相、宗族謀曰:“王以擅發(fā)兵擊南越,不請,故天子兵來誅。今漢兵眾彊,今即幸勝之,後來益多,終滅國而止。今殺王以謝天子。天子聽,罷兵,固一國完;不聽,乃力戰(zhàn);不勝,即亡入海。”皆曰“善”。即鏦殺王,使使奉其頭致大行。大行曰:“所為來者誅王。今王頭至,謝罪,不戰(zhàn)而耘,利莫大焉。”乃以便宜案兵告大農(nóng)軍,而使使奉王頭馳報(bào)天子。詔罷兩將兵,曰:“郢等首惡,獨(dú)無諸孫繇君丑不與謀焉。”乃使郎中將立丑為越繇王,奉閩越先祭祀。

            馀善已殺郢,威行於國,國民多屬,竊自立為王。繇王不能矯其眾持正。天子聞之,為馀善不足復(fù)興師,曰:“馀善數(shù)與郢謀亂,而後首誅郢,師得不勞。”因立馀善為東越王,與繇王并處。

            至元鼎五年,南越反,東越王馀善上書,請以卒八千人從樓船將軍擊呂嘉等。兵至揭揚(yáng),以海風(fēng)波為解,不行,持兩端,陰使南越。及漢破番禺,不至。是時(shí)樓船將軍楊仆使使上書,原便引兵擊東越。上曰士卒勞倦,不許,罷兵,1、伯庸。《離騷》:“朕皇考曰伯庸”。譬如作家馬伯庸……
          2、正則、靈均。《離騷》:“名余曰正則兮,字余曰靈均”。正則:公正而有法則。靈均:靈善而均調(diào)。屈原名平,字原,正則是對“平”字進(jìn)行的解釋,靈均是對“原”字進(jìn)行的解釋。
          3、修能。《離騷》:“又重之以修能”。修能:即美好的外表儀形。一釋為很強(qiáng)的才干和能力。
          4、騏、驥。《離騷》:“乘騏驥以馳騁兮”。騏驥:駿馬。
          5、峻茂。《離騷》:“冀枝葉之峻茂兮”。風(fēng)信子(學(xué)名:Hyacinthus orientalis L.):是多年草本球根類植物,鱗莖卵形,有膜質(zhì)外皮,皮膜顏色與花色成正相關(guān),未開花時(shí)形如大蒜,原產(chǎn)地中海沿岸及小亞細(xì)亞一帶,是研究發(fā)現(xiàn)的會開花的植物中最香的一個(gè)品種。喜陽光充足和比較濕潤的生長環(huán)境,要求排水良好和肥沃的沙壤土等。全世界風(fēng)信子的園藝品種約有

          單閼之歲兮,四月孟夏,庚子日施兮,服集予舍,止于坐隅,貌甚間暇。異物來集兮,私怪其故,發(fā)書占之兮,筴言其度。曰“野鳥入處兮,主人將去”。請問于服兮:“予去何之?吉乎告我,兇言其菑。淹數(shù)之度兮,語予其期。”服乃嘆息,舉首奮翼,口不能言,請對以意。

            萬物變化兮,固無休息。斡流而遷兮,或推而還。形氣轉(zhuǎn)續(xù)兮,變化而嬗。沕穆無窮兮,胡可勝言!禍兮福所倚,福兮禍所伏;憂喜聚門兮,吉兇同域。彼吳彊大兮,夫差以敗;越棲會稽兮,句踐霸世。斯游遂成兮,卒被五刑;傅說胥靡兮,乃相武丁。夫禍之與福兮,何異糾纆。命不可說兮,孰知其極?水激則旱兮,矢激則遠(yuǎn)。萬物回薄兮,振蕩相轉(zhuǎn)。云蒸雨降兮,錯(cuò)繆相紛。大專槃物兮,坱軋無垠。天不可與慮兮,道不可與謀。遲數(shù)有命兮,惡識其時(shí)?

            且夫天地為爐兮,造化為工;陰陽為炭兮,萬物為銅。合散消息兮,安有常則;千變?nèi)f化兮,未始有極。忽然為人兮,何足控?fù)唬换癁楫愇镔猓趾巫慊迹⌒≈运劫猓v彼貴我;通人大觀兮,物無不可。貪夫徇財(cái)兮,烈士徇名;夸者死權(quán)兮,品庶馮生。述迫之徒兮,或趨西東;大人不曲兮,億變齊同。拘士系俗兮,羖如囚拘;至人遺物兮,獨(dú)與道俱。眾人或或兮,好惡積意;真人淡漠兮,獨(dú)與道息。釋知遺形兮,超然自喪;寥廓忽荒兮,與道翱翔。乘流則逝兮,得坻則止;縱軀委命兮,不私與己。其生若浮兮,其死若休;澹乎若深淵之靜,氾乎若不系之舟。不以生故自寶兮,養(yǎng)空而浮;德人無累兮,知命不憂。細(xì)故粦兮,何足以疑!

            後歲馀,賈生徵見。孝文帝方受釐,坐宣室。上因感鬼神事,而問鬼神之本。賈生因具道所以然之狀。至夜半,文帝前席。既罷,曰:“吾久不見賈生,自以為過之,今不及也。”居頃之,拜賈生為梁懷王太傅。梁懷王,文帝之少子,愛,而好書,故令賈生傅之。

            文帝復(fù)封淮南厲王子四人皆為列侯。賈生諫,以為患之興自此起矣。賈生數(shù)上疏,言諸侯或連數(shù)郡,非古之制,可稍削之。文帝不聽。

            居數(shù)年,懷王騎,墮馬而死,無後。賈生自傷為傅無狀,哭泣歲馀,亦死。賈生之死時(shí)年三十三矣。及孝文崩,孝武皇帝立,舉賈生之孫二人至郡守,而賈嘉最好學(xué),世其家,與余通書。至孝昭時(shí),列為九卿。

            太史公曰:余讀離騷、天問、招魂、哀郢,悲其志。適長沙,觀屈原所自沈淵,未嘗不垂涕,想見其為人。及見賈生吊之,又怪屈原以彼其材,游諸侯,何國不容,而自令若是。讀服烏賦,同死生,輕去就,又爽然自失矣。

            屈平行正,以事懷王。瑾瑜比潔,日月爭光。忠而見放,讒者益章。賦騷見志,懷沙自傷。百年之後,空悲吊湘。

          2000種以上,主要分為“荷蘭種”和“羅馬種”兩類。前者屬正宗品種,絕大多數(shù)每株只長1支花葶,體勢粗壯,花朵較大。而后者則多是變異的雜種,每株能著生二三支花葶,體勢幼弱,花朵較細(xì),多數(shù)消費(fèi)者喜購荷蘭風(fēng)信子。峻茂:猶繁茂。
          6、信芳。《離騷》:“茍余情其信芳”。如京劇表演藝術(shù)家周信芳。
          7、圣哲、茂行。《離騷》:“夫維圣哲以茂行兮”。圣哲:具有超人的道德才智的人。茂行:德行充盛。
          8、曼路。《離騷》:“路曼曼其修遠(yuǎn)兮,吾將上下而求索”。
          9、望舒。《離騷》:“前望舒使先驅(qū)兮”。望舒:神話中為月駕車的神。如寫《雨巷》的詩人戴望舒。
          10、陸離。《離騷》:“斑陸離其上下”。陸離:光輝燦爛的樣子。我們對于該詞的認(rèn)知多來自于成語“光怪陸離”,意指色彩繁雜、變化多端。
          11、珵美。《離騷》:“覽察草木其猶未得兮,豈珵美之能當(dāng)”。珵:美玉。
          12、云旗。《離騷》:“駕八龍之婉婉兮,載云旗之委蛇”。云旗:繪有云霓的旗幟。
          ===================九===歌===的===分===界===線=================== 
          1、辰良。《九歌·東皇太一》:“吉日兮辰良”。“辰良”系“良辰”之倒文,指好時(shí)光。易被讀作“乘涼”。
          2、玉鏘、璆鳴。《九歌·東皇太一》:“撫長劍兮玉珥,璆鏘鳴兮琳瑯”。詩曰:佩玉鏘鏘。璆(音求):美玉。
          3、安歌。《九歌·東皇太一》:“疏緩節(jié)兮安歌”。

          南越王尉佗者,真定人也,姓趙氏。秦時(shí)已并天下,略定楊越,置桂林、南海、象郡,以謫徙民,與越雜處十三歲。佗,秦時(shí)用為南海龍川令。至二世時(shí),南海尉任囂病且死,召龍川令趙佗語曰:“聞陳勝等作亂,秦為無道,天下苦之,項(xiàng)羽、劉季、陳勝、吳廣等州郡各共興軍聚眾,虎爭天下,中國擾亂,未知所安,豪杰畔秦相立。南海僻遠(yuǎn),吾恐盜兵侵地至此,吾欲興兵絕新道,自備,待諸侯變,會病甚。且番禺負(fù)山險(xiǎn),阻南海,東西數(shù)千里,頗有中國人相輔,此亦一州之主也,可以立國。郡中長吏無足與言者,故召公告之。”即被佗書,行南海尉事。囂死,佗即移檄告橫浦、陽山、湟谿關(guān)曰:“盜兵且至,急絕道聚兵自守!”因稍以法誅秦所置長吏,以其黨為假守。秦已破滅,佗即擊并桂林、象郡,自立為南越武王。高帝已定天下,為中國勞苦,故釋佗弗誅。漢十一年,遣陸賈因立佗為南越王,與剖符通使,和集百越,毋為南邊患害,與長沙接境。

            高后時(shí),有司請禁南越關(guān)市鐵器。佗曰:“高帝立我,通使物,今高后聽讒臣,別異蠻夷,隔絕器物,此必長沙王計(jì)也,欲倚中國,擊滅南越而并王之,自為功也。”於是佗乃自尊號為南越武帝,發(fā)兵攻長沙邊邑,敗數(shù)縣而去焉。高后遣將軍隆慮侯灶往擊之。會暑濕,士卒大疫,兵不能逾嶺。歲馀,高后崩,即罷兵。佗因此以兵威邊,財(cái)物賂遺閩越、西甌、駱,役屬焉,東西萬馀里。乃乘黃屋左纛,稱制,與中國侔。

            及孝文帝元年,初鎮(zhèn)撫天下,使告諸侯四夷從代來即位意,喻盛德焉。乃為佗親冢在真定,置守邑,歲時(shí)奉祀。召其從昆弟,尊官厚賜寵之。詔丞相陳平等舉可使南越者,平言好畤陸賈,先帝時(shí)習(xí)使南越。乃召賈以為太中大夫,往使。因讓佗自立為帝,曾無一介之使報(bào)者。陸賈至南越,王甚恐,為書謝,稱曰:“蠻夷大長老夫臣佗,前日高后隔異南越,竊疑長沙王讒臣,又遙聞高后盡誅佗宗族,掘燒先人冢,以故自棄,犯長沙邊境。且南方卑濕,蠻夷中間,其東閩越千人眾號稱王,其西甌駱裸國亦稱王。老臣妄竊帝號,聊以自娛,豈敢以聞天王哉!”乃頓首謝,原長為籓臣,奉貢職。於是乃下令國中曰:“吾聞兩雄不俱立,兩賢不并世。皇帝,賢天子也。自今以後,去帝制黃屋左纛。”陸賈還報(bào),孝文帝大說。遂至孝景時(shí),稱臣,使人朝請。然南越其居國竊如故號名,其使天子,稱王朝命如諸侯。至建元四年卒。

            佗孫胡為南越王。此時(shí)閩越王郢興兵擊南越邊邑,胡使人上書曰:“兩越俱為籓臣,毋得擅興兵相攻擊。今閩越興兵侵臣,臣不敢興兵,唯天子詔之。”於是天子多南越義,守職約,為興師,遣兩將軍往討閩越。兵未逾嶺,閩越王弟馀善殺郢以降,於是罷兵。

            天子使莊助往諭意南越王,胡頓首曰:“天子乃為臣興兵討閩越,死無以報(bào)德!”遣太子?jì)臊R入宿衛(wèi)。謂助曰:“國新被寇,使者行矣。胡方日夜裝入見天子。”助去後,其大臣諫胡曰:“漢興兵誅郢,亦行以驚動南越。且先王昔言,事天子期無失禮,要之不可以說好語入見。入見則不得復(fù)歸,亡國之勢也。”於是胡稱病,竟不入見。後十馀歲,胡實(shí)病甚,太子?jì)臊R請歸。胡薨,謚為文王。

            嬰齊代立,即藏其先武帝璽。嬰齊其入宿衛(wèi)在長安時(shí),取邯鄲樛氏女,生子興。及即位,上書請立樛氏女為后,興為嗣。漢數(shù)使使者風(fēng)諭嬰齊,嬰齊尚樂擅殺生自恣,懼入見要用漢法,比內(nèi)諸侯,固稱病,遂不入見。遣子次公入宿衛(wèi)。嬰齊薨,謚為明王。

            太子興代立,其母為太后。太后自未為嬰齊姬時(shí),嘗與霸陵人安國少季通。及嬰齊薨後,元鼎四年,漢使安國少季往諭王、王太后以入朝,比內(nèi)諸侯;令辯士諫大夫終軍等宣其辭,勇士魏臣等輔其缺,衛(wèi)尉路博德將兵屯桂陽,待使者。王年少,太后中國人也,嘗與安國少季通,其使復(fù)私焉。國人頗知之,多不附太后。太后恐亂起,亦欲倚漢威,數(shù)勸王及群臣求內(nèi)屬。即因使者上書,請比內(nèi)諸侯,三歲一朝,除邊關(guān)。於是天子許之,賜其丞相呂嘉銀印,及內(nèi)史、中尉、太傅印,馀得自置。除其故黥劓刑,用漢法,比內(nèi)諸侯。使者皆留填撫之。王、王太后飭治行裝重赍,為入朝具。

          安歌:神態(tài)安詳?shù)爻琛S幸痪涮圃娬f:“安歌送好音”。
          4、浩倡。《九歌·東皇太一》:“陳竽瑟兮浩倡”。“浩倡”又作“浩唱”,和上句“安歌”相對應(yīng)。取名時(shí)可改為“浩昌”。下文《九歌·少司命》中還有“浩歌”。令諸校屯豫章梅領(lǐng)待命。



          瀏覽 82
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕国产乱伦 | 黄片 操逼 | 大鸡吧插入视频 | 国产美女艹逼 | 中文无码字幕视频 |