通用電氣綠色汽車車隊計畫將持續至2015年

通用電氣日前公佈了購入2000台福特C-Max Energi的計畫,這是通用電氣組建30000台綠色汽車車隊計畫的一部分。

通用電氣發言人葛列格(Greg McCullough)稱,該公司目前有2000台投入運營,另已簽訂包括C-Max Energi在內的3000台電動車及天然氣皮卡訂單。2013年年初,通用電氣將投入5000輛新燃料車,並繼續引入更多電動車和天然氣汽車。

同時,通用電氣方面表示,引入電動車和天然氣汽車的長期規劃有助於進一步提升公司車隊的環保性和經濟性。正如葛列格所說,“我們計畫採用多元化的新燃料技術滿足車隊及客戶車隊需求。”

對於電動車的性能,葛列格指出,“它們表現不錯。我的同事都很喜歡駕駛電動車的感覺,我們還在員工家中安裝了通用電氣的WattStation充電站,以實現電動車充電效率的最大化。”

值得一提的是,兩年多前,通用電氣也曾宣稱將購入12000台沃藍達,但此次引入C-Max Energi並非意味著沃藍達購置計畫的擱淺。據悉,綠色汽車車隊計畫將持續至2015年。

目前,通用電氣已經宣佈購入的計畫只有沃藍達和C-Max Energi兩款車,共14000台。雖然雪佛蘭方面並不會擔心這場交易落空,由於沃藍達購入速度緩慢,很難實現雪佛蘭2012年美國45000輛的銷售目標。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

6700萬年前「神奇雞」化石出土 可能是雞、鴨的共同祖先

摘錄自2020年3月19日自由時報報導

英國劍橋大學古生物學家近日發表論文,揭露研究團隊在歐洲發現目前世界上最古老的現代鳥類化石,可追溯至6700萬年前,可能是地球上每隻雞、鴨等家禽的祖先。

綜合外媒報導,該鳥類化石保存良好,是從荷蘭及比利時邊境的一處採石場被發現,被專家正式稱為「Asteriornis maastrichtensis」,暱稱則是「Wonderchicken」,意為「神奇雞」,體型僅半隻綠頭鴨大,約400克重,過去可能生活在海岸線上。

專家依據骨頭特徵判斷,神奇雞化石非常接近現代雞或鴨子群體的共同祖先。此外,由於化石可追溯至6700萬年前,代表這種獨特的物種是生活在「白堊紀滅絕」(恐龍大滅絕)發生之前。

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

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

中國電動汽車產業展覽會

电动汽车是提高我国汽车产业竞争力、保障能源安全和发展低碳经济的重要途径,同时发展电动汽车也是我国汽车工业技术转型和培育战略性新兴产业的必然决择。
为深入贯彻《节能与新能源汽车产业发展规划(2012-2020)》和《“十二五”国家战略性新兴产业发展规划》等文件精神,培育战略性新兴产业,加快电动汽车产业化进程和示范推广普及应用步伐,引领产业发展,壮大产业集群,推动我国电动汽车产业快速健康发展。由重庆市商业委员会、中国汽车工程研究院、重庆市发展和改革委员会、重庆市社会科学院等单位举办的中国电动汽车产业展览会将于2013年3月在重庆举办。
本届活动以“绿色科技,畅想梦幻未来”为主题,紧紧围绕电动汽车产业发展,以展示展览为主线,力争通过万人试乘试驾、电动汽车爬坡拉力大赛、经销商大会,市长论坛、技术发展报告等活动。强化科技创新能力建设,提升产业核心竞争力,促进产业发展,加大电动汽车推广使用力度,积极发展配套产业,建立健全充换电等公共服务平台,完善销售流通渠道,抢占未来汽车产业战略制高点,进一步推动我国由汽车工业大国向汽车工业强国迈进。
中国电动汽车产业展览会
时间:2013年3月22-24日 地点:重庆国际博览中心

