為什麼越來越多的人選小排量的B級車 夠用嗎

為什麼B級車也要裝載小排量發動機。B級車,也就是我們常說的中高級轎車,在很多人眼裡是一種行政、商務用途的車型,但其實隨着現在汽車逐漸成為人們生活中的陪伴工具,一輛空間更大,實用性更強,顏值頗高的B級車慢慢的成為了普羅大眾的家用車選擇。

汽車發動機的排量越來越小,是目前汽車動力總成選擇的一個主流,這也讓很多人不解,為什麼現在很多B級車甚至SUV都開始裝載1.5T或者1.4T的發動機?這樣不會使得動力不夠,油耗增加么?其實,B級車裝載小排量渦輪增壓發動機,是當下汽車行業發展的主流趨勢。

為什麼是小排量?

大多數人都有一個初步的認知,是為了環保。的確,姑且不說環境保護這個更深層次的東西,作為汽車來說,單位排放量的降低對於能源的損耗總量來說肯定有節約作用。作為汽車工業高度發達的歐洲,早在1970年就已經對於車輛尾氣排放控制標準做出了嚴格的規定,而且,歐洲的各國幾乎都採用汽車購置稅輕,但是燃油稅卻很重的政策,這也促使了小排量汽車的盛行。

所以除了節能減排,環境保護的大前提,降低汽車使用成本也是一個重要的原因,例如我國的汽車消費稅,1.0L-1.5L的排量徵收3%的消費稅,而1.5L-2.0L的消費稅則是5%,而車船使用稅的徵收標準同樣是按照排放量所屬檔次徵收,所以排量越高,也意味着用車成本的提高,售價也越貴。加之在2016年實行的1.6L排量以下車型(含)購置稅減半的優惠利民政策,更推動了小排量車型在我國的發展。

為什麼B級車也要裝載小排量發動機?

B級車,也就是我們常說的中高級轎車,在很多人眼裡是一種行政、商務用途的車型,但其實隨着現在汽車逐漸成為人們生活中的陪伴工具,一輛空間更大,實用性更強,顏值頗高的B級車慢慢的成為了普羅大眾的家用車選擇。

我們熟知的本田雅閣、福特蒙迪歐、上汽大眾帕薩特,都是代表了各自品牌的B級車,相信也是很多朋友在購買家用車的時候考慮的對象車型;而作為一款合格的家用B級車,除了空間表現寬敞充裕,車身外觀漂亮精緻以外,更需要一款動力充足,燃油經濟性出色的小排量發動機作為用車成本控制的保障,所以現在B級車裝備一台優秀的小排量發動機,也是一個流行的趨勢所在。

例如上汽大眾帕薩特,可以說是好幾代人對於一台“豪華轎車”最初的印象車型,為了滿足更多用戶不同的需求,上汽大眾帕薩特推出了280TSI、330TSI、380TSI以及3.0L V6四種不同排量的車型供廣大消費者選擇;而售價親民、動力不俗、配置豐富、檔次感極高的帕薩特280TSI則成為了廣大家庭用車消費者的第一選擇。

小排量的帕薩特夠用嗎?

作為一台B級車裝載一台小排量渦輪增壓發動機,很多朋友第一直覺就是害怕排量太小,車子帶不動。

帕薩特280TSI採用了第三代EA211渦輪增壓發動機的動力總成,最大馬力150匹,峰值扭矩達到250牛米,從賬面參數來說已經不輸市面上主流的2.0L自吸發動機,要知道與其同級的本田雅閣2.0L發動機最大馬力也只是155匹,峰值扭矩僅有190牛米。

除了賬面參數的優勢,帕薩特280TSI所使用的EA211發動機使用缸內直噴技術,集成式排氣歧管,水冷式渦輪增壓器,以及可變氣門正時機構,能夠保證帕薩特280TSI有着充沛動力輸出效率的同時,更將油耗控製得更低,也將發動機的可靠性提高到一個更加優秀的水平。

除了可靠的發動機以外,帕薩特280TSI配備了駐車啟停及能量回收系統,啟停功能開啟狀態下,在剎車減速的過程中,產生的能量可以轉化成電能,為車輛用電儲備做出更多的補充,真正彰顯了科技對於環境保護當中做出的傑出貢獻。

作為一款B級車,帕薩特280TSI DSG尊榮版標配前後排頭部氣囊、主副駕駛位座椅電動調節、自動頭燈、遠近光氙氣大燈、後排獨立分區溫控空調等同級別同價位車型中罕見的豐富配置,真正做到將安全、科技、檔次感融為一體,多元化的配置也使得上汽大眾帕薩特280TSI在小排量B級車中樹立了形象標杆。

全文總結:現在的小排量渦輪增壓車型再也不是像十餘年前那種渦輪遲滯嚴重、響應遲鈍、油耗還特別高的形象示人,相反,隨着汽車工業的不斷進步與技術發展,搭載小排量渦輪增壓發動機的B級車正在以高效的工作效率、出色的燃油經濟性、以及卓越可靠的机械性能形象逐漸出現在我們生活當中。

也因為大環境政策的影響,小排量渦輪增壓車型未來將會是各大車廠相繼推出的車型,而作為將渦輪增壓技術植入較早,也讓民眾更信賴的大眾品牌,帕薩特280TSI則是一款大氣、可靠、經濟的品質之選。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※超省錢租車方案

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

※推薦台中搬家公司優質服務,可到府估價

5萬元的新SUV外觀極度個性 上市后要火的節奏?

