## **微服務的定義**
一種軟件開發技術- 面向服務的體系結構(SOA)架構樣式的一種變體,它提倡將單一應用程序劃分成一組小的服務,服務之間互相協調、互相配合,為用戶提供最終價值。每個服務運行在其獨立的進程中,服務于服務間采用輕量級的通信機制互相溝通(通常是基于HTTP的RESTful API)。每個服務都圍繞著具體業務進行構建,并且能夠獨立地部署到生產環境、類生產環境等。另外,應盡量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據上下文,選著合適的語言、工具對其進行構建。

## **一個完整的微服務系統,最少要包含以下功能:**
日志和審計,主要是日志的匯總,分類和查詢
監控和告警,主要是監控每個服務的狀態,必要時產生告警
消息總線,輕量級的MQ或HTTP
注冊發現
負載均衡
自動化部署和升級
時間調度機制
資源管理,如:底層的虛擬機,物理機和網絡管理
**其它功能:**
認證和鑒權
微服務統一代碼框架,支持多種編程語言
統一服務構建和打包
統一服務測試
微服務CI/CD流水線
服務依賴關系管理
統一問題跟蹤調試框架,俗稱調用鏈
灰度發布
藍綠部署
## **技術選型:**
學習推薦地址:https://blog.csdn.net/karlin999/article/details/79277609

**微服務條目------------------落地技術**
服務開發---------------------Spring、SpringMVC、SpringBoot
服務配置與管理------------Netflix公司Archaius、阿里Diamond等
服務注冊和發現------------Eureka、Consul、Zookeeper
服務調用---------------------RPC、gRPC、Rest
服務熔斷---------------------Hystrix、Envoy
負載均衡---------------------Nginx、Ribbon
服務接口調用---------------Feign
消息隊列---------------------ActiveMQ、RabbitMQ、Kafka
服務配置中心管理---------SpringClodeConfig、Chef等
服務路由---------------------Zuul
服務監控---------------------Zabbix、Nagios、Metrics、Spectator
全鏈路追蹤------------------Zipkin、Brave、Dapper
數據流操作開發包---------SpringCloud Stream(封裝與Redis\Rabbit、Kafka等發送接受消息)
服務部署---------------------Dockers、OpenStack、Kubernetes等
事件消息總線---------------Spring Cloud Bus