1. 程式人生 > >2018第45週日

2018第45週日

10歲的雙十一,已完全成光棍節長成購物節。從兩週前開始身邊就有不少朋友通過各種活動備戰,但結果只是花時間精力玩玩遊戲而已,所以有“一路操作猛於虎,最後到手5塊5”的說法。但是就算知道雙11是個“大騙局”,你就能忍住不剁手嗎?

反正我是湊熱鬧買了不少東西,沒有便宜多少,更多的收穫是那種湊熱鬧的體驗。

然後靜下來思考,不隨波逐流。

 

本週無意中看到李開復《人工智慧》那本書,裡面沒有太多深入的思考,但作為外行大眾科普學習還是不錯的。裡面提到了人工智慧時代怎麼學和學什麼,其實質還是圍繞說人類未來的核心競爭力不是過去那種靠記憶和練習就能獲得的技能,而是對複雜系統的分析決策能力,對文化和藝術的審美和創造性思維能力,由過去生活、經歷而形成的直覺和常識,以及基於人自身所有的情感和與他人交往的能力。想要在人工智慧時代更好的生活,就應該持續往培養這四方面的能力入手。

看書的同時看到了一些人,60年的張巨集江,68年的林斌,78年的陳士駿等,他們的故事和經歷值得每個被封閉在自己狹小空間的人學習。

 

這周寫了微服務的演化和拆分。

微服務架構的四代更迭——

  • 第一代:單個服務使用輕量級容器包裝,使用容器編排工具執行時部署和管理;但每個服務都要負責自己跟蹤其他服務的位置並進行失敗處理。

  • 第二代:引入服務發現和可重用的容錯通訊庫,但通訊庫的語言限制了服務的編寫語言。

  • 第三代:引入標準的服務代理/邊車作為一個透明的服務中介。

  • 第四代:利用最近的FaaS和AWS的Lambda等無伺服器-計算技術來進一步簡化微服務的開發和交付。有了這種無伺服器架構,微服務應用程式將基本上變成短暫的功能的集合,每個功能都可以根據需要快速隨意建立、更新、替換和刪除。

未來挑戰

  • 服務的模組化與重構:如何劃分模組、分配職責、設計介面

  • 服務粒度:不同的專案團隊對於微服務的大小規模意見不一致,缺乏統一的標準

  • 前端整合:通常是一個巨石的前臺使用大量的後臺的微服務體系,這導致所有單體體系結構的缺點依舊存在

  • 資源監控和管理:資訊太多,無法做出及時的管理決策;如何定義一個準確的警告閾值、資訊過濾——利用資料探勘、控制理論和機器學習從歷史事件中學習

  • 故障、恢復和自我修復

  • 組織文化和協調

 

RabbitMQ是AMQP協議的很好實現,在傳統生產者、佇列、消費者模型中通過引入exchange路由來解耦佇列和生成者的關係,帶來更多的方便和靈活性。AMQP是一種協議,更準確的說是一種binary wire-level protocol(連結協議)。這是其和JMS的本質差別,AMQP不從API層進行限定,而是直接定義網路交換的資料格式。這使得實現了AMQP的provider天然性就是跨平臺的。AQMP可以用http來進行類比,不關心實現的語言,只要大家都按照相應的資料格式去傳送報文請求,不同語言的client均可以和不同語言的server連結。在AMQP中,訊息路由(messagerouting)和JMS存在一些差別,在AMQP中增加了Exchange和binding的角色。producer將訊息傳送給Exchange,binding決定Exchange的訊息應該傳送到那個queue,而consumer直接從queue中消費訊息。queue和exchange的bind有consumer來決定。