99-12。19萬(非混動車型)元定位也是小型SUV,但是它採用的是1。5L、1。5T兩款發動機,搭配6擋雙離合的動力組合,所以價格應該比瑞風S2 mini要貴一些。江淮汽車-瑞風S2指導價:5。88-7。68萬瑞風S2比瑞風S2 mini的定位更高,而且採用的是HFC4GB2。

日前,據江淮汽車官方透露,江淮旗下的小型SUV,江淮瑞風S1將會正式更名為瑞風S2 mini,而且在12月12日正式開啟預售!

(瑞風S2 mini此前以瑞風S1為車名亮相)

它定位為入門小型SUV,所以在動力方面,瑞風S2 mini將會搭載一款1.3L自然吸氣發動機,最大功率為99馬力,峰值扭矩126牛米!與之搭配的是一款5速手動變速箱!

瑞風S2 mini的設計以年輕動感為主,前臉造型與瑞風S3如出一轍,而燈組內部帶有透鏡、LED日間行車燈。

(瑞風S2 mini此前以瑞風S1為車名亮相)

車尾的造型短促,採用了外掛式備胎,這讓它看起來頗有野性,同時也騰出了一些後備廂空間。

它的車身長寬高為3775/1685/1775mm、軸距為2390mm。車身較高,而且軸距比瑞風S2短100mm。

內飾採用了黑色的配色,這也讓它看起來更加年輕!採用了懸浮式中控屏的設計,下方的按鍵排列比較整齊。

儀錶盤的造型也比較簡潔,而整體的細節做工還是比較不錯。綜合來說,瑞風S2 mini的做工和設計還是不錯的,而其售價也值得我們多加期待。

競爭對手

比亞迪-元

指導價:5.99-12.19萬(非混動車型)

元定位也是小型SUV,但是它採用的是1.5L、1.5T兩款發動機,搭配6擋雙離合的動力組合,所以價格應該比瑞風S2 mini要貴一些。

江淮汽車-瑞風S2

指導價:5.88-7.68萬

瑞風S2比瑞風S2 mini的定位更高,而且採用的是HFC4GB2.3D 1.5L發動機,而且也提供CVT變速器。所以瑞風S2 mini的價格估計會比瑞風S2要低不少。

編者語:

從瑞風S2 mini的產品定位來看,它很有可能最終會給出一個極低的售價,而我大膽預測其定價區間可能鎖定4.8-7萬元之間!對於這款新的小型SUV,大家共同期待吧。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※回頭車貨運收費標準

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

【Flutter實戰】移動技術發展史

老孟導讀:大家好,這是【Flutter實戰】系列文章的第一篇,這並不是一篇Flutter技術文章,而是介紹智能手機操作系統、跨平台技術的演進以及我對各種跨平台技術看法的文章。

智能手機操作系統

塞班(Symbian)系統

後浪們可能都沒有聽說過塞班系統,而很多前浪們也會詫異,塞班是智能手機操作系統嗎?讓我們先來看下智能手機的定義:

智能手機,是指像個人電腦一樣,具有獨立的操作系統,獨立的運行空間,可以由用戶自行安裝軟件、遊戲、導航等第三方服務商提供的程序,並可以通過移動通訊網絡來實現無線網絡接入的手機類型的總稱。目前智能手機的發展趨勢是充分加入了人工智能、5G等多項專利技術,使智能手機成為了用途最為廣泛的專利產品。

所以按照如上的定義,塞班系統屬於智能手機操作系統,那為什麼很多人都認為塞班系統不屬於智能手機操作系統呢?主要是因為塞班和現在的Android、iOS智能系統比起來差遠了。

雖然現在塞班系統已經Game Over了,但當年塞班系統是當之無愧的王者,根本就沒有一個與之匹配的對手。

2008年12月2日,塞班公司被諾基亞收購。

2011年12月21日,諾基亞官方宣布放棄塞班品牌。由於缺乏新技術支持,塞班的市場份額日益萎縮。

截止至2012年2月,塞班系統的全球市場佔有量僅為3%。

2012年5月27日,諾基亞徹底放棄開發塞班系統,但是服務將一直持續到2016年。

2013年1月24日晚間,諾基亞宣布,今後將不再發布塞班系統的手機,意味着塞班這個智能手機操作系統,在長達14年的歷史之後,終於迎來了謝幕。

至此,塞班時代終結,一個時代的終結,必將伴隨着新時代的到來。

Windows Phone

Windows Phone(簡稱為WP)是微軟於2010年10月21日正式發布的一款手機操作系統,初始版本命名為Windows Phone7.0。

  • 2011年9月27日,微軟發布升級版Windows Phone 7.5,這是首個支持簡體中文的系統版本。
  • 2012年6月21日,微軟正式發布Windows Phone 8,全新的Windows Phone 8捨棄了老舊Windows CE內核,採用了與Windows系統相同的Windows NT內核,支持很多新的特性。由於內核的改變,所有Windows Phone 7.5系統的手機都將無法升級至Windows Phone 8。
  • 2015年1月22日,微軟將Windows Phone 10更名為Windows 10 for Phone。
  • 2015年5月14日,微軟官網正式將智能手機上的版本命名為“Windows 10 Mobile” 。
  • 2019年12月10日,微軟停止對Windows 10 Mobile的支持。

2019年12月10日這一天,微軟宣布停止對Windows 10 Mobile的支持,也就宣告Windows 10 Mobile告別了歷史的舞台。

Windows Phone當年的市場份額一度超過50%,到退出歷史的舞台,在我看來微軟犯了一個很大的錯誤:

那就是Windows Phone 8的發布,由於使用了新的內核導致以前的手機無法升級而且軟件不向下兼容,導致用戶和開發者極度不爽,用戶剛買了手機,結果你告訴用戶系統不能升級?