主办单位: 重庆市商业委员会 中国汽车工程研究院
重庆市发展和改革委员会 重庆社会科学院等
联合主办:博鳌国际汽车论坛组委会/中国化学与物理电源行业协会电源配件分会/中国化学与物理电源行业协会酸性蓄电池分会/ 北京汽车工程学会/河南省电动车辆工程协会/成都市新能源汽车产业发展联盟/佛山市南海区汽车行业协会/烟台市汽车工业协会/福建省汽车工业行业协会/广州汽车工业行业协会/湖北省汽车流通协会/南京汽车行业协会/泉州市汽车同业协会/陕西省汽车行业协会/陕西省汽车工程学会/四川省电力电子学会/四川省汽车产业协会/四川省汽车工程学会/威海市汽车流通行业协会/潍坊市汽车流通行业协会/无锡市机械汽车工业协会/厦门市出租汽车暨汽车租赁协会/重庆市电力行业协会/重庆市交通运输协会/重庆汽车工程学会/重庆市汽车摩托车运动协会等。
承办单位:重庆市立嘉会议展览有限公司
主要内容:
1、中国电动汽车产业展览会
本届活动以“绿色科技,畅想梦幻未来”为主题,紧紧围绕电动汽车产业发展,以展示展览为主线,力争通过万人试乘试驾、电动汽车爬坡拉力大赛、经销商大会,市长论坛、技术发展报告等活动。强化科技创新能力建设,提升产业核心竞争力,促进产业发展,加大电动汽车推广使用力度,积极发展配套产业,建立健全充换电等公共服务平台,完善销售流通渠道,抢占未来汽车产业战略制高点,进一步推动我国由汽车工业大国向汽车工业强国迈进。
整车集成展区:混合动力汽车(微混、轻混、中混、重混和插电式混合)、纯电动汽车、燃料电池汽车、电动客车、电动公交车、电动轿车、电动清洁车、电动观光车、电动货车、电动高尔夫球车、电动牵引车、电动警用巡逻车、电动房车、电动叉车、电动医疗车、电动邮政车特种电动车及其它各种新能源汽车等。
电池电机展区:动力电池、燃料电池、锂离子电池、锂聚合物电池、铅酸蓄电池、超级电容器产品设备等相关原材料;制造设备、测试仪器、各种动力电池与管理系统;低排放节能型发动机、混合动力发动机及清洁燃料发动机、电机、电机保护与控制技术电机电控系统等。
充电设施及公共平台建设展区:充电站智能网络项目规划及成果、 充电站项目规划及成果展示;充电站、充电机、充电桩、配电设备、变压器、电缆等相关基础设施;充换电池及电池管理系统;电能监视系统;供电解决方案、充电站配电设备、直接充电设备 、管理辅助设备、停车场充电设施、智能监控充电站供电解决方案、智能电网、输电并网技术解决方案。
零部件展区:整车总线与控制系统;储能装置等;能源管理系统;电力电容器、飞轮、逆变器、电热泵、电动助力转向、电动空调、功率模块等;相关材料、工艺、技术;相关检测、监控、试验、安全防护装备;维修、制造设备和工具;
电动车示范、试点城市成果展区:电动汽车推广应用经验与成果、电动汽车产业发展战略与规划。
其他展区:各地方政府有关机构、产业园区、金融机构、研究机构、大专院校以及相关企业。
2、2013中国重庆电动汽车万人试乘试驾活动
电动汽车普及难题除充电基础设施建设滞后等主因外,广大消费者对电动汽车的了解认知程度也是制约推广普及进程的又一主因。为了提高消费者对电动汽车的了解认知程度,强化推广力度,促进电动汽车产业化发展,进一步推动两江新区汽车城建设,更好的办好本届活动,组委会决定在中国电动汽车产业展览会期间举办中国(重庆)电动汽车万人试乘试驾活动。
3、2013中国重庆电动汽车爬坡拉力大赛
为了推广普及电动汽车,丰富中国电动汽车产业展览会内容。推动两江新区汽车城建设,培育电动汽车产业集群,促进电动汽车产业化进程。更好的办好本届活动。组委会拟定在中国电动汽车产业展览会期间举办中国重庆汽车爬坡拉力大赛。
本次赛事主要设定续航里程、加速、安全 性能速度测评频次主要指标的评比,力争通过此赛提升我国电动汽车产业的科技水平,带动相关产业发展,培育产业集群,进一步提升重庆两江汽车城在全球的影响力。宣传重庆、吸引优秀企业落户重庆,加速重庆电动汽车产业化进程。
4、首届中国电动汽车经销商大会
当前中国乃至世界范围内电动汽车产业异军突起,产业发展正处于十分关键的历史机遇期,同时我国也迎来电动汽车车型最高密度的投放期,市场需求强劲,尤其是其购车养车成本低廉、车型时尚观赏性强、低碳零排放促进环保消费等特点吸引了年轻消费者的目光,消费潜力巨大,市场前景广阔。为了进一步推广普及电动汽车,共同打造销售流通产业链,探索适合中国电动汽车发展的商业模式。组委会拟定在中国电动汽车产业展览会期间举办首届中国电动汽车经销商大会。

