微博Service Mesh实践
微博搜索/丁振凯 2018.07.29 微博Service Mesh实践 —Weibo MeshService Mesh Meetup · BeiJing �2 微博Service Mesh实践 - WeiboMesh CONTENTS 内容提要为什什么要做跨语⾔言服务化 • 需求 • 趋势Service Mesh Meetup · BeiJing 平台体系 微博Service Mesh实践 Graphite ➢ 实时统计监控 平台微服务相关建设⽐比较完善 Notify Subscribe RegisterService Mesh Meetup · BeiJing 业务部⻔门调⽤用链 微博Service Mesh实践 - WeiboMesh �5 RPC A WEB A 平台体系 RPC B WEB B Golang 服务 PHP 服务 OR服务 …… RestFul Meetup · BeiJing 趋势 �6 微博Service Mesh实践 - WeiboMesh 微服务 1 容器器化 2 DevOps 3 云原⽣生 4 服务治理理与业务逻辑解耦,可持续交付跨语⾔言服务化⾯面临的问题 • 改造成本 • 服务治理理Service Mesh Meetup · BeiJing 改造成本 �8 微博Service Mesh实践 - WeiboMesh0 码力 | 43 页 | 1007.85 KB | 5 月前3[PingCAP Meetup SH 5.26]上海电信微信营业厅 TiDB 实践 v 1.6
上海电信微信营业厅 TiDB 实践 业务 痛点 选择 测试 上线 特性 业务介绍 ● 运营活动 ● 套餐查询 ● 业务办理 ● 话费充值 ● 账单缴费 当前粉丝:400万+ 月活跃人数:110万+ 7*24小时的服务 业务痛点 DBA 分表 分库 运维 中间件 稳定性 ... 选择 MyCat TIDB Mysql 分片 ... 选型测试 Mysql 主从分表:活动 延迟 Mycat0 码力 | 9 页 | 188.20 KB | 6 月前3Hello 算法 1.2.0 繁体中文 C# 版
然而,由於鏈結串列節點需要額外儲存指標,因此鏈結串列節點佔用的空間相對較大。 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 第 8 章 堆積 www.hello‑algo0 码力 | 379 页 | 18.79 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Dart 版
5 章 堆疊與佇列 www.hello‑algo.com 96 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建0 码力 | 378 页 | 18.77 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Go 版
綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 第 5 章 堆疊與佇列 www.hello‑algo.com 97 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 堆積排序”章節。 第 8 章 堆積 www.hello‑algo.com 182 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建0 码力 | 385 页 | 18.80 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Kotlin 版
然而,由於鏈結串列節點需要額外儲存指標,因此鏈結串列節點佔用的空間相對較大。 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 第 8 章 堆積 www.hello‑algo0 码力 | 382 页 | 18.79 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Java 版
然而,由於鏈結串列節點需要額外儲存指標,因此鏈結串列節點佔用的空間相對較大。 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 第 5 章 堆疊與佇列 www.hello‑algo 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 第 8 章 堆積 www.hello‑algo0 码力 | 379 页 | 18.79 MB | 10 月前3Hello 算法 1.2.0 繁体中文 JavaScript 版
然而,由於鏈結串列節點需要額外儲存指標,因此鏈結串列節點佔用的空間相對較大。 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建0 码力 | 379 页 | 18.78 MB | 10 月前3Hello 算法 1.2.0 繁体中文 TypeScript 版
然而,由於鏈結串列節點需要額外儲存指標,因此鏈結串列節點佔用的空間相對較大。 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建0 码力 | 384 页 | 18.80 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Swift 版
然而,由於鏈結串列節點需要額外儲存指標,因此鏈結串列節點佔用的空間相對較大。 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建0 码力 | 379 页 | 18.79 MB | 10 月前3
共 74 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8