新系統導致以前開發的App無法運行,開發者重新開發一遍?而且還要維護兩套?

系統最核心的資產是生態,當你拋棄了開發者也就意味着生態的殘缺,沒有大量優質的應用用戶怎麼可能買你的手機?

Android

Android系統大家都非常熟悉了,畢竟是當前市場份額最大的移動操作系統,看一下Android的發展歷程:

  • 2003年10月,Andy Rubin等人創建Android公司,並組建Android團隊。
  • 2005年8月17日,Google低調收購了成立僅22個月的高科技企業Android及其團隊。安迪魯賓成為Google公司工程部副總裁,繼續負責Android項目。
  • 2008年,在GoogleI/O大會上,谷歌提出了AndroidHAL架構圖,在同年8月18號,Android獲得了美國聯邦通信委員會(FCC)的批准,在2008年9月,谷歌正式發布了Android 1.0系統,這也是Android系統最早的版本。
  • 2009年4月,谷歌正式推出了Android 1.5這款手機,從Android 1.5版本開始,谷歌開始將Android的版本以甜品的名字命名,Android 1.5命名為Cupcake。
  • 2010年10月,谷歌宣布Android系統達到了第一個裡程碑,即电子市場上獲得官方数字認證的Android應用數量已經達到了10萬個,Android系統的應用增長非常迅速。
  • 2011年8月2日,Android手機已佔據全球智能機市場48%的份額,並在亞太地區市場佔據統治地位,終結了塞班系統的霸主地位,躍居全球第一。
  • 今年(2020年)即將發布Android 11。

iOS

iOS是由蘋果公司開發的移動操作系統 。蘋果公司最早於2007年1月9日的Macworld大會上公布這個系統,其發展歷程如下:

  • 2007年10月17日,蘋果公司發布了第一個本地化iPhone應用程序開發包(SDK),並且計劃在2月發送到每個開發者以及開發商手中。
  • 2010年6月,蘋果公司將“iPhone OS”改名為“iOS”,同時還獲得了思科iOS的名稱授權。
  • 2010年第四季度,蘋果公司的iOS佔據了全球智能手機操作系統26%的市場份額。
  • 2013年6月10日,蘋果公司在WWDC 2013上發布了iOS 7,幾乎重繪了所有的系統App,去掉了所有的仿實物化,整體設計風格轉為扁平化設計。將於2013年秋正式開放下載更新。
  • 2016年9月14日,蘋果發布iOS 10正式版,這是蘋果推出移動操作系統以來最大的一次更新,尤其增加了很多特別適應中國國情的功能,比如騷擾電話識別、蘋果地圖進一步本地化等。
  • 2018年9月13日,2018蘋果秋季新品發布會上,蘋果CEO庫克介紹了蘋果生態的一些數據。他表示,搭載蘋果iOS系統設備已達20億部。
  • 2020年5月21日,蘋果發布iOS 13.5正式版,iOS 13.5加快了配備面容ID的設備在用戶佩戴口罩時显示密碼欄的速度,並加入了“暴露通知”API以支持來自公共衛生管理機構的COVID-19接觸追蹤App。

跨平台開發演進

2008年7月IPhone推出第一代手機IPhone 3G,同年9月谷歌正式發布了Android 1.0系統,標志著我們正式步入移動端發展期,按照技術開發的歷程移動端(目前特指Android和iOS)的發展大致可以分為4個階段:原生階段->Hybird階段->RN階段->Flutter 階段。

原生階段

使用原生語言(Android使用Java或Kotlin,iOS使用Objective-C 或 Swift )開發應用,稱之為原生階段

在此階段發現一樣的功能需要在Android和iOS兩端開發,開發和維護成本較高,同時無動態化更新能力,緊急問題的修復和添加新功能都需要到相應平台發版,尤其是iOS審核的周期非常長,在國內Android雖然有動態化方案,但如果上架Google Play很有可能審核不通過或者下架,iOS也有動態化,但蘋果官方基本審核不通過,所以原生的動態化更新受政策影響很大。

從開發者的角度出發,是否有一種方案可以開發一套代碼在多個平台運行且可以動態化更新,無需在走平台的審核。基於這個需求H5興起,也就是我們所說的Hybird階段。

Hybird階段

Hybird實現的基本原理是通過原生的WebView容器加載H5網頁進行渲染,通過JavaScript Bridge調用一部分系統能力,同步更新服務器上的H5網頁也實現了動態更新,俗稱混合應用。

當時大量的公司使用此方案進行開發,最出名的就是Facebook,早期的Facebook在H5上投入了大量的精力,一次開發、快速迭代這是使用H5技術巨大的優勢。

然而一切看似美好,但很快發現,H5方案存在致命的缺陷-用戶體驗極差

Facebook創始人兼CEO馬克·扎克伯格在接受採訪的時候承認:專註在HTML 5上面是他有史以來犯過的最大的錯誤。

然而福兮禍所伏,雖然在Facebook上大量使用H5而導致用戶體驗極差,但Facebook基於強大的H5技術積累開發出了偉大的React框架,此框架是React Native框架的基礎。

React Native階段

React Native簡稱RN,是FaceBook在2015年開源,基於 JavaScript,具備動態配置能力跨平台開發框架。React Native框架原理如下:

React Native 使用React開發,然後生成虛擬DOM樹,虛擬 DOM 是一個 JavaScript 的樹形結構,通過虛擬DOM樹映射到不同平台的本地控件,最終显示的UI是原生控件,因此在性能體驗上和原生非常相近。和React Native 類似的框架還有阿里巴巴的Weex框架,Weex是在React Native基礎上重新設計了一套開發模式,原理上和React Native 一樣。

