1. 程式人生 > >SprinCloud相關元件都是幹嘛的

SprinCloud相關元件都是幹嘛的

  1. 使用到 Spring Cloud Config Spring 配置管理工具包,讓你可以把配置放到遠端伺服器,集中化管理叢集配置,目前支援本地儲存、Git以及Subversion。
  2. 使用到 Spring Cloud Bus Spring 事件、訊息匯流排,用於在叢集(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。
  3. 使用到 Eureka Netflix 雲端服務發現,一個基於 REST 的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。
  4. 使用到 Hystrix Netflix 熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。
  5. 使用到 Zuul Netflix Zuul 是在雲平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。Zuul 相當於是裝置和 Netflix 流應用的 Web 網站後端所有請求的前門。

Archaius Netflix 配置管理API,包含一系列配置管理API,提供動態型別化屬性、執行緒安全配置操作、輪詢框架、回撥機制等功能。 7. 使用到 Consul HashiCorp 封裝了Consul操作,consul是一個服務發現與配置工具,與Docker容器可以無縫整合。 8. Spring Cloud for Cloud Foundry Pivotal 通過Oauth2協議繫結服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS雲平臺。 9. 使用到 Spring Cloud Sleuth Spring 日誌收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作,為SpringCloud應用實現了一種分散式追蹤解決方案。 10. Spring Cloud Data Flow Pivotal 大資料操作工具,作為Spring XD的替代產品,它是一個混合計算模型,結合了流資料與批量資料的處理方式。 11. Spring Cloud Security Spring 基於spring security的安全工具包,為你的應用程式新增安全控制。 12. Spring Cloud Zookeeper Spring 操作Zookeeper的工具包,用於使用zookeeper方式的服務發現和配置管理。 13. Spring Cloud Stream Spring 資料流操作開發包,封裝了與Redis,Rabbit、Kafka等傳送接收訊息。 14. Spring Cloud CLI Spring 基於 Spring Boot CLI,可以讓你以命令列方式快速建立雲元件。 15. 使用到 Ribbon Netflix 提供雲端負載均衡,有多種負載均衡策略可供選擇,可配合服務發現和斷路器使用。 16. 使用到 Turbine Netflix Turbine是聚合伺服器傳送事件流資料的一個工具,用來監控叢集下hystrix的metrics情況。 17. 使用到 Feign OpenFeign Feign是一種宣告式、模板化的HTTP客戶端。 18. Spring Cloud Task Spring 提供雲端計劃任務管理、任務排程。 19. Spring Cloud Connectors Spring 便於雲端應用程式在各種PaaS平臺連線到後端,如:資料庫和訊息代理服務。 20. Spring Cloud Cluster Spring 提供Leadership選舉,如:Zookeeper, Redis, Hazelcast, Consul等常見狀態模式的抽象和實現。 21. Spring Cloud Starters Pivotal Spring Boot式的啟動專案,為Spring Cloud提供開箱即用的依賴管理。

RabbitMQ 是使用Erlang編寫的一個開源的訊息佇列,本身支援很多的協議:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它變的非常重量級,更適合於企業級的開發。同時實現了一個經紀人(Broker)構架,這意味著訊息在傳送給客戶端時先在中心佇列排隊。對路由(Routing),負載均衡(Load balance)或者資料持久化都有很好的支援。

Redis

是一個Key-Value的NoSQL資料庫,開發維護很活躍,雖然它是一個Key-Value資料庫儲存系統,但它本身支援MQ功能,所以完全可以當做一個輕量級的佇列服務來使用。對於RabbitMQ和Redis的入隊和出隊操作,各執行100萬次,每10萬次記錄一次執行時間。測試資料分為128Bytes、512Bytes、1K和10K四個不同大小的資料。實驗表明:入隊時,當資料比較小時redis的效能要高於RabbitMQ,而如果資料大小超過了10K,Redis則慢的無法忍受;出隊時,無論資料大小,Redis都表現出非常好的效能,而RabbitMQ的出隊效能則遠低於Redis。

ZeroMQ

號稱最快的訊息佇列系統,尤其針對大吞吐量的需求場景。ZMQ能夠實現RabbitMQ不擅長的高階/複雜的佇列,但是開發人員需要自己組合多種技術框架,技術上的複雜度是對這MQ能夠應用成功的挑戰。ZeroMQ具有一個獨特的非中介軟體的模式,你不需要安裝和執行一個訊息伺服器或中介軟體,因為你的應用程式將扮演了這個服務角色。你只需要簡單的引用ZeroMQ程式庫,可以使用NuGet安裝,然後你就可以愉快的在應用程式之間傳送訊息了。但是ZeroMQ僅提供非永續性的佇列,也就是說如果down機,資料將會丟失。其中,Twitter的Storm中使用ZeroMQ作為資料流的傳輸。

ActiveMQ

是Apache下的一個子專案。 類似於ZeroMQ,它能夠以代理人和點對點的技術實現佇列。同時類似於RabbitMQ,它少量程式碼就可以高效地實現高階應用場景。RabbitMQ、ZeroMQ、ActiveMQ均支援常用的多種語言客戶端 C++、Java、.Net,、Python、 PHP、 Ruby等。

Jafka/Kafka

Kafka是Apache下的一個子專案,是一個高效能跨語言分散式Publish/Subscribe訊息佇列系統,而Jafka是在Kafka之上孵化而來的,即Kafka的一個升級版。具有以下特性:快速持久化,可以在O(1)的系統開銷下進行訊息持久化;高吞吐,在一臺普通的伺服器上既可以達到10W/s的吞吐速率;完全的分散式系統,Broker、Producer、Consumer都原生自動支援分散式,自動實現複雜均衡;支援Hadoop資料並行載入,對於像hadoop的一樣的日誌資料和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka通過Hadoop的並行載入機制來統一了線上和離線的訊息處理,這一點也是本課題所研究系統所看重的。Apache Kafka相對於ActiveMQ是一個非常輕量級的訊息系統,除了效能非常好之外,還是一個工作良好的分散式系統。

RocketMQ

RocketMQ是一款分散式、佇列模型的訊息中介軟體,具有以下特點: 能夠保證嚴格的訊息順序、提供豐富的訊息拉取模式 、高效的訂閱者水平擴充套件能力

實時的訊息訂閱機制、億級訊息堆積能力

其他一些佇列列表HornetQ、Apache Qpid、Sparrow、Starling、Kestrel、Beanstalkd、Amazon SQS就不再一一分析。

Mysql的索引型別 https://mp.weixin.qq.com/s?src=11&timestamp=1538139664&ver=1150&signature=iuY2Nzd7GD8UbEzdEB5oSKDbzdm6VVbgPmsBH9RhDTxyGwCoseWzjxaXMy-zyqNXc6s682ha46vFvDIqQxqjWPJjptopHzsCzsmI3jUg8DdBlryZ4GhJqnMZeCWd6-&new=1

Rpc

看到演算法也只能死磕