地址:重庆市南岸区开发路31号科尔国际商务大厦28-5 
电话:023-61221989 
传真:023-88638520
 

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

大陸國務院提倡公務/公車率先使用新能源汽車

中國大陸國務院總理李克強12日主持召開國務院常務會議,研究部署加快發展節能環保產業,促進資訊消費,拉動國內有效需求,推動經濟轉型升級。

會議指出,一要推動節能環保和再生產品消費。政府公務用車、公車要率先推廣使用新能源汽車,同步完善配套設施。到2015年,使高效節能產品市場佔有率提高到50%以上;二要提升產業技術裝備水準。推動高效鍋爐、高效電動機等領域節能技術裝備升級。加快大氣、水、土壤等污染治理技術裝備研發推廣。加大關鍵共性技術攻關,提高自主創新能力。發展壯大合同能源管理等節能環保服務業;三要加快節能環保重點工程建設,完善污水管網等城鎮環境基礎設施,開展綠色建築行動;四要營造有利的市場和政策環境,健全法規標準,完善價格、收費和土地政策;五是加大中央預算內投資和節能減排專項資金支持力度,繼續安排國有資本經營預算支出支援重點企業實施節能環保專案。廣泛開展國際交流和合作。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

傳三菱汽車將重啟PHV生產並擴增產能

據日經新聞今(19)日報導,汽車大廠三菱汽車(Mitsubishi Motors)將重啟已停擺長達約5個月的插電式油電混合車(PHV)「Outlander PHEV」的生產作業,且為了出口「Outlander PHEV」至歐洲市場,三菱汽車也計畫倍增其產能。

三菱汽車於今年1月開賣「Outlander PHEV」,之後於3月時宣佈因「Outlander PHEV」所搭載的鋰離子電池出包,故將停止生產及出貨。

報導指出,三菱汽車將利用名古屋製作所月產2,000台的規模重啟「Outlander PHEV」生產、之後並計劃於2014年5月底前將其月產能倍增至4,000台。

目前「Outlander PHEV」積壓的訂單約1.8萬台。而搭載出包鋰離子電池的電動車「i-MiEV」等其他車種也一度被迫停止生產,惟「i-MiEV」已於8月上旬前重啟生產。

據日本的調查報告指出,2012年全球插電式油電混合車(PHV)市場規模預估較2011年暴增500%至6萬台,預估2030年時將增至194萬台,將較2012年跳增約31倍。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

有趣的條漫版 HashMap,25歲大爺都能看懂

我是風箏,公眾號「古時的風箏」,一個兼具深度與廣度的程序員鼓勵師,一個本打算寫詩卻寫起了代碼的田園碼農!
文章會收錄在 JavaNewBee 中,更有 Java 後端知識圖譜,從小白到大牛要走的路都在裏面。回復「666」有高清學習路線圖。

因為寫文章的過程中畫了不少的圖,所以,我想,能不能用長圖的形式展現一次呢,結果圖片熬夜做了半天,最後出來的效果不是很好,哎,審美缺失吧。之後會有詳細的文字源碼解析版放出,敬請各位看官關注。

在 Java 中,最常用的數據類型是 8 中基本類型以及他們的包裝類型以及字符串類型,其次應該就是 ArrayList和HashMap了吧。HashMap存的是鍵值對類型的數據,其存儲和獲取的速度快、性能高,是非常好用的一個數據結構,每一個 Java 開發者都肯定用過它。

而且 HashMap的設計巧妙,其結構和原理也經常被拿去當做面試題。其中有很多巧妙的算法和設計,比如 Hash 算法、拉鏈法、紅黑樹設計等,值得每一個開發者借鑒學習。

先來看一下整個 Map家族的集成關係圖,一看東西還不少,但其他的可能都沒怎麼用過,只有 HashMap 最熟悉。

壯士且慢,先給點個贊吧,總是被白嫖,身體吃不消!

我是風箏,公眾號「古時的風箏」。一個兼具深度與廣度的程序員鼓勵師,一個本打算寫詩卻寫起了代碼的田園碼農!你可選擇現在就關注我,或者看看歷史文章再關注也不遲。

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

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