React Native 解決了繼承了H5的優點,同時解決了性能體驗上的問題,2015年React Native一經發布,就在技術圈引起了巨大的反響,在當時看來React Native 是一個非常完美的跨平台解決方案,很快大量開發者湧入。

當年使用React Native 的開發者最擔心的不是React Native 性能如何?體驗如何?而是擔心蘋果會不會封掉React Native,可想而之React Native 的火爆程度,當年著名的JSPatch事件起初,起初大家都在說蘋果開始對React Native下手了,雖然後來證實和React Native無關,但多多少少都對React Native 開發者造成了一定的影響。

隨着時間的流逝,發現React Native 和原生橋接的成本非常高,在複雜場景下會出現嚴重的性能問題,比如早期的ListView滑動卡頓問題。

React Native要橋接到原生控件,但Android和IOS控件的差異導致React Native無法統一API,有的屬性IOS支持,Android不支持,有的Android支持,IOS不支持,這就導致經常需要開發Android和IOS兩套插件,隨着項目的複雜度提升,也導致維護成本大幅提升。

還有一個很大的問題就是React Native 依賴於 Facebook 的維護,而每次iOS和Android系統版本更新,很大程度上會受到影響。

小程序

從技術上來說,小程序(指微信小程序,下同)並不是新的跨平台方案,它使用瀏覽器內核來渲染界面,小部分由原生組件渲染,原理圖如下:

小程序的運行環境分成渲染層和邏輯層,通信會經由微信客戶端(Native)做中轉。

微信小程序目前來看是非常成功的,在我看來微信小程序成功主要原因並不是因為技術,而是生態,當然微信小程序體驗也是非常好的。

對商家來說,微信小程序擁有月活10億的微信用戶,獲客成本低,這是一個流量極佳的平台,因此很多商家開發了體驗極好的小程序,甚至一些商家把主要平台遷移到了微信小程序。

對於用戶來說,無需下載,用完就走,極大的提升了用戶體驗,微信提供基礎服務平台,商家獲客成本低,用戶體驗提升,三方形成完美的平衡,因此微信小程序的生態越來越完善。

除了小程序外,類似的方案還有百度的輕應用和快應用,但都不溫不火。

Flutter 階段

千呼萬喚始出來,主角-Flutter終於登場了,Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構建高質量的原生用戶界面。

Flutter吸收了前面的經驗,它既沒有使用WebView,也沒有使用原生控件進行繪製,而是自己實現了一套高性能渲染引擎來繪製UI,這個引擎就是大名鼎鼎的Skia,Skia是一個2D繪圖引擎庫,Chrome和Android都是採用Skia作為引擎。Flutter完美的解決了跨平台代碼復用和性能問題,大家都在感嘆:似乎UI迎來了終極解決方案。

Flutter局限性

Flutter並不是無所不能的,當你選取Flutter作為技術方案時,首先要了解Flutter無法實現哪些功能。

UI平台一致性

由於Flutter使用自己的引擎進行UI渲染,而不是用原生控件渲染,導致控件显示效果和原生不是完全一樣,雖然肉眼看起來基本一樣,但還是有一些細微的差別,尤其當Android和iOS系統升級導致原生控件效果發生變化時,Flutter開發的App並不會進行相應的變化,如果您的App需要原生控件保持完全一致,Flutter可能並不適合您。

動態化更新

動態化功能在國內來說是一項非常重要的功能,Google官方已經明確現階段不會實現動態化功能。

此功能並不是技術上無法實現,更多的還是政策和法律上的約束。

因此如果您的App需要動態化功能,那麼Flutter可能並不適合您。

總結

既然Flutter已經如此優秀了,那是不是以後使用Flutter就可以了呢?答案是否定的,未來很長一段時間應該是原生、Hybird、React Native、Flutter共存時代。

  • 原生開發是無法完全避開的,一些硬件(比如藍牙、傳感器等)功能、音視頻和ARVR等相關功能必須使用原生開發,有人說我開發藍牙功能沒用寫原生代碼啊,直接引入即可,你沒有寫,那是因為有人為你封裝好了第三方插件。
  • Hybird雖然有一些缺陷,但依然有其使用的場景,比如京東、天貓App中的營銷活動都是是H5實現的。
  • React Native可以使用原生控件渲染,因此,如果您需要使用原生控件而又想跨平台,React Native是不錯的選擇。

交流

老孟Flutter博客地址(330個控件用法):http://laomengit.com

歡迎加入Flutter交流群(微信:laomengit)、關注公眾號【老孟Flutter】:

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

網頁設計最專業,超強功能平台可客製化

※別再煩惱如何寫文案,掌握八大原則!

掌握SpringBoot-2.3的容器探針:基礎篇

歡迎訪問我的GitHub

  • 地址:https://github.com/zq2599/blog_demos
  • 內容:原創文章分類匯總,及配套源碼,涉及Java、Docker、K8S、DevOPS等

關於《SpringBoot-2.3容器化技術》系列

