【微服務】微服務概述

什麼是微服務

使用一套小服務來開發單個應用的方式,每一個服務運行在獨立的進程裏,通常採用輕量級的通信機制互聯,而且它們能夠經過自動化的方式部署。java

微服務的特徵

一、單一職責
二、輕量級通信
三、隔離性
四、業務數據的獨立性(有本身的數據)
五、技術多樣性spring

微服務誕生的背景

一、互聯網行業的快速發展
二、敏捷開發,精溢方法深刻人心
三、容器技術的成熟--使微服務的落地成爲可能服務器

微服務的優點

一、獨立性
二、敏捷性
三、技術棧靈活
四、高效團隊框架

微服務的不足

一、額外的工做
須要確認如何拆分業務,微服務的拆分粒度
二、數據一致性
三、溝通成本異步

微服務引入的問題及解決方案

微服務如何通信

一、從通信模式角度考慮:
一對一?一對多?
同步?異步?
分佈式

二、從通信協議角度考慮
REST API
RPC
MQspring-boot

如何選擇RPC框架?
一、I/O、線程調試模型
二、序列化方式(JSON/二進制)
三、多語言支持
四、服務治理微服務

經常使用RPC框架:Dubbo/Dubbox(噹噹)/Thrift(A)/Motan(新浪微博)/gRPC(谷歌)
工具

微服務如何發現彼此

傳統服務的發現
線程

微服務的發現:
一、客戶端的發現

二、服務端的發現

微服務怎樣部署、更新、擴容

服務編排:部署、更新、擴容
流行的服務編排工具:Mesos/Docker Swarm/Kubernetes

Spring Boot、Spring Cloud與微服務

Spring Boot與微服務

Spring Boot的使命:化繁爲簡
Spring Boot核心功能:獨立運行、內嵌Web服務器、簡化配置、準生產的應用監控

Spring Boot與微服務的關係:Java的潤滑劑

Spring Cloud與微服務

Spring Cloud的使命:簡化Java的分佈式系統

一系列框架的集合
簡化java的分佈式系統
Spring Boot 封裝

Java的微服務
側重功能,側重開發

Spring Cloud核心組件
Netflix Eureka
Netflix Ribbon
Netflix Hystrix
Netflix Zuul
Spring Cloud Config

Spring Boot vs Spring Cloud

Spring Boot 意在簡化,是一種開發、配置風格 Spring Cloud意在簡化分佈式,是功能的集合,風格統一

相關文章
相關標籤/搜索