日產結盟三菱 衝刺北美及新興電動車市場

日產和三菱汽車周二(5)宣布策略結盟,將藉由共同開發電動車,共享工廠、產能和技術,並提升北美和新興市場汽車銷量。日產在聲明中表示,「日產已與三菱達成策略結盟,此舉將擴大雷諾與日產的盟友關係。」

三菱加入後,雷諾與日產的盟友將增加至5名,還包括德國戴姆勒和俄羅斯的AvtoVAZ,共同抵禦德國福斯和日本豐田的競爭。此外,雷諾的本國對手標緻雪鐵龍(PSA Peugeot Citroen)也與通用結盟,以節省成本。

2011年,日產和三菱成立合資公司NMKV,共同研發迷你車,本次的聲明表示,「預期現有的NMKV公司將共同研發新款小車,其中包括預計在全球銷售、特定版本的電動車。」

雷諾、日產和三菱表示,結盟後的首批新車之一,將是由雷諾子公司-雷諾三星汽車在南韓生產的大型車,該車款將掛上三菱的品牌在北美市場販售。第2款較小型的車款也是為三菱設計,係由雷諾研發,生產地點尚未決定。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

馬來西亞麥當勞 下月不主動提供塑膠吸管

摘錄自2018年7月29日蘋果日報馬來西亞報導

馬來西亞麥當勞連鎖速食店追上環保潮流,將於下月起不再主動向顧客提供塑膠吸管,發起「向吸管說不」的運動。

馬來西亞《新海峽時報》報導,雖然麥當勞仍未發出正式公告,但在吉隆坡孟沙和檳州的分店,已經在準備告示,預料在8月1日起,推行「向吸管說不」的運動,不再主動提供塑膠吸管,要用吸管的顧客要向櫃面人員索取。

根據數據,馬來西亞每日使用和丟棄3100萬支塑膠吸管,數量驚人,每支吸管需要200年時間才能分解。

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

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

東南大學研發出中國首輛無線充電電動汽車

據悉,東南大學近日研發出中國首輛無線充電電動汽車,這一技術還可以應用在家用電器、醫療設備等方面。無線電能傳輸技術即擺脫電力傳輸線路的束縛,直接通過空間磁場實現電力傳輸,為設備進行充電或供電。

電動汽車尾部安裝了一個接收端,而在地面的停車位上,裝了一個磁共振發射源,汽車通過磁共振接收能量,進而轉化為電能。東大研發的這輛3000瓦的無線充電電動汽車,慢充充滿電需要7—8小時,充滿可以跑180多公裏。

據東南大學電氣工程學院院長黃學良介紹,目前電動汽車無線充電有兩種方式,一種方式是電磁感應。只要在路面下面每隔幾英尺埋一段金屬線圈,就能利用磁場以無線方式傳輸大量電能,來驅動電動汽車。不過,這種技術對磁路設計要求苛刻,傳輸距離比較短,在大功率無線電能傳輸中有局限性。

直到另一種方式磁共振技術出現,無線電能傳輸技術才有了新的飛躍。東大研發的無線充電電動汽車用的正是磁共振技術。和電磁感應方式相比,這種方式輻射小,方向性要求不高,傳輸距離更長,傳輸效率高。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

架構設計 | 高併發流量削峰,共享資源加鎖機制

本文源碼:GitHub·點這裏 || GitEE·點這裏

一、高併發簡介

在互聯網的業務架構中,高併發是最難處理的業務之一,常見的使用場景:秒殺,搶購,訂票系統;高併發的流程中需要處理的複雜問題非常多,主要涉及下面幾個方面:

  • 流量管理,逐級承接削峰;
  • 網關控制,路由請求,接口熔斷;
  • 併發控制機制,資源加鎖;
  • 分佈式架構,隔離服務和數據庫;

高併發業務核心還是流量控制,控制流量下沉速度,或者控制承接流量的容器大小,多餘的直接溢出,這是相對複雜的流程。其次就是多線程併發下訪問共享資源,該流程需要加鎖機制,避免數據寫出現錯亂情況。

二、秒殺場景

1、預搶購業務

活動未正式開始,先進行活動預約,先把一部分流量收集和控制起來,在真正秒殺的時間點,很多數據可能都已經預處理好了,可以很大程度上削減系統的壓力。有了一定預約流量還可以提前對庫存系統做好準備,一舉兩得。

場景:活動預約,定金預約,高鐵搶票預購。

2、分批搶購