《SpringBoot-2.3容器化技術》系列,旨在和大家一起學習實踐2.3版本帶來的最新容器化技術,讓咱們的Java應用更加適應容器化環境,在雲計算時代依舊緊跟主流,保持競爭力;
全系列文章分為主題和輔助兩部分,主題部分如下:

  1. 《體驗SpringBoot(2.3)應用製作Docker鏡像(官方方案)》;
  2. 《詳解SpringBoot(2.3)應用製作Docker鏡像(官方方案)》;
  3. 《掌握SpringBoot-2.3的容器探針:基礎篇》;
  4. 《掌握SpringBoot-2.3的容器探針:深入篇》;
  5. 《掌握SpringBoot-2.3的容器探針:實戰篇》;
  • 輔助部分是一些參考資料和備忘總結,如下:
  1. 《SpringBoot-2.3鏡像方案為什麼要做多個layer》;
  2. 《設置非root賬號不用sudo直接執行docker命令》;
  3. 《開發階段,將SpringBoot應用快速部署到K8S》;

SpringBoot容器探針系列文章簡介

為了讓應用更適應容器化環境,SpringBoot2.3版本推出了新的探針技術,《掌握SpringBoot-2.3的容器探針》系列旨在與您一起學習和實踐這些新技術,分為三個階段:

  1. 基礎篇:即本文,對容器探針的相關知識點進行梳理和學習;
  2. 深入篇:繼續深入學習探針相關的知識點;
  3. 實戰篇:將springboot應用部署在kubernetes環境,並使用最新的探針技術;

探針特性的官方信息

  • 如下圖紅框所示,2.3版本的容器探針特性早在預覽版(v2.3.0.M4)就已經發布:

  • 如今v2.3.0.RELEASE已發布,可以放心的學習和使用該特性了,首先把基礎知識點列出來,確保準備工作OK;

知識點整理

下面是掌握探針技術所需的基礎知識,也是本文的主要內容:

  1. kubernetes的存活探針livenessProbe
  2. kubernetes的就緒探針readinessProbe
  3. SpringBoot的actuator

接下來逐個學習,有了這些知識積累,我們才能更好的閱讀官方資料,開發適合自己業務場景的探針;

kubernetes的存活探針livenessProbe

  1. kubernetes的探針涉及的內容是很多的,這裏只提和SpringBoot相關的部分;
  2. kubelet 使用存活探針livenessProbe來知道什麼時候要重啟容器;
  3. 下圖是kubernetes官網的存活探針示例,幾個關鍵參數已經做了詳細說明:
  1. 可見如果我們的SpringBoot應用發布到kubernetes環境,只要應用還健康,livenessProbe對應的地址就要能響應200-400的返回碼;

kubernetes的就緒探針readinessProbe

  1. 有時候,應用程序會暫時性的不能提供通信服務。例如,應用程序在啟動時可能需要加載很大的數據或配置文件,或是啟動后要依賴等待外部服務。在這種情況下,既不想殺死應用程序,也不想給它發送請求。Kubernetes 提供了就緒探測器來發現並緩解這些情況。容器所在 Pod 上報還未就緒的信息,並且不接受通過 Kubernetes Service 的流量。
  2. 就緒探測器的配置和存活探測器的配置相似,唯一區別就是要使用 readinessProbe字段,而不是 livenessProbe 字段;
  3. 簡單的說,就緒探針正常的容器,k8s就認為是可以對外提供服務的,相應的請求也會被調度到該容器上來;

SpringBoot的actuator

  1. 簡單來說,actuator是用來幫助用戶監控和操作SprinBoot應用的,這些監控和操作都可以通過http請求實現,如下圖,http://localhost:8080/actuator/health 地址返回的是應用的健康狀態:
  1. 下面是常用的actuator地址,訪問不同的地址可以得到不同的信息:
  1. 在SpringBoot-2.3版本中,actuator新增了兩個地址:/actuator/health/liveness/actuator/health/readiness,前者用作kubernetes的存活探針,後者用作kubernetes的就緒探針

畫外音:SpringBoot的探針技術就這點東西?

  1. 文章看到這裏,您可能覺得索然無味:所謂的容器探針特性如此簡單,新增兩個actuator地址留給kubernetes的存活和就緒探針用,只要這兩個地址響應正常,kubernetes就判定該容器正常;
  2. 大多數時候,上述結論並無不妥,SpringBoot官方給出的推薦配置如下圖,我們只要照搬即可:
  1. 冷靜下來仔細思考,有三個問題似乎沒有解決:
  • 首先,SpringBoot為kubernetes提供了兩個actuator項,但是那些並未部署在kubernetes的SringBoot應用呢?用不上這兩項也要對外暴露這兩個服務地址嗎?

  • 其次,就緒探針是什麼時候開始返回200返回碼的?應用啟動階段,業務服務可能需要一段時間才能正常工作,就緒探針要是提前返回了200,那k8s就認為容器可以正常工作了,這時候把外部請求調度過來是無法正常響應的,所以搞清楚就緒探針的狀態變化邏輯很重要;

  • 最後,也是最重要的一點:有的場景下,例如外部依賴服務異常、本地全局異常等情況下,業務不想對外提供服務,等到問題解決后業務又可以對外提供服務了,如果此時我們能自己寫代碼控制就緒探針的返回碼,那就做到了控制kubernetes是否將外部請求調度到此容器上,這可是個很實用的功能!

還需要繼續深入

面對上述三個問題您是否會感慨:看似簡單的容器探針技術,想要用好還需掌握更多知識,接下來的文章中咱們一起努力吧,從知識覆蓋到實戰操練,終究會掌握這門實用技術;

歡迎關注我的公眾號:程序員欣宸

https://github.com/zq2599/blog_demos

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準

Elasticsearch 別管原理,先run起來

少點代碼,多點頭髮

本文已經收錄至我的GitHub,歡迎大家踴躍star 和 issues。

https://github.com/midou-tech/articles

