Java 微服務技術棧 相關清單

微服務技術棧

  • Author: HuiFer
  • Description: 該文簡單介紹微服務技術棧有哪些分別用來做什麼

技術棧

微服務開發

作用: 快速開發服務.

  • Spring
  • SpringMvc
  • SpringBoot

官網,Spring目前是JavaWeb開發人員必不可少的一個框架,SpringBoot簡化了Spring開發的配置目前也是業內主流開發框架.

微服務註冊發現

作用: 發現服務,註冊服務.集中管理服務

Eureka

  • Eureka Server : 提供服務註冊服務,各個節點啓動後,會在Eureka Server中進行註冊.
  • Eureka Client : 簡化與Eureka Server的交互操作
  • Spring Cloud Netflix : GitHub,文檔

Zookeeper

  • ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

    zookeeper是一個集中的服務,用於維護配置信息、命名、提供分佈式同步和提供組服務.

  • GitHub

Zookeeper 和 Eureka 區別

  1. Zookeeper保證CP , Eureka 保證AP
    • C-數據一致性;A-服務可用性;P-服務對網絡分區故障的容錯性,這三個特性在任何分佈式系統中不能同時滿足,最多同時滿足兩個.

微服務配置管理

作用:統一管理一個或多個服務的配置信息,集中管理.

Disconf

  • Distributed Configuration Management Platform(分佈式配置管理平臺) ,它是專注於各種分佈式系統配置管理 的通用組件/通用平臺, 提供統一的配置管理服務,是一套完整的基於zookeeper的分佈式配置統一解決方案.

  • GitHub

SpringCloudConfig

Apollo

  • Apollo(阿波羅)是攜程框架部門研發的分佈式配置中心,能夠集中化管理應用不同環境、不同集羣的配置,配置修改後能夠實時推送到應用端,並且具備規範的權限、流程治理等特性,適用於微服務配置管理場景.

  • GitHub

權限認證

作用:根據系統設置的安全規則或者安全策略,用戶可以訪問而且只能訪問自己被授權的資源,不多不少.

Spring Security

apache Shiro

Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can quickly and easily secure any application – from the smallest mobile applications to the largest web and enterprise applications.

批處理

作用: 批量處理同類型數據或事物

Spring Batch

定時任務

作用: 定時做什麼.

Quartz

微服務調用(協議)

通訊協議

Rest

  • 通過HTTP/HTTPS發送Rest請求進行數據交互

RPC

  • Remote Procedure Call
  • 它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議.RPC不依賴於具體的網絡傳輸協議,tcp、udp等都可以.

gRPC

  • 官網
  • A high-performance, open-source universal RPC framework
    所謂RPC(remote procedure call 遠程過程調用)框架實際是提供了一套機制,使得應用程序之間可以進行通信,而且也遵從server/client模型.使用的時候客戶端調用server端提供的接口就像是調用本地的函數一樣.

RMI

  • Remote Method Invocation
  • 純Java調用

服務接口調用

作用: 多個服務之間的通訊

Feign(HTTP)

  • Spring Cloud Netflix 的微服務都是以 HTTP 接口的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去調用,而 Feign 是一個使用起來更加方便的 HTTP 客戶端,使用起來就像是調用自身工程的方法,而感覺不到是調用遠程方法.

  • GitHub

服務熔斷

作用: 當請求到達一定閾值時不讓請求繼續.

Hystrix

  • Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.

  • GitHub

Sentinel

  • A lightweight powerful flow control component enabling reliability and monitoring for microservices. (輕量級的流量控制、熔斷降級 Java 庫)

  • GitHub

服務的負載均衡

作用:降低服務壓力,增加吞吐量

Ribbon

  • Spring Cloud Ribbon是一個基於HTTP和TCP的客戶端負載均衡工具,它基於Netflix Ribbon實現

  • GitHub

Nginx

  • Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務

  • GitHub

Nginx 與 Ribbon區別

  1. Nginx 屬於服務端負載均衡,Ribbon屬於客戶端負載均衡.Nginx作用與Tomcat,Ribbon作用與各個服務之間的調用(RPC)

消息隊列

作用: 解耦業務,異步化處理數據

Kafka

RabbitMQ

RocketMQ

activeMQ

日誌採集(elk)

作用:收集各服務日誌提供日誌分析、用戶畫像等

Elasticsearch

Logstash

Kibana

API網關

作用:外部請求通過API網關進行攔截處理,再轉發到真正的服務

Zuul

Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more.

服務監控

作用:以可視化或非可視化的形式展示出各個服務的運行情況(CPU、內存、訪問量等)

Zabbix

Nagios

Metrics

服務鏈路追蹤

作用:明確服務之間的調用關係

Zipkin

Brave

數據存儲

作用: 存儲數據

關係型數據庫

MySql
Oracle
MsSql
PostgreSql

非關係型數據庫

Mongodb
Elasticsearch

緩存

作用: 存儲數據

redis

分庫分表

作用: 數據庫分庫分表方案.

shardingsphere

Mycat

服務部署

作用: 將項目快速部署、上線、持續集成.

Docker

Jenkins

Kubernetes(K8s)

Mesos

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章