分批搶購和搶購的場景實現的機制是一致的,只是在流量上緩解了很多壓力,秒殺10W件庫存和秒殺100件庫存系統的抗壓不是一個級別。如果秒殺10W件庫存,系統至少承擔多於10W幾倍的流量衝擊,秒殺100件庫存,體系可能承擔幾百或者上千的流量就結束了。下面流量削峰會詳解這裏的策略機制。

場景:分時段多場次搶購,高鐵票分批放出。

3、實時秒殺

最有難度的場景就是準點實時的秒殺活動,假如10點整準時搶1W件商品,在這個時間點前後會湧入高併發的流量,刷新頁面,或者請求搶購的接口,這樣的場景處理起來是最複雜的。

  • 首先系統要承接住流量的湧入;
  • 頁面的不斷刷新要實時加載;
  • 高併發請求的流量控制加鎖等;
  • 服務隔離和數據庫設計的系統保護;

場景:618準點搶購,雙11準點秒殺,電商促銷秒殺。

三、流量削峰

1、Nginx代理

Nginx是一個高性能的HTTP和反向代理web服務器,經常用在集群服務中做統一代理層和負載均衡策略,也可以作為一層流量控制層,提供兩種限流方式,一是控制速率,二是控制併發連接數。

基於漏桶算法,提供限制請求處理速率能力;限制IP的訪問頻率,流量突然增大時,超出的請求將被拒絕;還可以限制併發連接數。

高併發的秒殺場景下,經過Nginx層的各種限制策略,可以控制流量在一個相對穩定的狀態。

2、CDN節點

CDN靜態文件的代理節點,秒殺場景的服務有這樣一個操作特點,活動倒計時開始之前,大量的用戶會不斷的刷新頁面,這時候靜態頁面可以交給CDN層面代理,分擔數據服務接口的壓力。

CDN層面也可以做一層限流,在頁面內置一層策略,假設有10W用戶點擊搶購,可以只放行1W的流量,其他的直接提示活動結束即可,這也是常用的手段之一。

話外之意:平時參与的搶購活動,可能你的請求根本沒有到達數據接口層面,就極速響應商品已搶完,自行意會吧。

3、網關控制

網關層面處理服務接口路由,一些校驗之外,最主要的是可以集成一些策略進入網關,比如經過上述層層的流量控制之後,請求已經接近核心的數據接口,這時在網關層面內置一些策略控制:如果活動是想激活老用戶,網關層面快速判斷用戶屬性,老用戶會放行請求;如果活動的目的是拉新,則放行更多的新用戶。

經過這些層面的控制,剩下的流量已經不多了,後續才真正開始執行搶購的數據操作。

話外之意:如果有10W人參加搶購活動,真正下沉到底層的搶購流量可能就1W,甚至更少,在分散到集群服務中處理。

4、併發熔斷

在分佈式服務的接口中,還有最精細的一層控制,對於一個接口在單位之間內控制請求處理的數量,這個基於接口的響應時間綜合考慮,響應越快,單位時間內的併發量就越高,這裏邏輯不難理解。

言外之意:流量經過層層控制,數據接口層面分擔的壓力已經不大,這時候就是面對秒殺業務中的加鎖問題了。

四、分佈式加鎖

1、悲觀鎖

機制描述

所有請求的線程必須在獲取鎖之後,才能執行數據庫操作,並且基於序列化的模式,沒有獲取鎖的線程處於等待狀態,並且設定重試機制,在單位時間后再次嘗試獲取鎖,或者直接返回。

過程圖解

Redis基礎命令

SETNX:加鎖的思路是,如果key不存在,將key設置為value如果key已存在,則 SETNX 不做任何動作。並且可以給key設置過期時間,過期后其他線程可以繼續嘗試鎖獲取機制。

藉助Redis的該命令模擬鎖的獲取動作。

代碼實現

這裏基於Redis實現的鎖獲取和釋放機制。

import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import javax.annotation.Resource;
@Component
public class RedisLock {

    @Resource
    private Jedis jedis ;

    /**
     * 獲取鎖
     */
    public boolean getLock (String key,String value,long expire){
        try {
            String result = jedis.set( key, value, "nx", "ex", expire);
            return result != null;
        } catch (Exception e){
            e.printStackTrace();
        }finally {
            if (jedis != null) jedis.close();
        }
        return false ;
    }