看文章有兩點需要注意:

  • 本公號講解的Elasticsearch是基於7.7.0版本,你們在閱讀一些相關書籍和博客注意版本,不同版本很多概念會有出入。

  • 文章寫作過程中會經常將Elasticsearch簡寫為Es,閱讀過程中需要注意。

一般學習一個新的技術或者產品,第一步就是用起來。什麼設計理論,框架源碼,都別和我談,先run起來。這也是在公司看別人項目的絕招。

用起來,有一個很明顯的點,是你能感受到他,不然天天看理論知識,看源碼會讓你覺得你好像懂了,但又心裏沒底,最終會導致你走火入魔。

今天龍叔的主題就是 學Es,先run起來,用起來之後在去探索內部更多問題和原理。

Elasticsearch

Elasticsearch安裝

Elasticsearch 的底層是開源庫 Lucene。但是,你沒法直接用 Lucene,必須自己寫代碼去調用它的接口。Elasticsearch 是 Lucene 的封裝,提供了 REST API 的操作接口,開箱即用。

Elasticsearch 需要 Java 8 環境。如果你的機器還沒安裝 Java,可以在網上找個教程安裝,注意要保證環境變量JAVA_HOME正確設置。

安裝完 Java,就可以跟着 官方文檔:https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-targz.html 安裝 Elasticsearch。我這裏就直接下載壓縮包比較簡單。

#mac和linux上安裝教程一樣的
# 下載
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-darwin-x86_64.tar.gz
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-darwin-x86_64.tar.gz.sha512
$ shasum -a 512 -c elasticsearch-7.7.0-darwin-x86_64.tar.gz.sha512 
#解壓
$ tar -xzf elasticsearch-7.7.0-darwin-x86_64.tar.gz
$ cd elasticsearch-7.7.0/

接着,進入解壓后的目錄,運行下面的命令,啟動 Elasticsearch。

$ ./bin/elasticsearch

如果一切正常,那可能是run起來了,Es默認打開9200端口。測試下是否啟動成功,用 curl 工具測試(這個工具後面會寫一篇文章介紹,還有上面用的wget),也可以在瀏覽器訪問。

$ curl localhost:9200 #測試命令
{
  "name" : "MacBook-Pro.local",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "Z1NxCjE4T6CgTjZmpAVe_A",
  "version" : {
    "number" : "7.7.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "81a1e9eda8e6183f5237786246f6dced26a10eaf",
    "build_date" : "2020-05-12T02:01:37.602180Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

請求9200端口,Elastic 返回一個 JSON 對象,包含當前節點、集群、版本等信息。

收到這樣一個JSON對象,說明啟動成功。

安裝整體沒什麼壓力,java環境裝好,基本就是開箱即用。程序員最喜歡使用這樣的中間件,開箱即用,從不管箱子裏面是啥。

基本概念

本來run起來就準備說搞點數據進去,在和Es進行交互起來,但是正在準備寫數據進索引的時候,發現不對勁。

可能有人根本不知道什麼是索引?什麼Document。於是 就來了,先普及下基本概念。

節點(Node) 與集群( Cluster)

Elastic 本質上是一個分佈式數據庫,允許多台服務器協同工作,每台服務器可以運行多個 Elastic 實例。

單個 Elastic 實例稱為一個節點(node)。一組節點構成一個集群(cluster)。

索引(Index)

Elastic 會索引所有字段,經過處理后寫入一個反向索引(Inverted Index),也經常稱之為倒排索引。查找數據的時候,直接查找該索引。

Elastic 數據管理的頂層單位就叫做 Index(索引)。它是單個數據庫的同義詞。每個 Index (即數據庫)的名字必須是小寫。

文檔(Document)

Index 裏面單條的記錄稱為 Document(文檔)。許多條 Document 構成了一個 Index。

寫點數據進Es

基本概念已經有了,知道查找是通過倒排索引進行的,所以數據肯定是存放在索引裏面的。

我們現在要寫數據進Es,其實就是把數據寫到Es的索引(index)中,前面已經把Es啟動起來了,並沒有創建索引。

今天寫數據就不寫代碼了,利用ES的一些封裝很好的接口,直接命令行操作,後期在用代碼寫數據進Es。

先創建一個index ,使用curl 工具在命令行操作,這是一個put請求。

$curl -X PUT 'localhost:9200/user'

查看索引是否以及創建成功

$ curl -X GET 'http://localhost:9200/_cat/indices?v'

這個get請求可以查看當前節點的所有索引

妥妥的已經創建成功

順便說下,刪除一個索引的命令,DELETE參數表示刪除

$curl -X DELETE 'localhost:9200/user'

到這裏索引已經創建好了,可以寫點數據進去了。使用接口 /index/_doc/id ,/索引名/_doc/doc_id

$ curl -X PUT -H 'Content-Type: application/json' 'localhost:9200/user/_doc/1' -d ' {  "name": "龍躍十二",  "title": "工程師",  "desc": "一個分享互聯網技術和心路歷程的star" }'

查看當前索引下的所有數據

$ curl 'localhost:9200/user/_search?pretty=true 

到這裏基本我們已經可以寫數據到指定索引了,生產場景不會這麼寫數據的,都是用代碼寫海量數據進ES的,這就幾條數據也沒什麼搜索性能可談的。

我之前工作中日誌數據都是TB級別的寫到Es中,當遇到這種數據量的搜索時才會感受到搜索引擎的魅力,才會意識到Es的重要性。

這裏主要是練手和跑通流程,所以造了一些數據到Es中

和ES進行交互

其實寫數據進Es已經是一種交互了,在講一些其他的交互接口

目前講的交互方式主要是通過原生的請求的方式,還沒有上升到界面操作,後期在學習的過程中會展現出來。

查詢交互

使用 GET 方法,直接請求/Index/_search,就會返回所有記錄。

$ curl 'localhost:9200/user/_search?pretty=true'
{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 3,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "user",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "name" : "龍躍十二",
          "title" : "工程師",
          "desc" : "一個分享互聯網技術和心路歷程的star"
        }
      },
      {
        "_index" : "user",
        "_type" : "_doc",
        "_id" : "3",
        "_score" : 1.0,
        "_source" : {
          "name" : "三y",
          "title" : "工程師",
          "desc" : "只有光頭才能變得更強"
        }
      },
      {
        "_index" : "user",
        "_type" : "_doc",
        "_id" : "2",
        "_score" : 1.0,
        "_source" : {
          "name" : "敖丙",
          "title" : "工程師",
          "desc" : "一個互聯網苟且偷生的工具人"
        }
      }
    ]
  }
}

