輕量級(jí)微服務(wù)架構(gòu)下總結(jié)


輕量級(jí)的微服務(wù)


2018-08-25-2

總結(jié):整個(gè)微服務(wù)使用Spring boot + Docker 冰山上轻抱,ZooKeeper服務(wù)注冊(cè)飞涂、Node.js服務(wù)網(wǎng)關(guān)、Jenkins等冰山下祈搜。

總體上可以分為:開(kāi)發(fā)框架(上)较店、容器技術(shù)(上)、注冊(cè)中心(下)容燕、調(diào)用中心梁呈、部署中心、日志中心蘸秘、監(jiān)控中心官卡、追蹤中心、消息中心秘血、配置中心味抖。

注冊(cè)中心:用于注冊(cè)微服務(wù)相關(guān)配置信息的中心

調(diào)用中心:用于提供給前端調(diào)用的統(tǒng)一入口(我們選用Node.js實(shí)現(xiàn))

部署中心:用于編譯并打包微服務(wù)源碼并將其部署到Docker引擎中(Jenkins)

日志中心:用于收集并管理微服務(wù)應(yīng)用程序中產(chǎn)生的日志

監(jiān)控中心:用于監(jiān)控微服務(wù)的實(shí)時(shí)運(yùn)行狀況

追蹤中心:用于最終微服務(wù)的調(diào)用軌跡

消息中心:用于解耦服務(wù)之間的調(diào)用關(guān)系

配置中心:用于管理微服務(wù)應(yīng)用程序所需的配置參數(shù)

(我們認(rèn)為,中心分為兩類:一類是含有業(yè)務(wù)意義的中心灰粮,另一類是不含業(yè)務(wù)意義的中心-只是技術(shù)層面的中心)

2018-08-25-3

微服務(wù)日志


2018-08-25-4

總結(jié):docker中查看日志路徑 /var/lib/docker/containers/<container_id目錄看到一個(gè)container_id-json.log文件仔涩,Docker默認(rèn)使用docker logs查看的就是這些json文件,Docker默認(rèn)使用Json-file格式粘舟,還有其他格式

none:容器不輸出任何日志

json-file:容器默認(rèn)輸出的日志以json格式寫入文件中(默認(rèn))

syslog:容器輸出日志寫入宿主機(jī)的Syslog中

journald:容器輸出日志寫入宿主機(jī)的Journald中

gelf:容器輸出的日志以GELF(Graylog Extended log fromat)格式寫入Graylog中

fluentd: 容器輸出的日志寫入宿主機(jī)的Fluentd中

awalogs:容器輸出日志寫入Ammazon CloudWatch Logs中

splunk:容器輸出日志寫入splunk中

etwlogs:容器輸出日志寫入ETW (event tracing for windows)中

gcplogs:容器輸出日志寫入GCP(Google Cloud Platform)中

nats:容器輸出日志寫入NATS服務(wù)器中

docker中 --log-driver參數(shù)配置日志驅(qū)動(dòng)

--log-opt max-size --log-opt max-file 分別設(shè)置日志文件大小和日志文件數(shù)量

例如:docker run -p 80:80 --log-dirver json-file --log-opt max-size=10m --log-opt max-file=3 --name xxx 容器名稱

