Spring SpringBoot和SpringCloud的關系
使用Spring Boot Actuator解決了單個Spring Boot的監控問題,使用Spring Boot Admin解決了整個集群監控的問題。
Spring Boot + Docker + Jenkins 會將 Spring Boot 項目的部署做得更簡單化、智能化。
springboot做微服務,集群的話用spring cloud + Spring Boot Admin監控
================
Spring 最初最核心的兩大核心功能 Spring IoC 和 Spring AOP 成就了 Spring,Spring 在這兩大核心的功能上不斷的發展,才有了 Spring 事務、Spring MVC 等一系列偉大的產品,最終成就了 Spring 帝國,到了后期 Spring 幾乎可以解決企業開發中的所有問題。
Spring Boot 是在強大的 Spring 帝國生態基礎上面發展而來,發明 Spring Boot 不是為了取代 Spring ,是為了讓人們更容易的使用 Spring 。所以說沒有 Spring 強大的功能和生態,就不會有后期的 Spring Boot 火熱,Spring Boot 使用約定優於配置的理念,重新重構了 Spring 的使用,讓 Spring 后續的發展更有生命力。
Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用 Spring Boot 的開發風格做到一鍵啟動和部署。
Spring 並沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過 Spring Boot 風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。
根據上面的說明我們可以看出來,Spring Cloud 是為了解決微服務架構中服務治理而提供的一系列功能的開發框架,並且 Spring Cloud 是完全基於 Spring Boot 而開發,Spring Cloud 利用 Spring Boot 特性整合了開源行業中優秀的組件,整體對外提供了一套在微服務架構中服務治理的解決方案。
綜上我們可以這樣來理解,正是由於 Spring IoC 和 Spring AOP 兩個強大的功能才有了 Spring ,Spring 生態不斷的發展才有了 Spring Boot ,使用 Spring Boot 讓 Spring 更易用更有生命力,Spring Cloud 是基於 Spring Boot 開發的一套微服務架構下的服務治理方案。
用一組不太合理的包含關系來表達它們之間的關系。
Spring IoC/AOP > Spring > Spring Boot > Spring Cloud
總結
不知道什么時候起,行業里一些開發人員願意相信,使用復雜的軟件就意味着采用了高深的技術;使用了大量的配置,就意味着軟件有着很多比較強大的功能。在產品設計的時候有一個理念就是讓產品操作足夠的傻瓜化,假設用戶是一個智商並不高的群體,卻可以使他很容易的學會使用其產品,將此特性做為產品設計的一項標准之一。
其實我們的開源軟件也是一款產品,繁瑣並不意味着功能強大,反而有可能是設計不夠合理;簡潔也並不意味着簡單,很有可能它只是將眾多復雜的功能進行了封裝,讓我們在使用的時候足夠的簡單。好的產品如此,好的開源軟件也應該如此,Spring Boot 的出現就是讓編程變得更簡單一些。
===================
Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。用我的話來理解,就是 Spring Boot 其實不是什么新的框架,它默認配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架。
Spring Boot 簡化了基於 Spring 的應用開發,通過少量的代碼就能創建一個獨立的、產品級別的 Spring 應用。 Spring Boot 為 Spring 平台及第三方庫提供開箱即用的設置,這樣你就可以有條不紊地開始。Spring Boot 的核心思想就是約定大於配置,多數 Spring Boot 應用只需要很少的 Spring 配置。采用 Spring Boot 可以大大的簡化你的開發模式,所有你想集成的常用框架,它都有對應的組件支持。
使用 Spring Boot 之后我們需要開發一個 web 項目需要哪些操作呢?
1)登錄網址 http://start.spring.io/ 選擇對應的組件直接下載
2)導入項目,直接開發
Spring Boot 的核心思想:約定優於配置。
Spring Boot 讓部署變簡單,內嵌容器不只讓部署變得簡單,其實在開發調試階段也會帶來非常大的便利性,對比以往開發 Web 項目時配置 Tomcat 的繁瑣,會讓大家使用 Spring Boot 內嵌容器開發時有更深的感觸。使用 Spring Boot 開發 Web 項目,讓我們不需要關心容器的環境問題,專心寫業務代碼即可。
Spring Boot + Docker + Jenkins 會將 Spring Boot 項目的部署做得更簡單化、智能化。
Spring Boot 讓監控變得更簡單
Spring Boot 就是一款自帶監控的開源軟件,在設計之初就考慮到應用的監控問題,專門提供了一款監控組件來完成這個工作。
Spring Boot Actuator 是 Spring Boot 提供的對應用系統監控的集成功能,可以查看應用配置的詳細信息,例如自動化配置信息、創建的 Spring beans 以及一些環境屬性等。
當然 Spring Boot Actuator 雖然可以監控一個 Spring Boot 應用的健康情況,實際上現在的系統都是需要很多的服務相互配合來完成工作,如何通過一個監控軟件來監控所有的 Spring Boot 項目將變得比較緊迫。
有人基於Spring boot actuator 做出了一款強大的監控軟件Spring Boot admin
Spring Boot Admin 是一個管理和監控 Spring Boot 應用程序的開源軟件。每個應用都認為是一個客戶端,通過 HTTP 或者使用 Eureka 注冊到 admin server 中進行展示,Spring Boot Admin UI 部分使用 AngularJs 將數據展示在前端。
Spring Boot Admin 是一個針對 spring-boot 的 actuator 接口進行UI美化封裝的監控工具。他可以:在列表中瀏覽所有被監控 spring-boot 項目的基本信息,詳細的 Health 信息、內存信息、JVM 信息、垃圾回收信息、各種配置信息(比如數據源、緩存列表和命中率)等,還可以直接修改 logger 的 level 。
使用 Spring Boot Admin 不僅可以監控 Spring Boot 項目,還可以監控 Spring Cloud 項目。
簡單、直觀、易用是它的特點,針對一些特殊情況還可以提供報警服務。
使用Spring Boot Actuator解決了單個Spring Boot的監控問題,使用Spring Boot Admin解決了整個集群監控的問題。