上面代碼中,返回結果的 took字段表示該操作的耗時(單位為毫秒),timed_out字段表示是否超時,hits字段表示命中的記錄,裏面子字段的含義如下。

  • total:返回記錄數,本例是2條。
  • max_scor:最高的匹配程度,本例是1.0。
  • hits:返回的記錄組成的數組。

返回的記錄中,每條記錄都有一個_score字段,表示匹配的程序,默認是按照這個字段降序排列。

Es的查詢語法還有很多,後面在結合實戰項目的時候會講解其他語法,你也可以看下官網語法介紹 官網查詢語法。

數據操作交互

新增一條doc記錄的語法示例如下,可以不用指定doc_id的,Es會默認有一個doc_id。

$ curl -X PUT -H 'Content-Type: application/json' 'localhost:9200/user/_doc/2' -d ' {  "name": "敖丙",  "title": "工程師",  "desc": "一個互聯網苟且偷生的工具人" }'

刪除一條doc記錄的語法是 /Index/_doc/doc_id

$ curl -X DELETE  'localhost:9200/user/_doc/1'

更新一條記錄的語法示例

$ curl -X PUT -H 'Content-Type: application/json' 'localhost:9200/user/_doc/2' -d ' {  "name": "三太子敖丙",  "title": "工程師",  "desc": "一個互聯網苟且偷生的工具人" }'

總結一下

本篇文章,我們把Es從官網下載下來,可以run起來,可以寫數據進去,可以查詢,學習了一些簡單的交互語法。

當然Es的魅力不在於此,Es的魅力之一在於可以對海量數據進行高效的檢索。

下篇文章出一個關於Es的寫作大綱,方便大家在看的過程中有一個整理的輪廓。

Es整個知識點我也是邊學邊寫,有什麼不對的地方,還希望大佬們儘管指出來。

龍躍十二

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

網頁設計最專業,超強功能平台可客製化

※回頭車貨運收費標準

一個基於Consul的.NET Leader選舉類庫

前段時間有傳言說Consul將不能在我國繼續使用,后被查明是因法律問題Vault企業版產品不能在國內銷售。Valut和Consul都是HashiCorp公司的產品,並且都推出了開源版本,繼續使用開源版本都是沒有問題的,虛驚一場。Consul是一款優秀的服務發現和配置管理產品,基於其提供的Session機制,可以很方便的實現Leader選舉功能。這篇文章將介紹我編寫的一個基於Consul的.NET Leader選舉類庫。

基於Consul的Leader選舉原理

1、參加選舉的程序可以在Consul中創建一個Session,這個Session的存活狀態依賴於當前程序的Consul健康檢查狀態, 一旦健康檢查處於Critical狀態,則對應的Session就會失效。

2、使用這個Session去鎖定某個Consul Key/Value,只有一個Session能成功鎖住KV,擁有這個Session的程序即為Leader。

3、Leader選舉成功后,所有節點還要繼續阻塞查詢上邊的Consul Key/Value,如果KV綁定的Session失效了, 所有節點可以立即發現併發起一次Leader選舉,並選舉出1個Leader。

使用說明

1、啟動本機Consul

當前的版本依賴本機Consul,後續會支持配置遠程Consul地址。

如果本地環境已經配置Consul,保證其正常運行即可。

如果本地環境沒有配置Consul,可以下載后以開發模式快速啟動,以方便體驗Leader選舉功能。

下載地址:https://www.consul.io/downloads

啟動命令:./consul agent -dev

2、安裝Nuget包

NuGet包地址:https://www.nuget.org/packages/FireflySoft.LeaderElection

3、編寫Leader選舉代碼

首先創建LeaderElectionManager的一個實例,傳入服務名稱、服務Id、leader選舉選項等參數,然後調用Watch方法參与選舉,並在Watch方法中傳入Leader選舉結果的處理方法。

以控制台程序為例:

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("I am ElectionService1.");

            // 參与Leader選舉的多個程序應該使用相同的服務名
            // 參与Leader選舉的每個程序應該有唯一的服務Id
            LeaderElectionManager electionManager = new LeaderElectionManager("ElectionService", "ElectionService1", new LeaderElectionOptions());
            electionManager.Watch(LeaderElectCompletedEventHandler);

            Console.WriteLine("Start Election...");

            Console.Read();
        }

        private static void LeaderElectCompletedEventHandler(LeaderElectionResult result)
        {
            // 在這裏處理Leader選舉結果。
            Console.WriteLine($"LeaderElectCompleted, Result: {result.IsSuccess}, Current Leader: {result.State.CurrentLeaderId}.");
        }
    }

4、注意事項

選舉沉默期