    /**
     * 釋放鎖
     */
    public boolean unLock (String key){
        try {
            Long result = jedis.del(key);
            return result > 0 ;
        } catch (Exception e){
            e.printStackTrace();
        }finally {
            if (jedis != null) jedis.close();
        }
        return false ;
    }
}

這裏基於Jedis的API實現,這裏提供一份配置文件。

@Configuration
public class RedisConfig {

    @Bean
    public JedisPoolConfig jedisPoolConfig (){
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig() ;
        jedisPoolConfig.setMaxIdle(8);
        jedisPoolConfig.setMaxTotal(20);
        return jedisPoolConfig ;
    }

    @Bean
    public JedisPool jedisPool (@Autowired JedisPoolConfig jedisPoolConfig){
        return new JedisPool(jedisPoolConfig,"127.0.0.1",6379) ;
    }

    @Bean
    public Jedis jedis (@Autowired JedisPool jedisPool){
        return jedisPool.getResource() ;
    }
}

問題描述

在實際的系統運行期間可能出現如下情況:線程01獲取鎖之後,進程被掛起,後續該執行的沒有執行,鎖失效后,線程02又獲取鎖,在數據庫更新后,線程01恢復,此時在持有鎖之後的狀態,繼續執行后就會容易導致數據錯亂問題。

這時候就需要引入鎖版本概念的,假設線程01獲取鎖版本1,如果沒有執行,線程02獲取鎖版本2,執行之後,通過鎖版本的比較,線程01的鎖版本過低,數據更新就會失敗。

CREATE TABLE `dl_data_lock` (
	`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
	`inventory` INT (11) DEFAULT '0' COMMENT '庫存量',
	`lock_value` INT (11) NOT NULL DEFAULT '0' COMMENT '鎖版本',
	PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '鎖機製表';

說明:lock_value就是記錄鎖版本,作為控制數據更新的條件。

<update id="updateByLock">
    UPDATE dl_data_lock SET inventory=inventory-1,lock_value=#{lockVersion}
    WHERE id=#{id} AND lock_value &lt;#{lockVersion}
</update>

說明:這裏的更新操作,不但要求線程獲取鎖,還會判斷線程鎖的版本不能低於當前更新記錄中的最新鎖版本。

2、樂觀鎖

機制描述

樂觀鎖大多是基於數據記錄來控制,在更新數據庫的時候,基於前置的查詢條件判斷,如果查詢出來的數據沒有被修改,則更新操作成功,如果前置的查詢結果作為更新的條件不成立,則數據寫失敗。

過程圖解

代碼實現

業務流程,先查詢要更新的記錄,然後把讀取的列,作為更新條件。

@Override
public Boolean updateByInventory(Integer id) {
    DataLockEntity dataLockEntity = dataLockMapper.getById(id);
    if (dataLockEntity != null){
        return dataLockMapper.updateByInventory(id,dataLockEntity.getInventory())>0 ;
    }
    return false ;
}

例如如果要把庫存更新,就把讀取的庫存數據作為更新條件,如果讀取庫存是100,在更新的時候庫存變了,則更新條件自然不能成立。

<update id="updateByInventory">
    UPDATE dl_data_lock SET inventory=inventory-1 WHERE id=#{id} AND inventory=#{inventory}
</update>

五、分佈式服務

1、服務保護

在處理高併發的秒殺場景時,經常出現服務掛掉場景,常見某些APP的營銷頁面,出現活動火爆頁面丟失的提示情況,但是不影響整體應用的運行,這就是服務的隔離和保護機制。

基於分佈式的服務結構可以把高併發的業務服務獨立出來,不會因為秒殺服務掛掉影響整體的服務,導致服務雪崩的場景。

2、數據庫保護

數據庫保護和服務保護是相輔相成的,分佈式服務架構下,服務和數據庫是對應的,理論上秒殺服務對應的就是秒殺數據庫,不會因為秒殺庫掛掉,導致整個數據庫宕機。

六、源代碼地址

GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent

推薦閱讀:《架構設計系列》,蘿蔔青菜,各有所需

序號 標題
00 架構設計:單服務.集群.分佈式,基本區別和聯繫
01 架構設計:分佈式業務系統中,全局ID生成策略
02 架構設計:分佈式系統調度,Zookeeper集群化管理
03 架構設計:接口冪等性原則,防重複提交Token管理
04 架構設計:緩存管理模式,監控和內存回收策略
05 架構設計:異步處理流程,多種實現模式詳解

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

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案