docker日志驅(qū)動(dòng)(https://docs.docker.com/engine/admin/logging/overview/

默認(rèn)linux系統(tǒng)安裝Syslog(名稱Rsyslog)熔脂,還有一個(gè)Syslog-ng(https://www.balabit.com/network-security/syslog-ng)更強(qiáng)大

通過(guò) rsyslogd -v 檢查rsyslog是否安裝

Rsyslog官網(wǎng)http://www.rsyslog.com

2018-08-25-5

ELK 官網(wǎng) https://www.elastic.co/

Kibana:用于數(shù)據(jù)可視化

Elasticsearch:用于數(shù)據(jù)搜索佩研、分析與存儲(chǔ)

Logstash:用于數(shù)據(jù)收集、將數(shù)據(jù)存入Elasticsearch中

Beats:用于數(shù)據(jù)傳輸霞揉,將數(shù)據(jù)從磁盤上傳輸?shù)絃ogstash中

X-Pack:提供一些擴(kuò)展功能旬薯,包括安全、預(yù)警适秩、監(jiān)控绊序、報(bào)表、圖形化等

Elastic Cloud:提供Elastic棧的云服務(wù)秽荞,提供公有云和私有云解決方案

微服務(wù)監(jiān)控


2018-08-25-6

總結(jié):Spring boot自帶監(jiān)控actuator骤公,有些需要在application.properties中配置才能夠訪問(wèn)

actuator包括info(應(yīng)用基本信息)、health(應(yīng)用是否健康)扬跋、metrics(相關(guān)運(yùn)行指標(biāo)阶捆、開(kāi)可以擴(kuò)展其他新指標(biāo))、env(可以訪問(wèn)的環(huán)境變量)钦听、loggers(查看和修改日志級(jí)別配置)洒试、dump(線程相關(guān)信息)、trace(請(qǐng)求調(diào)用軌跡信息)

Spring boot Admin開(kāi)源 https://github.com/codecentric/spring-boot-admin

cAdvisor開(kāi)源 https://github.com/google/cadvisor

InfluxDB開(kāi)源https://github.com/influxdata/influxdb

Grafana官網(wǎng)https://grafana.com https://github.com/grafana/grafana

集成InfluxDB+cAdvisor+Grafana 必須先啟動(dòng)InfluxDB 隨后才能其他cAvisor和Grafana

ZipKin開(kāi)源 http://zipkin.io https://github.com/openzipkin/zipkin(google Dapper https://research.google.com/pubs/pub36356.html

Kafka 官網(wǎng) http://kafka.apache.org

Scribe官網(wǎng) https://github.com/facebookarchive/scribe

Zipkin java客戶端 https://github.com/openzipkin/brave

微服務(wù)通信


2018-08-25-7

當(dāng)服務(wù)間滴啊用較為頻繁時(shí)朴上,我們一般不會(huì)選擇HTTP調(diào)用垒棋,而是選擇基于TCP的RPC調(diào)用

RPC是通過(guò)Socket通信的 常用RPC框架 Google gRPC、Facebook Thrift痪宰、Twitter Finagle捕犬、Alibaba Dubbo、新浪微博Motan等

gRPC官網(wǎng):http://www.grpc.io

Protocol Buffers 官網(wǎng):https://developers.google.com/protocol-buffers/

搭建分布式RPC框架使用Netty + Zookeeper + protostuff

Protostuff官網(wǎng):http://www.protostuff.io

Netty 官網(wǎng):http://netty.io

2018-08-25-8
image-20180826003520433
2018-08-25-9

微服務(wù)解耦


2018-08-25-10

總結(jié):RabbitMQ性能高于ActiveMQ

image-20180826004521077
image-20180826004553331

微服務(wù)測(cè)試


2018-08-25-11

總結(jié):通過(guò)配置@FixMethodOrder(MethodSorters.NAME_ASCENDING)使所有待測(cè)試方法安裝字母升序的方式被JUnit框架調(diào)用

AssertJ : https://joel-costigliola.github.io/assertj/index.html

Jayway JsonPath: https://github.com/json-path/JsonPath

Jayway JsonPath Evaluator http://jsonpath.herokuapp.com

JSONassert http://jsonassert.skyscreamer.org

Newman npm: https://www.npmjs.com/package/newman

Swagger 官網(wǎng):http://swagger.io

apiDoc http://apidocjs.com

微服務(wù)配置


2018-08-25-12

總結(jié):Ansible是一款開(kāi)源的自動(dòng)化運(yùn)維工具酵镜,它基于Python開(kāi)發(fā),可用于配置系統(tǒng)與部署軟件

通過(guò)SSH登錄配置服務(wù)器

  1. 生成密鑰 ssh-keygen -t rsa
  2. copy密鑰到服務(wù)器 ssh-copy-id root@serverip
架構(gòu)圖
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柴钻,一起剝皮案震驚了整個(gè)濱河市淮韭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贴届,老刑警劉巖靠粪,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異毫蚓,居然都是意外死亡占键,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門元潘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)畔乙,“玉大人,你說(shuō)我怎么就攤上這事翩概∩啵” “怎么了返咱?”我有些...
    開(kāi)封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)牍鞠。 經(jīng)常有香客問(wèn)我咖摹,道長(zhǎng),這世上最難降的妖魔是什么难述? 我笑而不...
    開(kāi)封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任萤晴,我火速辦了婚禮,結(jié)果婚禮上胁后,老公的妹妹穿的比我還像新娘店读。我一直安慰自己,他們只是感情好择同,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布两入。 她就那樣靜靜地躺著,像睡著了一般敲才。 火紅的嫁衣襯著肌膚如雪裹纳。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天紧武,我揣著相機(jī)與錄音剃氧,去河邊找鬼。 笑死阻星,一個(gè)胖子當(dāng)著我的面吹牛朋鞍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妥箕,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼滥酥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了畦幢?” 一聲冷哼從身側(cè)響起坎吻,我...
    開(kāi)封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宇葱,沒(méi)想到半個(gè)月后瘦真,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡黍瞧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年诸尽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片印颤。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡您机,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情往产,我是刑警寧澤被碗,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站仿村,受9級(jí)特大地震影響锐朴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蔼囊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一焚志、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧畏鼓,春花似錦酱酬、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至让禀,卻和暖如春挑社,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背巡揍。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工痛阻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腮敌。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓阱当,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親糜工。 傳聞我的和親對(duì)象是個(gè)殘疾皇子弊添,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容