LeaderElectionOptions中提供了一個重新選舉沉默期:ReElectionSilencePeriod,默認15s。應用場景如下:

當一個程序的Leader狀態失效時,它可能仍在處理某些事務,並且不能立即中止。 這時候如果其它節點馬上選舉成為Leader,並且開始處理數據,則可能導致數據不一致的狀態。

Leader優先選舉權

此類庫為Leader增加了優先選舉權。應用場景如下:

Leader狀態失效可能只是一種短暫的中斷導致的,系統會很快自動恢復,而業務事務的的啟動和中止需要進行複雜的處理, 所以我們仍然期望下一次Leader選舉時之前的Leader有優先選舉權,避免數據同步和加快系統恢復。

5、源碼開放

這麼好的東西當然要開源:https://github.com/bosima/FireflySoft.LeaderElection

參考文檔

1、Consul Session機制參考:

https://blog.bossma.cn/consul/consul-leader-election-solution/

https://www.consul.io/docs/internals/sessions

2、基於Session的Leader選舉機制參考:

https://learn.hashicorp.com/consul/developer-configuration/elections

 

如果你有關於Consul的任何使用問題歡迎加入千人Consul QQ交流群:234939415

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

台中搬家公司費用怎麼算?

太陽能支援防疫 日本企業「在宅支持」回饋方案 讓你在家也能省電費

文:宋瑞文(加州能源特約撰述)

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

母象吃下內塞鞭炮食物致死 印度鎖定3嫌調查

摘錄自2020年6月5日中央社報導

度克勒拉省一頭懷孕母象吃下塞有鞭炮的食物重傷死亡,引起克勒拉省長維加揚關注,他今天(5日)推文表示,警方已鎖定3名嫌犯,「正義必將伸張」。

維加揚說,省政府將致力找出人類與野生動物衝突事件增加的原因,氣候變遷可能對當地社區和動物產生不利影響。克勒拉省政府公共關係官方推特也推文說,省森林廳已根據1972年「野生動物(保護)法」立案調查母象吃到鞭炮致死案;這起案件由警方和森林部門組成聯合調查小組。

印度媒體引述目擊者指稱,看到2名男子把自製鞭炮塞入鳳梨中引誘飢餓的母象靠近,母象忍不住誘惑吃下鳳梨,2名男子立即揚長而去。

物種保育
生態保育
生物多樣性
國際新聞
印度
人象衝突
大象

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※推薦台中搬家公司優質服務,可到府估價

西伯利亞2萬噸柴油料外洩 普丁發布緊急狀態要徹查

摘錄自2020年6月4日自由時報報導

俄羅斯西伯利亞的北極圈內傳出嚴重漏油事件,約2萬噸柴油自諾里爾斯克(Norilsk)附近一處發電廠外洩,流入安柏那亞河(Ambarnaya River),經水路污染北極海,恐釀生態浩劫。而有關單位竟在兩天後才通報這起嚴重事故,讓總統普丁在視訊電話上怒飆負責人「難道我們必須從社群媒體上知道這起緊急事故?」同時今日下令進入緊急狀態。

綜合媒體報導,這起事件發生在5月29日,因金屬業巨擘諾里爾斯克鎳公司(Norilsk Nickel)建於永凍土上的發電廠備用油槽支撐架因氣候暖化下沉,導致大量油料外洩,克拉斯諾亞爾斯克邊疆區(Krasnoyarsk)監管單位指出,約有1萬5000噸油料流入附近的安柏那亞河,另外6000噸則滲入土中,官方媒體表示目前污染面積達350平方公里。就油量而言,這是俄國現代史上第二大漏油事件。

世界自然基金會(WWF)俄羅斯分部主管卡尼茲尼可夫(Alexey Knizhnikov)表示,因地理受限,當局很難派出大型艇除污,且安巴爾納亞河流入的湖泊又可透過水路通往生態脆弱的北極海。而俄國漁政單位評估,整條河的生態需要數十年才能恢復。

公害污染
污染治理
國際新聞
俄羅斯
漏油污染

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

網頁設計最專業,超強功能平台可客製化

南非「宰獅取骨」販賣給中國當藥材 專家擔憂致命病毒傳染

摘錄自2020年06月15日聯合報報導

英國保守黨前副主席邁克爾(Lord Ashcroft)近期推出新書「不公平的遊戲(Unfair Game)」,揭露了南非333個屠宰場,將大量獅子宰殺取骨,之後販賣給商人,以利中國和東南亞將其製作成傳統藥材,對此獸醫表示若獅子因病毒死亡,人類可能會因接觸其骨頭而感染。

根據「每日郵報」「太陽報」報導,中國和東南亞每年推動幾百萬英鎊(約千萬台幣)的獅子骨交易,他們將獅子骨視為傳統藥材,而獅子骨和虎骨也會被用來製作成葡萄酒和小飾品。

不過,邁克爾指出圈養的獅子在極為惡劣的環境中生長,牠們可能會將致命疾病傳播給人類,包括結核病或肉毒桿菌中毒,甚至引發一場大流行,南非普利托利亞的野生動物獸醫彼得(Peter Caldwell)表示肉毒桿菌中毒是一種會攻擊神經系統的疾病,可以通過被感染的骨頭和皮膚傳播給人類,另外布魯氏菌病也會透過獅子骨頭傳播,造成關節炎、心臟發炎、結核病、發燒等細菌感染。

物種保育
生活環境
生態保育
生物多樣性
國際新聞
中國
南非
屠宰場
人畜共通傳染病
蝙蝠與新興傳染病
獅子
公共衛生

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計最專業,超強功能平台可客製化

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家公司費用怎麼算?