kafka認證
『壹』 求助,關於利用SSL進行Kafka安全認證的一些問題
Kafka是由LinkedIn設計的一個高吞吐量、分布式、基於發布訂閱模式的消息系統,使用Scala編寫,它以可水平擴展、可靠性、非同步通信和高吞吐率等特性而被廣泛使用。目前越來越多的開源分布式處理系統都支持與Kafka集成
『貳』 求再見!絕望先生人物簡介~
糸色 望
故事的主角,2年へ組班主任,任教國語科(即日文科),亦有教導數學科及倫理科的畫面出現過(但不明原因),是個超級消極的教師,毫無教學熱誠。經常自殺,但又極度怕死。口頭禪有「絕望啦!我對○○絕望啦!」、「死了的話怎麼辦?」等等。
在家排行第四,常以襦袢配行燈袴(明治時期起流行的日本古裝式樣之一)示人。日常用的物品亦充滿日式懷舊風格(接近昭和初年的風格)。但在家鄉,不用面對學生時,就會穿得吊兒郎當。喜歡閱讀、玩彈珠機、還有甜食,最愛看太宰治的《人間失格》(作者也愛看)。
除了負面思考之外,還相當孩子氣。他不願對人打開心扉,自喻為「鎖國」;也很記仇,將過去人們對他不好的地方記在一本叫「長恨歌」的筆記簿內。另外也有依賴他人、撒嬌的一面。另外,雖然嘴裡不說,不過他很易屈服於權威及一般社會的價值觀之下。
將名字橫寫的時候會變成「絕望」,因此被稱為「絕望老師」。但在中學的時候,已有人稱他作「絕望」。
女學生
風浦可符香(ふうら かふか)(筆名)
2年へ組的女生,學生編號是15號。在第10話中被誤記為14號。是個超積極少女。
善於交際,擅長深入並解讀他人的心理陰影。另外亦擅長調查活動,擁有不明的情報網路。愛為身邊的人與物改名(似是用作增添氣氛)。
口頭禪是「不可能有那樣的(東西、情況、物件),全都是○○喔。」(例:我的身邊不可能有那樣躲在家的人喔,那應該是座敷童子才對呢。」)
經常就望的負面話題,提出正面的獨特觀點。這些觀點往往會將故事的節奏逆轉,令原先主導話題的望變成被牽著走的一方。最近所使用的字詞均廣泛地帶有形而上的強烈狂熱(マニアック,maniac)意味。
家庭背景復雜,父母曾多次吊頸自殺,叔叔也曾坐牢。但是意外地可符香在這環境下,能夠養成極度正面思考的性格。
在幼年曾與日塔奈美在幼稚園同班。小二時轉校到名古屋後,曾與音無芽留同級,其後曾與小節浴同級。
有時會扮作望的女大學生鄰居,那位女大學生對他很好,會請他吃煮多了的咖哩飯(雖然後來證實那是過期了的食物)。望好像很在意她,她的照片也不時在他的家中出現,但不知道她的真實身份。
雖然作品中沒有明顯描寫,但能夠看得出可符香在多重意義中里,是個與望對立的角色。這種正面思考的模式,可說是與《妄想改造人改蔵》中的部長彩園鈴(彩園すず)近似的角色,不過彩園的正面思考是因為改蔵的言行而來,而非自發性的。
由於校方認為要多加註意她,因此望在點名簿上註明「要注意」字樣。
名字的由來是捷克的小說家弗蘭茲·卡夫卡(Franz Kafka)。另一個獲得考慮的源由是村上春樹的小說《海邊的卡夫卡》的男主角,在作品內使用「田村卡夫卡」(田村カフカ)的假名。
關於本名的推測
在第一集單行本中,風浦可符香的名字上標著「筆名」的記號。
不清楚她從事哪種創作活動,但偶爾會見到她的名字,出現在附錄漫畫的作者名一欄上。
她可能是其中一個期末考的成績中,班上排名的三位「沒有名字」的人。
幼稚園時候的照片中,曾被喚作「小杏」(杏ちゃん)(參照第10話)。依照日文五十音順序,原本應排在音無芽留的學號17號後面的可符香,卻排前至15號。新井老師在點學號16的木津千里前,先點了一位叫赤木的同學(參照第9話)。依上述證據推測,她的本名可能是赤木杏(あかぎ あん),與《紅發安妮》(《赤毛のアン》)諧音。可是點名簿上她的本名仍然給糊成一團,可見這說法還未得到作品內的文字證實,只能暫定為假說。
音無芽留(おとなし める)
2年へ組的女生,學生編號是17號。在第10話中,被誤記為16號。是個毒舌電郵少女。
由於極度害羞,因此只能靠手提電話的電郵與外界溝通,但在電郵內的言語則極度尖酸。
持續用不到手提電話的時候,她的精神會變得不安定、對白亦變成難以理解的文字(符號)。因此,手提電話的通訊盲點是她的天敵。
為了確保通訊無礙,她的校服上衣內側藏起了很多後備用電,以備不時之需。另外在座位上亦有設置相應的充電器。
她不用電話來通話, 所以緊急連絡網中也找不到她。
在打電郵時,旁邊會有「めるめる・・・」的日文擬態詞。這是在前作《妄想改造人改蔵》時,作者自創的詞語。作者希望能將這詞語在漫畫界廣泛應用,故表示「這是自由版權的,請大家(放心)使用它」(雖然實際上仍未廣泛被採用)。
初期設定中,有位外觀與常月纏的相同,但特徵為歌德蘿莉(Gothic lolita, 簡稱ゴスロリ)的學生。而該學生在本篇沒有登場,但她的雙馬尾發型就由現在的芽留繼承。
點名簿中標記著「拒絕接聽」(著信拒否)。
姓氏的由來是乖乖的(大人しい(おとなしい),名字是電郵(メール, mail)。
加賀愛(かが あい)
2年へ組的女生,學生編號是18號。是個加害妄想少女。
因為自我評價過低,因此對周圍的環境異常敏感,常常認為自己麻煩到別人,也認為自己的存在令所有事變得更糟。
經常自省,面對責任時願一力承擔。
具同理心,常將他人的痛苦視作自己的痛苦,亦不忍心放下困窘者不管。
由於性格使然,她經常躲在一旁,因此出場率極低。
名字的由來是「加害」(かがい),另外也有可能取自「加護亞衣」。
木津千里(きつ ちり)
2年へ組的女生,學生編號是17號。是個一板一眼的死硬派少女。
由於灰色地帶的存在,她被同學們稱作「班長」(委員長)。雖然事實上她並不是班長,但由於那種作風的關系,一直被人這樣的稱呼著。她的正職為茶道社社長。
由於自己對理想及完美的追求,將本來相當卷的長曲發電直,並將之正中分界。但是當頭發被觸碰或搖晃,發型就會受到破壞。她的闊額頭上,能使用「千里眼」(這是從她的名字引申而來的)。
她的上圍屬A罩杯(75厘米),但她穿著的是B罩杯內衣,中間的空隙則收藏了一把刀。皮膚年齡測定為28歲。除此之外,她還擁有「一級水平測定」 的證明(第8話)。因誤會而迫望跟自己結婚,但望對於女性關系的反抗意識非常強。未有尋求固中真相的她,對望抱有相當的好感,但往往拙於表達。
當未能將事情弄得有條理、清清楚楚時,會演變成失控的狀態(獵奇性格);同時,眼睛會變成菱形。而這種性格與『妄想改造人改蔵』中的名取羽美最為相近,不過相對羽美失控的機會比較多,千里多數以平常方式對答而已。不過她有可能是繼承羽美特質的角色,因為她在模仿班內殺人的詼諧(ネタ)時,曾表示自己「經驗豐富」。
與藤吉晴美似是老朋友的樣子,但她不承認晴美的作畫;因為晴美的漫畫以Yaoi為主,Yaoi的由來「沒有高潮、沒有結果、沒有意義」違反了千里的宗旨。另外她還限制晴美繪畫「清清楚楚」的四格漫畫,否則就否定她的漫畫作品;不過看來她在意的只是形式,卻不太理會漫畫內容。
日文的原作中,只有千里的「きっちり」(意指「(請弄)清楚」)對白才有標點符號(,。)。而一般在少年Magazine中連載的作品,除了感嘆式標點如「……」「!」「?」外,並不會在對白中使用其他標點符號。
點名簿上標著「應該沒犯過錯」。
名字的由來是「清清楚楚」(きっちり)。
木村卡愛拉(木村 カエレ/きむら かえれ)
2年へ組的女生,學生編號是21號。是個人格多國化(人格バイリンガル)的歸國子女。(但在中文版單行本上的譯法是雙語人格少女。)
她屬於精英班中的「國外班」學生,但是不清楚是從哪個國家回來的。由於以往經常轉校,未能融入各國文化,因此很多人叫她「木村回去!」(木村帰れ)。最終變成擁有傳統知性的日本人性格(此時名叫木村楓),及過激的外國人性格的多重人格者,通稱為「人格多國化少女」。其後有木村卡愛羅(木村カエロ)、木村卡愛爾娜木村カエルナ)等多重人格出現,顯示她有解離型認同異常(英)的症狀。
人格在「卡愛拉」的狀態下,動輒起訴他人。在每集單行本的卷末,均收錄了她在故事進行期間所發出的起訴書(告訴書)。相反的「楓」則以和為貴,將情感寄託在望的身上。但是作品內,「楓」的性格很少出現,大多數都是以外國人性格(卡愛拉)出現,並批評望。
她的制服跟其他女生不同。由於她是女生中身形最好的,因此誰都認為她是提供走光場面(少年漫畫常見的讀者服務)的人選。雖然她曾提出不滿,最終都會盡義務提供該種場面。
歌聲極難聽,但本人從無自覺。因瑪太郎的一句「好爛的歌喉」而告她「侵害名譽罪」及「妨害營業罪」(參照第三集的卷末訴訟)。
原本她應是為了提升全班成績而來的「國外班」學生,但在學期末考試的成績卻只得全班第30名(因為考試時中途離場)。
點名簿上註明「偉大的子女」(子女様)及「已和解」(示談済み)。
名字的由來是英日混血兒的搖滾樂歌手木村カエラ(日)(Kaela Kimula)及「回去」(帰れ)。
小節浴(小節 あびる/こぶし あびる)
2年へ組的女生,學生編號是22號。是個喜歡尾巴,疑似遭到家庭暴力虐待(家暴)的少女。
出場的時候,常常帶著滿身傷痕,褢緊綳帶及貼滿膠布,樣子甚是疼痛。實際上只是由於喜歡捉弄動物的尾巴,而引起的傷痕而已。
她除了喜歡捉弄動物尾巴外,更是尾巴的收集狂。另外她很積極地幫絕望老師找尋適合的尾巴,並強行裝上。
小時候因左眼受傷而接受過角膜移植手術,但為免看到角膜捐贈者所遺下的殘餘映像,因此她的左眼經常包裹著(打開的話會看見異色瞳孔(オッドアイ)。
她的尾巴收集活動,實際上高調地違反瀕臨絕種野生動植物國際貿易公約,但這種描寫仍能在作品內見到。
因有著濃厚的興趣,於是在動物園做兼職。
但在小學的時候,她飼養的小雞「小皮」(ピヨちゃん)被貓吃掉了,自此之後她對雞肉有了痛苦的回憶。
別人見到她傷痕累累的外觀,以為她是經常做運動的人,事實上她是運動白痴。相反,她在學期末考試得到全班第一名。
除了「尾巴迷」的特性以外,她在女生中時常保持冷靜的態度。相比起日塔奈美,她大多能直入話題核心。但當接觸到關於動物的話題時,能見到她愉快的表情。
初期出場時,所有人(包括絕望老師)均以為她是被父親施以家庭暴力,事實剛好相反。(參見第30話「黑暗火鍋」)
在初期設定中,她是沒有辮子的。
點名簿上註明「DV?」(即「疑似家暴?」,後被消去)「強裝尾巴」(しっぽ強要)
名字的由來是「沐浴於暴力中」(拳(を)浴びる)。
小森霧(こもり きり)
2年へ組的女生,學生編號是21號。是個閉門不出的少女。
對於心儀對象,她不會有直接而積極的行動,但會在背後默默付出。
由一年級開始就窩在家裡的逃學學生。何時都用毛巾布(冬天時用被褥)包裹著自己,比起校服,較愛穿體育服上衣作制服。經過可符香的「座敷童子作戰」後,終回到學校上課,卻變成了「不放學」少女。
在「座敷童子作戰」的事件後,她原有的家已被破壞,因此除了現在藏身的課室以外,已經沒有居所了。又,初出場時言詞粗暴的性格,在事件後亦變得溫順了。
由於她藏身的地方並不是へ組的課室,而平常都不到自己的班級上課,因此學業較差,期末考成績只得第24名。
對白數量因出場機會少而減低,但當自己有所主張的時候,就會現身。
日常的生活井井有條。望與糸色交的宿職室生活開始後,家事由她全盤代理。這類型的情節可能與『喜歡無賴男 (だめんず・うぉ~か~)』相似。
最初構思本作時,作者想創作關於不上學少女「奈美」與不放學少年「宇都宮」之間的戀愛故事。而這位不放學少年的設定後來演變成小森霧的設定藍本。
名字的由來是「結束家裡蹲的生活」(籠もりきり)。
關內・瑪麗亞・太郎(関內・マリア・太郎/せきうつ・マリア・たろう)
2年へ組的女生,學生編號是8號。是個非法進校.難民少女。通稱瑪太郎。
雖擁有淺黑的亞洲型膚色,但國藉不明。因為故鄉發生戰爭,由某個亞洲國家經貨櫃非法入境。她的戶籍及學號均向關內太郎買回來的(名字中的「瑪麗亞」是由日本的神父取的)。
由於在故鄉野外長大的關系,她擁有優秀的體力、視力及嗅覺。因為討厭穿鞋子跟內褲的感覺,所以經常不穿內褲及光著腳跑來跑去(冬天亦如是)。動靜與『DEATH NOTE』的L相似,例如抱膝蹲坐在椅子上。
與其他女生不同,她沒有出場用的便服,將校服當便服用。而且,她相當珍惜還能使用的物品,縱使一般城市人認為它們已是垃圾。這種態度讓大家都想保護她,最終蘊釀成「班上的國際救援活動」(クラス內ODA),木村卡愛拉命名)。
即使極度貧窮亦堅強地生活著,日常生活所需由班上的援助得來。不足時靠拾回來的食物及將大型垃圾循環再用,維持生活。
在她初出場時,絕望老師因出外搜集資料而請假了,因此老師對她一無所知,並在點名簿上註明「誰啊?」。但老師對此並無深究之意。
基於學藉是從男生買回來的,學號設定等方面,均有男性化處理的描寫。
貧困而食量大的特徵,可說跟《妄想改造人改蔵》中的山田先生相似。
名字的由來是「賣掉身份吧」(籍、売ったろう),但表面的說法是「遷移身份吧」(籍、移たろう)。
常月纏(常月 まとい/つねつき まとい)
2年へ組的女生,學生編號是25號。是個超戀愛性格・跟蹤狂少女。
擁有豐富的異性交往經驗,常因過剩的感情而發展成跟蹤狂的行為(至於詳細的原因有待說明,事實上本人對此問題並無自覺)。她很容易墮入情網,並配合心儀對象改變打扮。現在的衣著是和式女學生服裝(類似明治時代女學生流行的上學裝束)。台詞方面變成了古式日語語法(歴史的仮名遣い(日))(在日文原文中才能看到)。
視絕望先生為跟蹤目標後,每一話中都能見到她隱藏在某處;但絕望先生本人並不知情。因此每次她出場時,總是被老師問道:「你在這里的嗎?」(いたんですか?」)
由於保持跟蹤狂的姿態,平常在班上甚少發言;不過在談及有關戀愛的話題時,她會積極地提出意見。
點名簿上註明「重視愛情」(愛が重い)。
名字的由來是「經常離不開」(常(に)付き纏い)。
日塔奈美(ひとう なみ)
2年へ組的女生,學生編號是27號。是個普通(平凡)少女。
可符香的幼年朋友,常被形容為普通的人,原本是個有心理陰影、說著「普通」說話的逃學少女。初出場時,為引起各方注意而故意不上學、說著(本該) 會讓人擔心的說話(恐怕只是謊言)。由於相比同班同學,她是個價值觀與言行最中庸並符合一般人常識的人,因此未得到各方注意而受到打擊。
為了展現奈美「普通」的特徵,台詞會用「普通」的字句,她的故事也是「普通」地展開。這種角色的存在其實算是本作的異數,但由於沒有限制出場次數的要素,因此她的出場頻率極高。意外地上圍豐滿。她會使用個人電腦及麥金塔(但她被認為是以平價購入,並屬於輕量用戶)。成績也是平平,家庭也是很普通。但是她討厭被人認為「普通」。
在雜志的訪問中,作者曾表示本作的初期構想,是由奈美作女主角,與不放學少年的戀愛故事。
名字的由來是「普通人」(人並み)。
藤吉晴美(ふじよし はるみ)
2年へ組的女生,學生編號是28號。是個喜歡耳朵(迷)・配對連結中毒少女。
熱心的御宅族少女,對於眼鏡及貓耳非常執著。曾強行在絕望老師的頭上裝上狸貓耳朵。
對男男配(男性角色配對)抱有強烈興趣,亦對此有深入的認識。除此之外,對全套高達系列的認識相當深厚。從她的畫作和家中的同人志存貨可以發現,支持的配對包括鋼彈SEED的迪亞卡X伊薩克(ディアイザ),並曾經公開發言表示支持阿斯蘭X 卡佳里(アスカガ)。對於不接受的配對表現得相當抗拒,例如議長X雷(ギルレイ),也曾經因為配對問題和朋友翻臉,可說是標準的同人女。
她一直有參加同人志的製作,主題以yaoi為主,但拙於繪畫正常向漫畫(指異性戀的漫畫故事)。過去曾創作過同人雜志「ヂャンプ」(少年JUMP的諧仿)與町內會報中連載的四格漫畫(單行本上好像有刊載過)。
家裡有三位就讀於萌萌木動畫學院,而三兄是逃學生(不登校),但晴美對此相當介意,從沒向他人提及過。
姓氏的由來是腐女子(ふじょし), 名字的由來是晴海(はるみ),日本Comic Market舉行的地區。
三珠 真夜(みたま まよ)
2年へ組的女生,學生編號是30號。是個人如其貌的少女。
樣子長得很像會做壞事的人,但由於大家迂迴的思考方式,即使她做了壞事,人們也認為不是她做的。
特別喜歡欺負喜歡的事物,對其他人卻保持無差別的對待方式。
不知何故地喜歡在絕望老師的住所放火。
她在施行惡作劇時,將幼木棒插進狗的肛門中,這頭被稱為「棒犬」的小狗後來變成了每集都有出現的標志之一。
名字的由來是「人如其貌」(みたま まよ)。
小琴琴(ことのん)
2年へ組的女生,本名與學生編號不明。是個網路偶像。
現實中的身形肥胖,網頁上的相片都是經過電腦繪圖軟體的修改的。好像在網路上受歡迎的樣子。
持有Photoshop認證資格。
喜以歌德蘿莉(ゴスロリ)裝束示人。
名字的由來可能是日本聲優三石琴乃(みついし ことの)。
丸井、三角、正方
茶道部部員,學年、班級、學號均不明。
由於部長木津千里強制執行,三人的發型都被分成對稱的中分式樣。
由於茶道部室的名牌並沒有註明哪個名字對應哪位部員,因此並不清楚三人之間,誰人用哪個名字。
男學生
臼井 影郎(うすい かげろう)
2年へ組的男生,學生編號是3號。他是班長,頭發與存在感同樣稀簿。
原本擔當著班長的職務,但由於存在感稀簿,令同學們都想不起他是班長的事實。當人們見到頭上的地中海時,他的存在感才稍有增加。
在作品內的登場次數頗多。為表達稀簿的存在感,繪畫他的線條比其他角色來得幼細。
他利用存在感稀簿的特性進行偷窺,亦有戀足癖。
現在暗戀著小節浴,可是未能傳達心意。但是,讓人不可置信地,當小節浴養的小鳥死了以後,就在翌日邀請她去燒雞店吃東西。另外也發生過因偷取數百對小節浴的鞋子而被捕的事情。
他的角色定位與《妄想改造人改蔵》初期的地丹相似,但臼井的角色原型是《太陽戰士Bokaboka》的客席角色臼井ひろし。
名字的由來是「影子是薄的」(影が薄い),以及獅蟻(日文名為ウスバカゲロウ)。名字「影郎」可能取材自日本官能小說家「睦月影郎(日)」。
久藤准(くどう じゅん)
2年へ組的男生,學生編號是6號。是個天才說書人,能將任何事說成童話並感動人心。
喜愛閱讀,學校圖書館內大部份的書都已借閱過,夢想能讀遍天下的書。作為讀書家,對書籍的評價相當嚴厲。文學取向方面,有著古式寫實主義的傾向。學業成績也很優秀。
性格溫柔沉靜,在女生中頗受歡迎。
名字的由來是ジュンク堂書店,以及該書店的創辦人兼社長・工藤恭孝的父親「工藤淳」。
教師
新井智惠(あらい ちえ,當使用日文的訓讀時,會變成にい ちえ)
學生輔導室的女教師。
處事有條理而冷靜,能以靜默震懾人心。言詞精闢,而且毫不客氣,但卻讓人很受落。
這種有話說說的性格,延伸出施虐者的傾向,可見其SM女王特質的一面。
作品內曾暗示她做過風月場所兼職(運用其SM女王的特質)的事情,但真相未明。
名字的由來是德國哲學家弗里德里希·尼采(日文略稱作ニーチェ)。
甚六先生
絕望先生的同事,中年男子。初期單行本的人物介紹中列有他的名字。
喜歡玩彈珠機,從年輕時已迷上視覺系音樂,現時熱中於樂隊(ミュージシャン) Nightmare(日)的音樂。
與老實的外表相反,背上有刺青,似是擁有相當激烈的過去,但詳細未明。
名字的由來是螺江小姐(サザエさん)的伊佐坂甚六(家中長男,過著流浪人的生活)。
糸色家
是信州縣蔵井澤市的望族。
江戶時代是領主家族,到了明治時期成為財閥家族,因此現今對地方上仍有強大的影響力。
將姓氏的二字合並後,就成為了「絕」字,只要加上名字,就可以構成許多妙趣橫生的詞語。
糸色大
望的父親,亦是糸色家的當家。是位地方議員。
性格爽快,尤其當遇到好玩的事的時候。
曾於久藤準的想像圖出現過。
名字合並後,會變成「絕大」一詞。
糸色妙
望的母親,除了家族圖以外,暫未在作品的其他地方出現過。
名字合並後,會變成「絕妙」一詞。
糸色縁
家中長子,不知何故與父親斷絕了關系,有一子。
名字合並後,會變成「絕緣」一詞。
可符香稱他作「絕緣老師」(原文「絕緣先生」),可是原因未明。
糸色景
家中次子,終極的自我完結型藝術家。
極端的自我中心,無視他人的說話。即使是客觀的論調,也會用自己的主觀壓倒一切,行為乖僻。但與弟弟們不同,他的思考極度正面。
藝術作品看來受到好評,不時舉行展覽。擁有創作室(atelier)『景』,裡面有他的太太「由香」。
名字合並後,會變成「絕景」一詞。
糸色命
家中三子,是個醫生,經營「糸色醫院」,但因為「絕命醫生」之名而乏人問津。
無論何時都穿著白色醫生袍。平常知性而冷靜,但當聽到人們說「絕命醫生」(原文「絕命先生」)時就會暴走,因此在他面前這是禁語。
性格方面,比起其他兄弟,他較為好強要勝。尤其是對弟弟望,態度更為明顯。
名字合並後,會變成「絕命」一詞。可符香稱呼他為「絕命醫生」。
糸色望
四子,詳情請參閱前文
糸色倫
家中長女,是位年僅17歲的糸色流花道教師,擁有三千弟子;另外亦擁有優秀的劍道技術。
由於以淑女的方式培育,因此她的言行具有古風貴族小姐的風范,金錢的概念亦與一般人不同。
憧憬貧窮的生活,故不時來到東京的糸色望住所遊玩,平時住在家鄉。
名字合並後,會變成「絕倫」一詞。可符香稱呼她為「絕倫老師」。因此她跟兄長一樣,討厭自己的姓氏,並希望藉著出嫁,脫離「糸色」的姓氏。::名字合並後,會變成「絕倫」一詞。可符香稱呼她為「絕倫老師」。
糸色交
緣的兒子,由於在街上錯認糸色望作父親,因而後來住在一起。
由於在家族以外的地方長大,故用詞較少,但沒有惡劣的感覺。但是他有輕微的自殺傾向。又,由於現正處於對外界事物好奇而敏感的年齡,同時受到一連串的驚嚇(由絕望老師及2年へ組同學的騷動所造成的),因此對事物的心理陰影逐漸增加。
名字合並後,會變成「絕交」一詞。因此可符香稱呼他為「絕交弟弟」。
時田
糸色家的管家,全名不明,現經常伴隨糸色倫出入。
性格沉著,忠誠度高,擅長情報收集、貼身調查、以及秘密工作等活動。
角色的參考為《無敵鋼人泰坦3》出場的「時田管家」。作者讓他出場的理由是「為了對抗現有的管家漫畫」。針對負債管家么?
其他
以下是每話經常出現的隱藏圖像
(括弧標明開始成為隱藏圖像的話數)
常月纏(第5話)
視絕望先生為跟蹤目標後,差不多每話都有躲在絕望老師附近。
女性裙底走光的場面(パンチラ)(第7話)
由木村卡愛拉負責。
皇帝企鵝(第21話)
首次出場後,成為絕望先生家中的寵物,同時亦成為每話封面內隱藏的圖像之一。
鶴(第42話)
被喻為送子(糸色交)的仙鶴。
櫻井良子(櫻井よしこ)(第13話)
棒犬
被三珠真夜虐待的小狗。
麻生太郎(第59話)
手上會拿著不同的讀物,首度出場時在閱讀薔薇少女(Rozen Maiden)。
囧死的日本外相的客串
黑色的眼淚(第53話)
『叄』 kafka server.properties怎樣配置
Kafka是由LinkedIn設計的一個高吞吐量、分布式、基於發布訂閱模式的消息系統,使用Scala編寫,它以可水平擴展、可靠性、非同步通信和高吞吐率等特性而被廣泛使用。目前越來越多的開源分布式處理系統都支持與Kafka集成,其中Spark Streaming作為後端流引擎配合Kafka作為前端消息系統正成為當前流處理系統的主流架構之一。
然而,當下越來越多的安全漏洞、數據泄露等問題的爆發,安全正成為系統選型不得不考慮的問題,Kafka由於其安全機制的匱乏,也導致其在數據敏感行業的部署存在嚴重的安全隱患。本文將圍繞Kafka,先介紹其整體架構和關鍵概念,再深入分析其架構之中存在的安全問題,最後分享下Transwarp在Kafka安全性上所做的工作及其使用方法。
Kafka架構與安全
首先,我們來了解下有關Kafka的幾個基本概念:
Topic:Kafka把接收的消息按種類劃分,每個種類都稱之為Topic,由唯一的Topic Name標識。
Procer:向Topic發布消息的進程稱為Procer。
Consumer:從Topic訂閱消息的進程稱為Consumer。
Broker:Kafka集群包含一個或多個伺服器,這種伺服器被稱為Broker。
Kafka的整體架構如下圖所示,典型的Kafka集群包含一組發布消息的Procer,一組管理Topic的Broker,和一組訂閱消息的Consumer。Topic可以有多個分區,每個分區只存儲於一個Broker。Procer可以按照一定的策略將消息劃分給指定的分區,如簡單的輪詢各個分區或者按照特定欄位的Hash值指定分區。Broker需要通過ZooKeeper記錄集群的所有Broker、選舉分區的Leader,記錄Consumer的消費消息的偏移量,以及在Consumer Group發生變化時進行relalance. Broker接收和發送消息是被動的:由Procer主動發送消息,Consumer主動拉取消息。
然而,分析Kafka框架,我們會發現以下嚴重的安全問題:
1.網路中的任何一台主機,都可以通過啟動Broker進程而加入Kafka集群,能夠接收Procer的消息,能夠篡改消息並發送給Consumer。
2.網路中的任何一台主機,都可以啟動惡意的Procer/Consumer連接到Broker,發送非法消息或拉取隱私消息數據。
3.Broker不支持連接到啟用Kerberos認證的ZooKeeper集群,沒有對存放在ZooKeeper上的數據設置許可權。任意用戶都能夠直接訪問ZooKeeper集群,對這些數據進行修改或刪除。
4.Kafka中的Topic不支持設置訪問控制列表,任意連接到Kafka集群的Consumer(或Procer)都能對任意Topic讀取(或發送)消息。
隨著Kafka應用場景越來越廣泛,特別是一些數據隱私程度較高的領域(如道路交通的視頻監控),上述安全問題的存在猶如一顆定時炸彈,一旦內網被黑客入侵或者內部出現惡意用戶,所有的隱私數據(如車輛出行記錄)都能夠輕易地被竊取,而無需攻破Broker所在的伺服器。
Kafka安全設計
基於上述分析,Transwarp從以下兩個方面增強Kafka的安全性:
身份認證(Authentication):設計並實現了基於Kerberos和基於IP的兩種身份認證機制。前者為強身份認證,相比於後者具有更好的安全性,後者適用於IP地址可信的網路環境,相比於前者部署更為簡便。
許可權控制(Authorization):設計並實現了Topic級別的許可權模型。Topic的許可權分為READ(從Topic拉取數據)、WRITE(向Topic中生產數據)、CREATE(創建Topic)和DELETE(刪除Topic)。
基於Kerberos的身份機制如下圖所示:
Broker啟動時,需要使用配置文件中的身份和密鑰文件向KDC(Kerberos伺服器)認證,認證通過則加入Kafka集群,否則報錯退出。
Procer(或Consumer)啟動後需要經過如下步驟與Broker建立安全的Socket連接:
1.Procer向KDC認證身份,通過則得到TGT(票證請求票證),否則報錯退出
2.Procer使用TGT向KDC請求Kafka服務,KDC驗證TGT並向Procer返回SessionKey(會話密鑰)和ServiceTicket(服務票證)
3.Procer使用SessionKey和ServiceTicket與Broker建立連接,Broker使用自身的密鑰解密ServiceTicket,獲得與Procer通信的SessionKey,然後使用SessionKey驗證Procer的身份,通過則建立連接,否則拒絕連接。
ZooKeeper需要啟用Kerberos認證模式,保證Broker或Consumer與其的連接是安全的。
Topic的訪問控制列表(ACL)存儲於ZooKeeper中,存儲節點的路徑為/acl/<topic>/<user>,節點數據為R(ead)、W(rite)、C(reate)、D(elete)許可權的集合,如/acl/transaction/jack節點的數據為RW,則表示用戶jack能夠對transaction這個topic進行讀和寫。
另外,kafka為特權用戶,只有kafka用戶能夠賦予/取消許可權。因此,ACL相關的ZooKeeper節點許可權為kafka具有所有權限,其他用戶不具有任何許可權。
構建安全的Kafka服務
首先,我們為Broker啟用Kerberos認證模式,配置文件為/etc/kafka/conf/server.properties,安全相關的參數如下所示:
其中,authentication參數表示認證模式,可選配置項為simple, kerberos和ipaddress,默認為simple。當認證模式為kerberos時,需要額外配置賬戶屬性principal和對應的密鑰文件路徑keytab.
認證模式為ipaddress時,Procer和Consumer創建時不需要做任何改變。而認證模式為kerberos時,需要預先創建好相應的principal和keytab,並使用API進行登錄,樣例代碼如下所示:
public class SecureProcer extends Thread {
private final kafka.javaapi.procer.Procer<Integer, String> procer;
private final String topic;
private final Properties props = new Properties();
public SecureProcer(String topic) {
AuthenticationManager.setAuthMethod(「kerberos」);
AuthenticationManager.login(「procer1″, 「/etc/procer1.keytab」);
props.put(「serializer.class」, 「kafka.serializer.StringEncoder」);
props.put(「metadata.broker.list」,
「172.16.1.190:9092,172.16.1.192:9092,172.16.1.193:9092″);
// Use random partitioner. Don』t need the key type. Just set it to Integer.
// The message is of type String.
procer = new kafka.javaapi.procer.Procer<Integer, String>(
new ProcerConfig(props));
this.topic = topic;
『肆』 連接在一個安全的Kerberos認證蜂巢集群使用keytab問題,怎麼解決
擴展、可靠性、非同步通信和高吞吐率等特性而被廣泛使用。目前越來越多的開源分布式處理系統都支持與Kafka集成,其中Spark
Streaming作為後端流引擎配合Kafka作為前端消息系統正成為當前流處理系統的主流架構之一。
然而,當下越來越多的安全漏
洞、數據泄露等問題的爆發,安全正成為系統選型不得不考慮的問題,Kafka由於其安全機制的匱乏,也導致其在數據敏感行業的部署存在嚴重的安全隱患。本
文將圍繞Kafka,先介紹其整體架構和關鍵概念,再深入分析其架構之中存在的安全問題,最後分享下Transwarp在Kafka安全性上所做的工作及
其使用方法。
Kafka架構與安全
首先,我們來了解下有關Kafka的幾個基本概念:
Topic:Kafka把接收的消息按種類劃分,每個種類都稱之為Topic,由唯一的Topic Name標識。
Procer:向Topic發布消息的進程稱為Procer。
Consumer:從Topic訂閱消息的進程稱為Consumer。
Broker:Kafka集群包含一個或多個伺服器,這種伺服器被稱為Broker。
Kafka的整體架構如下圖所示,典型的Kafka集群包含一組發布消息的Procer,一組管理Topic的Broker,和一組訂閱消息的
Consumer。Topic可以有多個分區,每個分區只存儲於一個Broker。Procer可以按照一定的策略將消息劃分給指定的分區,如簡單的
輪詢各個分區或者按照特定欄位的Hash值指定分區。Broker需要通過ZooKeeper記錄集群的所有Broker、選舉分區的Leader,記錄
Consumer的消費消息的偏移量,以及在Consumer Group發生變化時進行relalance.
Broker接收和發送消息是被動的:由Procer主動發送消息,Consumer主動拉取消息。
然而,分析Kafka框架,我們會發現以下嚴重的安全問題:
網路中的任何一台主機,都可以通過啟動Broker進程而加入Kafka集群,能夠接收Procer的消息,能夠篡改消息並發送給Consumer。
網路中的任何一台主機,都可以啟動惡意的Procer/Consumer連接到Broker,發送非法消息或拉取隱私消息數據。
Broker不支持連接到啟用Kerberos認證的ZooKeeper集群,沒有對存放在ZooKeeper上的數據設置許可權。任意用戶都能夠直接訪問ZooKeeper集群,對這些數據進行修改或刪除。
Kafka中的Topic不支持設置訪問控制列表,任意連接到Kafka集群的Consumer(或Procer)都能對任意Topic讀取(或發送)消息。
隨著Kafka應用場景越來越廣泛,特別是一些數據隱私程度較高的領域(如道路交通的視頻監控),上述安全問題的存在猶如一顆定時炸彈,一旦內網被黑客
入侵或者內部出現惡意用戶,所有的隱私數據(如車輛出行記錄)都能夠輕易地被竊取,而無需攻破Broker所在的伺服器。
Kafka安全設計
基於上述分析,Transwarp從以下兩個方面增強Kafka的安全性:
身份認證(Authentication):設計並實現了基於Kerberos和基於IP的兩種身份認證機制。前者為強身份認證,相比於後者具有更好的安全性,後者適用於IP地址可信的網路環境,相比於前者部署更為簡便。
許可權控制(Authorization):設計並實現了Topic級別的許可權模型。Topic的許可權分為READ(從Topic拉取數據)、WRITE(向Topic中生產數據)、CREATE(創建Topic)和DELETE(刪除Topic)。
Broker啟動時,需要使用配置文件中的身份和密鑰文件向KDC(Kerberos伺服器)認證,認證通過則加入Kafka集群,否則報錯退出。
Procer(或Consumer)啟動後需要經過如下步驟與Broker建立安全的Socket連接:
Procer向KDC認證身份,通過則得到TGT(票證請求票證),否則報錯退出
Procer使用TGT向KDC請求Kafka服務,KDC驗證TGT並向Procer返回SessionKey(會話密鑰)和ServiceTicket(服務票證)
Procer
使用SessionKey和ServiceTicket與Broker建立連接,Broker使用自身的密鑰解密ServiceTicket,獲得與
Procer通信的SessionKey,然後使用SessionKey驗證Procer的身份,通過則建立連接,否則拒絕連接。
ZooKeeper需要啟用Kerberos認證模式,保證Broker或Consumer與其的連接是安全的。
Topic的訪問控制列表(ACL)存儲於ZooKeeper中,存儲節點的路徑為/acl/<topic>/<user>,
節點數據為R(ead)、W(rite)、C(reate)、D(elete)許可權的集合,如/acl/transaction/jack節點的數據為
RW,則表示用戶jack能夠對transaction這個topic進行讀和寫。
另外,kafka為特權用戶,只有kafka用戶能夠賦予/取消許可權。因此,ACL相關的ZooKeeper節點許可權為kafka具有所有許可權,其他用戶不具有任何許可權。
構建安全的Kafka服務
首先,我們為Broker啟用Kerberos認證模式,配置文件為/etc/kafka/conf/server.properties,安全相關的參數如下所示:
其中,authentication參數表示認證模式,可選配置項為simple, kerberos和ipaddress,默認為simple。當認證模式為kerberos時,需要額外配置賬戶屬性principal和對應的密鑰文件路徑keytab.
認證模式為ipaddress時,Procer和Consumer創建時不需要做任何改變。而認證模式為kerberos時,需要預先創建好相應的principal和keytab,並使用API進行登錄,樣例代碼如下所示:
public class SecureProcer extends Thread {
private final kafka.javaapi.procer.Procer<Integer, String> procer;
private final String topic;
private final Properties props = new Properties();
public SecureProcer(String topic) {
AuthenticationManager.setAuthMethod("kerberos");
AuthenticationManager.login("procer1", "/etc/procer1.keytab");
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("metadata.broker.list",
"172.16.1.190:9092,172.16.1.192:9092,172.16.1.193:9092");
// Use random partitioner. Don't need the key type. Just set it to Integer.
// The message is of type String.
procer = new kafka.javaapi.procer.Procer<Integer, String>(
new ProcerConfig(props));
this.topic = topic;
}
. . .
Topic許可權管理
Topic的許可權管理主要是通過AuthorizationManager這個類來完成的,其類結構如下圖所示:
其中,resetPermission(user, Permissions, topic) 為重置user對topic的許可權。
grant(user, Permissions, topic) 為賦予user對topic許可權。
revoke(user, Permissions, topic) 為取消user對topic許可權。
isPermitted(user, Permissions, topic) 為檢查user對topic是否具有指定許可權。
調用grant或revoke進行許可權設置完成後,需要commit命令提交修改到ZooKeeper
Kerberos模式下,AuthorizationManager需要先使用AuthenticationManager.login方法登錄,與ZooKeeper建立安全的連接,再進行許可權設置。示例代碼如下所示:
public class AuthzTest {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("authentication", "kerberos");
props.setProperty("zookeeper.connect", "172.16.2.116:2181,172.16.2.117:2181,172.16.2.118:2181");
props.setProperty("principal", "kafka/host1@TDH");
props.setProperty("keytab", "/usr/lib/kafka/config/kafka.keytab");
ZKConfig config = new ZKConfig(props);
AuthenticationManager.setAuthMethod(config.authentication());
AuthenticationManager.login(config.principal(), config.keytab());
AuthorizationManager authzManager = new AuthorizationManager(config);
// reset permission READ and WRITE to ip 172.16.1.87 on topic test
authzManager.resetPermission("172.16.1.87",
new Permissions(Permissions.READ, Permissions.WRITE), "test");
// grant permission WRITE to ip 172.16.1.87 on topic test
authzManager.grant("172.16.1.87", new Permissions(Permissions.CREATE), "test");
// revoke permission READ from ip 172.16.1.87 on topic test
authzManager.revoke("172.16.1.87", new Permissions(Permissions.READ), "test");
// commit the permission settings
authzManager.commit();
authzManager.close();
}
}
ipaddress認證模式下,取消和賦予許可權的操作如下所示:
public class AuthzTest {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("authentication", "ipaddress");
props.setProperty("zookeeper.connect",
"172.16.1.87:2181,172.16.1.88:2181,172.16.1.89:2181");
ZKConfig config = new ZKConfig(props);
// new authorization manager
AuthorizationManager authzManager = new AuthorizationManager(config);
// reset permission READ and WRITE to ip 172.16.1.87 on topic test
authzManager.resetPermission("172.16.1.87",
new Permissions(Permissions.READ, Permissions.WRITE), "test");
// grant permission WRITE to ip 172.16.1.87 on topic test
authzManager.grant("172.16.1.87", new Permissions(Permissions.CREATE), "test");
// revoke permission READ from ip 172.16.1.87 on topic test
authzManager.revoke("172.16.1.87", new Permissions(Permissions.READ), "test");
// commit the permission settings
authzManager.commit();
authzManager.close();
}
}
『伍』 kafka發送消息的時候報超時,有人遇到過嗎
Kafka是由LinkedIn設計的一個高吞吐量、分布式、基於發布訂閱模式的消息系統,使用Scala編寫,它以可水平擴展、可靠性、非同步通信和高吞吐率等特性而被廣泛使用。目前越來越多的開源分布式處理系統都支持與Kafka集成,其中SparkStreaming作為後端流引擎配合Kafka作為前端消息系統正成為當前流處理系統的主流架構之一。然而,當下越來越多的安全漏洞、數據泄露等問題的爆發,安全正成為系統選型不得不考慮的問題,Kafka由於其安全機制的匱乏,也導致其在數據敏感行業的部署存在嚴重的安全隱患。本文將圍繞Kafka,先介紹其整體架構和關鍵概念,再深入分析其架構之中存在的安全問題,最後分享下Transwarp在Kafka安全性上所做的工作及其使用方法。Kafka架構與安全首先,我們來了解下有關Kafka的幾個基本概念:Topic:Kafka把接收的消息按種類劃分,每個種類都稱之為Topic,由唯一的TopicName標識。Procer:向Topic發布消息的進程稱為Procer。Consumer:從Topic訂閱消息的進程稱為Consumer。Broker:Kafka集群包含一個或多個伺服器,這種伺服器被稱為Broker。Kafka的整體架構如下圖所示,典型的Kafka集群包含一組發布消息的Procer,一組管理Topic的Broker,和一組訂閱消息的Consumer。Topic可以有多個分區,每個分區只存儲於一個Broker。Procer可以按照一定的策略將消息劃分給指定的分區,如簡單的輪詢各個分區或者按照特定欄位的Hash值指定分區。Broker需要通過ZooKeeper記錄集群的所有Broker、選舉分區的Leader,記錄Consumer的消費消息的偏移量,以及在ConsumerGroup發生變化時進行relalance.Broker接收和發送消息是被動的:由Procer主動發送消息,Consumer主動拉取消息。然而,分析Kafka框架,我們會發現以下嚴重的安全問題:1.網路中的任何一台主機,都可以通過啟動Broker進程而加入Kafka集群,能夠接收Procer的消息,能夠篡改消息並發送給Consumer。2.網路中的任何一台主機,都可以啟動惡意的Procer/Consumer連接到Broker,發送非法消息或拉取隱私消息數據。3.Broker不支持連接到啟用Kerberos認證的ZooKeeper集群,沒有對存放在ZooKeeper上的數據設置許可權。任意用戶都能夠直接訪問ZooKeeper集群,對這些數據進行修改或刪除。4.Kafka中的Topic不支持設置訪問控制列表,任意連接到Kafka集群的Consumer(或Procer)都能對任意Topic讀取(或發送)消息。隨著Kafka應用場景越來越廣泛,特別是一些數據隱私程度較高的領域(如道路交通的視頻監控),上述安全問題的存在猶如一顆定時炸彈,一旦內網被黑客入侵或者內部出現惡意用戶,所有的隱私數據(如車輛出行記錄)都能夠輕易地被竊取,而無需攻破Broker所在的伺服器。Kafka安全設計基於上述分析,Transwarp從以下兩個方面增強Kafka的安全性:身份認證(Authentication):設計並實現了基於Kerberos和基於IP的兩種身份認證機制。前者為強身份認證,相比於後者具有更好的安全性,後者適用於IP地址可信的網路環境,相比於前者部署更為簡便。許可權控制(Authorization):設計並實現了Topic級別的許可權模型。Topic的許可權分為READ(從Topic拉取數據)、WRITE(向Topic中生產數據)、CREATE(創建Topic)和DELETE(刪除Topic)。基於Kerberos的身份機制如下圖所示:Broker啟動時,需要使用配置文件中的身份和密鑰文件向KDC(Kerberos伺服器)認證,認證通過則加入Kafka集群,否則報錯退出。Procer(或Consumer)啟動後需要經過如下步驟與Broker建立安全的Socket連接:1.Procer向KDC認證身份,通過則得到TGT(票證請求票證),否則報錯退出2.Procer使用TGT向KDC請求Kafka服務,KDC驗證TGT並向Procer返回SessionKey(會話密鑰)和ServiceTicket(服務票證)3.Procer使用SessionKey和ServiceTicket與Broker建立連接,Broker使用自身的密鑰解密ServiceTicket,獲得與Procer通信的SessionKey,然後使用SessionKey驗證Procer的身份,通過則建立連接,否則拒絕連接。ZooKeeper需要啟用Kerberos認證模式,保證Broker或Consumer與其的連接是安全的。Topic的訪問控制列表(ACL)存儲於ZooKeeper中,存儲節點的路徑為/acl//,節點數據為R(ead)、W(rite)、C(reate)、D(elete)許可權的集合,如/acl/transaction/jack節點的數據為RW,則表示用戶jack能夠對transaction這個topic進行讀和寫。另外,kafka為特權用戶,只有kafka用戶能夠賦予/取消許可權。因此,ACL相關的ZooKeeper節點許可權為kafka具有所有許可權,其他用戶不具有任何許可權。構建安全的Kafka服務首先,我們為Broker啟用Kerberos認證模式,配置文件為/etc/kafka/conf/server.properties,安全相關的參數如下所示:其中,authentication參數表示認證模式,可選配置項為simple,kerberos和ipaddress,默認為simple。當認證模式為kerberos時,需要額外配置賬戶屬性principal和對應的密鑰文件路徑keytab.認證模式為ipaddress時,Procer和Consumer創建時不需要做任何改變。而認證模式為kerberos時,需要預先創建好相應的principal和keytab,並使用API進行登錄,樣例代碼如下所示:{privatefinalkafka.javaapi.procer.Procerprocer;privatefinalStringtopic;privatefinalPropertiesprops=newProperties();publicSecureProcer(Stringtopic){AuthenticationManager.setAuthMethod(「kerberos」);AuthenticationManager.login(「procer1″,「/etc/procer1.keytab」);props.put(「serializer.class」,「kafka.serializer.StringEncoder」);props.put(「metadata.broker.list」,「172.16.1.190:9092,172.16.1.192:9092,172.16.1.193:9092″);//Userandompartitioner.Don』tneedthekeytype.JustsetittoInteger.//ThemessageisoftypeString.procer=newkafka.javaapi.procer.Procer(newProcerConfig(props));this.topic=topic;}...Topic許可權管理Topic的許可權管理主要是通過AuthorizationManager這個類來完成的,其類結構如下圖所示:其中,resetPermission(user,Permissions,topic)為重置user對topic的許可權。grant(user,Permissions,topic)為賦予user對topic許可權。revoke(user,Permissions,topic)為取消user對topic許可權。isPermitted(user,Permissions,topic)為檢查user對topic是否具有指定許可權。調用grant或revoke進行許可權設置完成後,需要commit命令提交修改到ZooKeeperKerberos模式下,AuthorizationManager需要先使用AuthenticationManager.login方法登錄,與ZooKeeper建立安全的連接,再進行許可權設置。示例代碼如下所示:publicclassAuthzTest{publicstaticvoidmain(String[]args){Propertiesprops=newProperties();props.setProperty(「authentication」,「kerberos」);props.setProperty(「zookeeper.connect」,「172.16.2.116:2181,172.16.2.117:2181,172.16.2.118:2181″);props.setProperty(「principal」,「kafka/host1@TDH」);props.setProperty(「keytab」,「/usr/lib/kafka/config/kafka.keytab」);ZKConfigconfig=newZKConfig(props);AuthenticationManager.setAuthMethod(config.authentication());AuthenticationManager.login(config.principal(),config.keytab());=newAuthorizationManager(config);//.16.1.87ontopictestauthzManager.resetPermission(「172.16.1.87″,newPermissions(Permissions.READ,Permissions.WRITE),「test」);//grantpermissionWRITEtoip172.16.1.87ontopictestauthzManager.grant(「172.16.1.87″,newPermissions(Permissions.CREATE),「test」);//revokepermissionREADfromip172.16.1.87ontopictestauthzManager.revoke(「172.16.1.87″,newPermissions(Permissions.READ),「test」);//.commit();authzManager.close();}}ipaddress認證模式下,取消和賦予許可權的操作如下所示:publicclassAuthzTest{publicstaticvoidmain(String[]args){Propertiesprops=newProperties();props.setProperty(「authentication」,「ipaddress」);props.setProperty(「zookeeper.connect」,「172.16.1.87:2181,172.16.1.88:2181,172.16.1.89:2181″);ZKConfigconfig=newZKConfig(props);//newauthorizationmanager=newAuthorizationManager(config);//.16.1.87ontopictestauthzManager.resetPermission(「172.16.1.87″,newPermissions(Permissions.READ,Permissions.WRITE),「test」);//grantpermissionWRITEtoip172.16.1.87ontopictestauthzManager.grant(「172.16.1.87″,newPermissions(Permissions.CREATE),「test」);//revokepermissionREADfromip172.16.1.87ontopictestauthzManager.revoke(「172.16.1.87″,newPermissions(Permissions.READ),「test」);//.commit();authzManager.close();}}總結與展望本文通過介紹Kafka現有架構,深入挖掘其中存在的安全問題,並給出Transwarp在Kafka安全上所做的工作及其使用方式。然而,縱觀Hadoop&Spark生態系統,安全功能還存在很多問題,各組件的許可權系統獨立混亂,缺少集中易用的賬戶管理系統。某些組件的許可權管理還很不成熟,如Spark的調度器缺少用戶的概念,不能限制具體用戶使用資源的多少。Transwarp基於開源版本,在安全方面已有相當多的積累,並持續改進開發,致力於為企業用戶提供一個易用、高效、安全和穩定的基礎數據平台。
『陸』 kafka 集群 必須用zookeeper嗎
(1)解壓為zookeepertar -xf -C /home/myuser/zookeeper/ 復制zookeeper文件夾3份,分別重名名為zookeeperA,zookeeperB,zookeeperC。 並且創建數據快照以及日誌存放文件夾,命名為zooA,zooB,zooC。 (2)編輯對應的zookeeper配置文件
『柒』 如何決定kafka集群中話題的分區的數量
如何決定kafka集群中topic,partition的數量,這是許多kafka用戶經常遇到的問題。本文列舉闡述幾個重要的決定因素,以提供一些參考。
分區多吞吐量更高
一個話題topic的各個分區partiton之間是並行的。在procer和broker方面,寫不同的分區是完全並行的。因此一些昂貴的操作比如壓縮,可以獲得更多的資源,因為有多個進程。在consumer方面,一個分區的數據可以由一個consumer線程在拉去數據。分區多,並行的consumer(同一個消費組)也可以多。因此通常,分區越多吞吐量越高。
基於吞吐量可以獲得一個粗略的計算公式。先測量得到在只有一個分區的情況下,Procer的吞吐量(P)和Consumer的吞吐量(C)。那如果總的目標吞吐量是T的話,max(T/P,T/C)就是需要的最小分區數。在單分區的情況下,Procer的吞吐量可以通過一些配置參數,比如bath的大小、副本的數量、壓縮格式、ack類型來測得。而Consumer的吞吐量通常取決於應用程序處理每一天消息邏輯。這些都是需要切合實際測量。
隨著時間推移數據量的增長可能會需要增加分區。有一點需要注意的是,Procer者發布消息通過key取哈希後映射分發到一個指定的分區,當分區數發生變化後,會帶來key和分區映射關系發生變化。可能某些應用程序依賴key和分區映射關系,映射關系變化了,程序就需要做相應的調整。為了避免這種key和分區關系帶來的應用程序修改。所以在分區的時候盡量提前考慮,未來一年或兩年的對分區數據量的要求。
除了吞吐量,還有一些其他的因素,在定分區的數目時是值得考慮的。在某些情況下,太多的分區也可能會產生負面影響。
分區多需要的打開的文件句柄也多
每個分區都映射到broker上的一個目錄,每個log片段都會有兩個文件(一個是索引文件,另一個是實際的數據文件)。分區越多所需要的文件句柄也就越多,可以通過配置操作系統的參數增加打開文件句柄數。
分區多增加了不可用風險
kafka支持主備復制,具備更高的可用性和持久性。一個分區(partition)可以有多個副本,這些副本保存在不同的broker上。每個分區的副本中都會有一個作為Leader。當一個broker失敗時,Leader在這台broker上的分區都會變得不可用,kafka會自動移除Leader,再其他副本中選一個作為新的Leader。Procer和Consumer都只會與Leader相連。
一般情況下,當一個broker被正常關機時,controller主動地將Leader從正在關機的broker上移除。移動一個Leader只需要幾毫秒。然當broker出現異常導致關機時,不可用會與分區數成正比。假設一個boker上有2000個分區,每個分區有2個副本,那這樣一個boker大約有1000個Leader,當boker異常宕機,會同時有1000個分區變得不可用。假設恢復一個分區需要5ms,1000個分區就要5s。
分區越多,在broker異常宕機的情況,恢復所需時間會越長,不可用風險會增加。
分區多會增加點到點的延遲
這個延遲需要體現在兩個boker間主備數據同步。在默認情況下,兩個boker只有一個線程負責數據的復制。
根據經驗,每個boker上的分區限制在100*b*r內(b指集群內boker的數量,r指副本數量)。
分區多會增加客戶端的內存消耗
kafka0.8.2後有個比較好的特色,新的Procer可以允許用戶設置一個緩沖區,緩存一定量的數據。當緩沖區數據到達設定量或者到時間,數據會從緩存區刪除發往broker。如果分區很多,每個分區都緩存一定量的數據量在緩沖區,很可能會佔用大量的內存,甚至超過系統內存。
Consumer也存在同樣的問題,會從每個分區拉一批數據回來,分區越多,所需內存也就越大。
根據經驗,應該給每個分區分配至少幾十KB的內存。
總結
在通常情況下,增加分區可以提供kafka集群的吞吐量。然而,也應該意識到集群的總分區數或是單台伺服器上的分區數過多,會增加不可用及延遲的風險。
『捌』 spark讀kafka 安全認證 求大神指導,可以支付財富值,也可以支付寶。。
kafka的常用命令
新建一個topic
./bin/kafka-topics.sh --create --zookeeper hadoop04:2181,hadoop05:2181,hadoop06:2181 --partition 3 --replication-factor 3 --topic test-0
test-0是topic的名字
replication-factor 3 副本數
topic存儲的是元數據,通過它找到真實的數據
改變分區
./bin/kafka-topics.sh --alter --zookeeper 192.168.14.131:2181,192.168.14.131:2182,192.168.14.131:2183 --partition 5 --topic test03
分區信息查詢
./bin/kafka-topics.sh --describe --zookeeper hadoop04:2181,hadoop05:2181,hadoop06:2181 --topic test-0
結果為:leader主分區(broker Id) replicationfactor副本數 Isr是否存活(存儲的順序)
Topic:test-0 PartitionCount:3 ReplicationFactor:3 Configs:
Topic: test-0 Partition: 0 Leader: 0 Replicas: 0,2,1 Isr: 0,2,1
Topic: test-0 Partition: 1 Leader: 1 Replicas: 1,0,2 Isr: 1,0,2
Topic: test-0 Partition: 2 Leader: 2 Replicas: 2,1,0 Isr: 2,1,0
查詢語句:
bin/kafka-topics.sh --list --zookeeper hadoop04:2181,hadoop05:2181,hadoop06:2181
刪除語句
bin/kafka-topics.sh --delete --zookeeper hadoop04:2181,hadoop05:2181,hadoop06:2181 --topic test-0
結果是test-0 - marked for deletion
表示不能真正的刪除只是做了個標記要刪除取zookeeper去真正刪除(這個配置如果設置為true可以真正刪除,設置false不能刪除)
#刪除topic需要server.properties中設置delete.topic.enable=true否則只是標記刪除
delete.topic.enable=false
rmr /brokers/topics/test-0 ,刪除client中的brokers中topic對應的
rmr /config/topics/test-0 ,刪配置
rmr /admin/delete_topics,刪除admin中的標記為刪除的topics
分區設置後只可以增加不可以減少
六API操作
啟動生產者
./bin/kafka-console-procer.sh --broker-list 192.168.14.131:9092,192.168.14.132:9092,192.168.14.133:9092 --topic test03
啟動消費者
./bin/kafka-console-consumer.sh --zookeeper 192.168.247.131:2181,192.168.247.132:2181,192.168.247.133:2181 --topic test03 --from-beginning