作為一名程序員,我們要避免重復(fù)發(fā)明輪子,盡可能使用一些成熟、優(yōu)秀、穩(wěn)定的的第三方庫,站在巨人的肩膀上搭建可靠、穩(wěn)定的系統(tǒng)。本篇我整理了JAVA開發(fā)人員經(jīng)常會(huì)使用到的第三方類庫,可能不是很全面,還在持續(xù)收集整理中,朋友們可以關(guān)注我的GitHub上的持續(xù)更新,GitHub搜wind7rui/Javalib,或者點(diǎn)擊鏈接https://github.com/wind7rui/Javalib,然后點(diǎn)擊watch/Star/Fork,如果您對(duì)項(xiàng)目中的內(nèi)容有建議或者意見,歡迎提出專業(yè)方面的建議,共同維護(hù),請(qǐng)直接在GitHub上以issue或者PR的形式提出,以下我們開始本篇的內(nèi)容。
應(yīng)用開發(fā)腳手架
1.Spring Framework
Spring框架為現(xiàn)代基于Java的企業(yè)應(yīng)用程序提供了一個(gè)全面的編程和配置模型,使用開發(fā)基于Java語言的應(yīng)用更加簡(jiǎn)單、便捷。
github:https://github.com/spring-projects/spring-framework/
官網(wǎng):https://spring.io/projects/spring-framework
2.Spring Boot
Spring Boot使創(chuàng)建獨(dú)立的、基于Spring的產(chǎn)品級(jí)應(yīng)用程序變得非常容易。
官網(wǎng):https://spring.io/projects/spring-boot
3.Spring Cloud Spring Cloud為開發(fā)人員提供了豐富的使用工具,開發(fā)人員基于這些工具可以快速構(gòu)建分布式系統(tǒng)中的一些常見功能(例如,配置管理,服務(wù)發(fā)現(xiàn),斷路器,智能路由,微代理,控制總線,一次性令牌,全局鎖,領(lǐng)導(dǎo)選舉,分布式會(huì)話等)。
官網(wǎng):https://spring.io/projects/spring-cloud
Web服務(wù)接口
1.Jersey
Jersey是一個(gè)REST框架,它提供JAX-RS參考實(shí)現(xiàn)等。Jersey提供了自己的api,這些api通過附加的特性和實(shí)用程序擴(kuò)展了JAX-RS工具包,從而進(jìn)一步簡(jiǎn)化了RESTful服務(wù)和客戶端開發(fā)。Jersey還公開了許多擴(kuò)展spi,以便開發(fā)人員可以擴(kuò)展Jersey以最適合他們的需求。
github:https://github.com/eclipse-ee4j/jersey
2.Spring Web MVC
Spring Web MVC是基于Servlet API構(gòu)建的原始Web框架,從一開始就已包含在Spring框架中。正式名稱“ Spring Web MVC”來自其源模塊的名稱(spring-webmvc),但通常稱為“Spring MVC”。
官網(wǎng):https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/web.html
數(shù)據(jù)持久化框架
1.MyBatis
MyBatis是一個(gè)一流的持久性框架,支持自定義SQL、存儲(chǔ)過程和高級(jí)映射,它幾乎消除了JDBC代碼、參數(shù)手動(dòng)設(shè)置和結(jié)果檢索。MyBatis可以使用簡(jiǎn)單的XML或注釋進(jìn)行配置,并將原語、接口和javapojo(普通的舊Java對(duì)象)映射到數(shù)據(jù)庫記錄。
官網(wǎng):https://mybatis.org/mybatis-3/
github:https://github.com/mybatis/mybatis-3
2.Hibernate
Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將POJO與數(shù)據(jù)庫表建立映射關(guān)系,是一個(gè)全自動(dòng)的orm框架,hibernate可以自動(dòng)生成SQL語句,自動(dòng)執(zhí)行,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。
官網(wǎng):http://hibernate.org/
Excel讀寫
1.Alibaba EasyExcel
Java解析、生成Excel比較有名的框架有Apache poi、jxl。但他們都存在一個(gè)嚴(yán)重的問題就是非常的耗內(nèi)存,poi有一套SAX模式的API可以一定程度的解決一些內(nèi)存溢出的問題,但POI還是有一些缺陷,比如07版Excel解壓縮以及解壓后存儲(chǔ)都是在內(nèi)存中完成的,內(nèi)存消耗依然很大。easyexcel重寫了poi對(duì)07版Excel的解析,能夠原本一個(gè)3M的excel用POI sax依然需要100M左右內(nèi)存降低到幾M,并且再大的excel不會(huì)出現(xiàn)內(nèi)存溢出,03版依賴POI的sax模式。在上層做了模型轉(zhuǎn)換的封裝,讓使用者更加簡(jiǎn)單方便。
github:https://github.com/alibaba/easyexcel
2.Apache POI
一個(gè)用于讀寫Microsoft office二進(jìn)制和OOXML文件格式的Java庫,可用于讀寫Excel 97-2008。
github:https://github.com/apache/poi
CSV讀寫
1.Apache Commons CSV
Apache Commons CSV庫提供了用于讀取和寫入各種類型CSV文件的接口。
github:https://github.com/apache/commons-csv
2.Java CSV
Java CSV是一個(gè)小型、快速且開源Java庫,用于讀、寫各種CSV文件。
官網(wǎng):https://www.csvreader.com/java_csv.php
API:http://javacsv.sourceforge.net/
3.Super CSV
Super CSV是一個(gè)快速、免費(fèi)跨平臺(tái)的CSV格式數(shù)據(jù)的讀寫庫,可以方便的處理對(duì)象、Map、列表的讀寫操作,以及自動(dòng)化的類型轉(zhuǎn)換和數(shù)據(jù)檢查功能。
官網(wǎng):http://super-csv.github.io/super-csv/index.html
github:https://github.com/super-csv/super-csv
JSON讀寫
1.Jackson
Jackson被稱為Java的標(biāo)準(zhǔn)JSON庫,號(hào)稱“Java的最佳JSON解析器”。
github:https://github.com/FasterXML/jackson
2.Gson
Gson是谷歌開源的一個(gè)Java庫,可用于將Java對(duì)象轉(zhuǎn)換為其JSON表示形式。它還可以用于將JSON字符串轉(zhuǎn)換為等效的Java對(duì)象。Gson可以處理任意Java對(duì)象,包括您沒有源代碼的現(xiàn)有對(duì)象。
github:https://github.com/google/gson
3.fastjson
fastjson是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。
github:https://github.com/alibaba/fastjson
XML讀寫
1.dom4j
dom4j是用于處理XML的開源框架,該框架與XPath集成在一起,并完全支持DOM、SAX、JAXP和Java平臺(tái)。
github:https://github.com/dom4j/dom4j
官網(wǎng):https://dom4j.github.io/
2.StAX
StAX全稱Streaming API for XML,一種全新的、基于流的Java XML解析標(biāo)準(zhǔn)類庫。
3.jaxb-api
jaxb-api用于執(zhí)行XML文檔和Java對(duì)象之間的映射。
文檔:https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/JAXB.html
4.XStream
XStream是一個(gè)可以輕易的將Java對(duì)象和xml文檔相互轉(zhuǎn)換的類庫。
官網(wǎng):http://x-stream.github.io/
IO讀寫
1.Apache Commons IO Apache Commons IO是一個(gè)實(shí)用程序庫,可協(xié)助開發(fā)IO功能。
官網(wǎng):https://commons.apache.org/proper/commons-io/
2.Okio
Okio是對(duì)java.io和java.nio的補(bǔ)充,使訪問、存儲(chǔ)和處理數(shù)據(jù)變得更加容易。
github:https://github.com/square/okio
HTTP客戶端
1.OkHttp
OkHttp是一個(gè)HTTP客戶端,使用OkHttp很容易,它的請(qǐng)求/響應(yīng)API具有流暢的構(gòu)建器和不變性。它支持同步阻塞調(diào)用和帶有回調(diào)的異步調(diào)用。
github:https://github.com/square/okhttp
官網(wǎng):https://square.github.io/okhttp/
2.Apache HttpClient
Apache HttpClient提供了對(duì)基本HTTP協(xié)議的強(qiáng)大支持,用于構(gòu)建基于HTTP的客戶端。
官網(wǎng):http://hc.apache.org/index.html
github:https://github.com/apache/httpcomponents-client
Java Bean復(fù)制
1.Cglib BeanCopier
Cglib庫內(nèi)的BeanCopier提供了ava Bean到Java Bean的復(fù)制功能,性能優(yōu)于Spring BeanUtils。
BeanCopier beanCopier = BeanCopier.create(sourceClass, targetClass, false);
beanCopier.copy(source, target, null);
2.Spring BeanUtils
Spring框架的Spring Beans庫中的BeanUtils也實(shí)現(xiàn)了Java Bean到Java Bean的復(fù)制。
3.Dozer
Dozer是Java Bean到Java Bean映射器,它以遞歸方式將數(shù)據(jù)從一個(gè)對(duì)象復(fù)制到另一個(gè)對(duì)象。Dozer支持簡(jiǎn)單屬性映射、復(fù)雜類型映射、雙向映射、隱式顯式映射以及遞歸映射。Dozer不僅支持屬性名稱之間的映射,而且還可以在類型之間自動(dòng)轉(zhuǎn)換。開箱即用地支持大多數(shù)轉(zhuǎn)換方案,同時(shí)也允許您通過XML或基于代碼的配置指定自定義轉(zhuǎn)換。
github:https://github.com/DozerMApper/dozer
文檔:https://dozermapper.github.io/gitbook/
redis客戶端
1.Redission
Redis推薦的Java客戶端Redisson是一個(gè)在Redis的基礎(chǔ)上實(shí)現(xiàn)的Java駐內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory Data Grid),它充分利用了Redis鍵值數(shù)據(jù)庫提供的一系列優(yōu)勢(shì),基于Java實(shí)用工具包中常用接口,為使用者提供了一系列具有分布式特性的常用工具類,讓使用Redis更加簡(jiǎn)單、便捷,從而讓使用者能夠?qū)⒏嗑械綐I(yè)務(wù)邏輯處理上。
github:https://github.com/redisson/redisson/
2.Jedis
Redis推薦的Java客戶端。
github:https://github.com/xetorthio/jedis
數(shù)據(jù)庫連接池
數(shù)據(jù)庫連接池提供了一套高效的連接分配、使用策略, 最終實(shí)現(xiàn)連接的高效管理。
1.HikariCP
快速、簡(jiǎn)單、可靠。HikariCP是“零開銷”生產(chǎn)就緒的JDBC連接池。
github:https://github.com/brettwooldridge/HikariCP
2.Druid
Druid是Java語言中最好的數(shù)據(jù)庫連接池之一,Druid能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能。
github:https://github.com/alibaba/druid/
3.Tomcat JDBC
JDBC連接池是Apache Commons DBCP連接池的替代品。
官網(wǎng):http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
網(wǎng)絡(luò)編程
1.Netty
Netty是一個(gè)廣泛使用的Java網(wǎng)絡(luò)編程框架。
github:https://github.com/netty/netty
官網(wǎng):https://netty.io/
文件上傳
1.Apache Commons FileUpload
Apache Commons FileUpload使高性能的文件上傳功能變得容易。
官網(wǎng):http://commons.apache.org/proper/commons-fileupload/
發(fā)送郵件
1.Apache Commons Email
Apache commons Email旨在提供用于發(fā)送電子郵件的API,它建立在Java Mail API之上,它的目標(biāo)就是簡(jiǎn)便。
官網(wǎng):http://commons.apache.org/proper/commons-email/
編碼和解碼
1.Apache Commons Codec
Apache Commons Codec提供了常見編碼器和解碼器的實(shí)現(xiàn),例如Base64,Hex,Phonetic和URL。
官網(wǎng):http://commons.apache.org/proper/commons-codec/
IO操作
1.Apache Commons IO
簡(jiǎn)單、快捷的IO操作。
官網(wǎng):http://commons.apache.org/proper/commons-io/index.html
對(duì)象池
1.Apache Commons Pool
提供了通用對(duì)象池。
官網(wǎng):http://commons.apache.org/proper/commons-pool/
java.lang包工具類
1.Apache Commons Lang
為java.lang中的類提供額外的功能,例如StringUtils、DateUtils、RandomUtils、FastDateFormat(線程安全版本的SimpleDateFormat)。
官網(wǎng):http://commons.apache.org/proper/commons-lang/index.html
集合操作
1.Apache Commons Collections
集合相關(guān)操作工具類。
官網(wǎng):http://commons.apache.org/proper/commons-collections/
2.Guava
Guava是Google的一組核心Java庫,除了可以操作我們常用的集合類型之外,還可以操作新的集合類型(例如多圖和多集)和不可變的集合。
github:https://github.com/google/guava
全能型工具類
1.Guava
Guava是Google的一組核心Java庫,其中包括新的集合類型(例如多圖和多集),不可變的集合,圖形庫以及用于并發(fā),I / O,哈希,緩存,基元,字符串等的實(shí)用程序!它廣泛用于Google的大多數(shù)Java項(xiàng)目中,也被許多其他公司廣泛使用。
github:https://github.com/google/guava
2.Hutool
Hutool是一個(gè)Java工具包,也只是一個(gè)工具包,它幫助我們簡(jiǎn)化每一行代碼,減少每一個(gè)方法,讓Java語言也可以“甜甜的”。
github:https://github.com/looly/hutool
日期和時(shí)間操作
1.Joda-Time
Joda-Time提供了Java日期和時(shí)間類的質(zhì)量替代。
官網(wǎng):https://www.joda.org/joda-time/
單元測(cè)試
1.JUnit
官網(wǎng):https://junit.org/junit5/
2.Mockito
Mockito是一個(gè)Java單元測(cè)試模擬框架。
官網(wǎng):https://site.mockito.org/
3.PowerMock
PowerMock也是一個(gè)Java單元測(cè)試模擬框架,它可以模擬靜態(tài)方法、構(gòu)造函數(shù)、最終類和方法、私有方法、刪除靜態(tài)初始化器等。
官網(wǎng):http://powermock.github.io/
4.moco
在日常接口測(cè)試的工作中,經(jīng)常需要依賴其他系統(tǒng)的API,但是聯(lián)調(diào)不常有,只能自己通過mock完成數(shù)據(jù)依賴。Moco是一個(gè)模擬服務(wù)器端服務(wù)的項(xiàng)目,可以用于測(cè)試打樁。
github:https://github.com/dreamhead/moco
安全框架
1.Apache Shiro
Apache Shiro是一個(gè)功能強(qiáng)大且易于使用的Java安全框架,它用于身份驗(yàn)證、授權(quán)、加密和會(huì)話管理。使用Shiro易于理解的API,可以快速輕松地保護(hù)任何應(yīng)用程序,從最小的移動(dòng)應(yīng)用程序到最大的Web和企業(yè)應(yīng)用程序。
官網(wǎng):http://shiro.apache.org/
日志
1.SLF4J + Logback
SLF4J是為各種loging APIs提供一個(gè)簡(jiǎn)單統(tǒng)一的接口,從而使得最終用戶能夠在部署的時(shí)候配置自己希望的loging APIs實(shí)現(xiàn),它是一個(gè)日志接口。
Logback是由log4j創(chuàng)始人設(shè)計(jì)的又一個(gè)開源日志組件,它是一個(gè)日志的實(shí)現(xiàn)。
SLF4J官網(wǎng):http://www.slf4j.org/
Logback官網(wǎng):https://logback.qos.ch/
對(duì)象池
1.Apache Commons Pool
Apache Commons Pool提供了對(duì)象池API和一系列對(duì)象池實(shí)現(xiàn)。
官網(wǎng):https://commons.apache.org/proper/commons-pool/
基本網(wǎng)絡(luò)通訊
1.Apache Commons Net
Apache Commons Net庫實(shí)現(xiàn)了許多基本互聯(lián)網(wǎng)協(xié)議的客戶端。該庫的目的是提供基本協(xié)議訪問,而不是更高級(jí)別的抽象。
官網(wǎng):http://commons.apache.org/proper/commons-net/index.html
作業(yè)調(diào)度框架(定時(shí)任務(wù))
1.Quartz
Quartz是一個(gè)開源的作業(yè)調(diào)度框架,它完全由Java編寫,能夠用它來為執(zhí)行一個(gè)作業(yè)而創(chuàng)建簡(jiǎn)單的或復(fù)雜的調(diào)度。
官網(wǎng):http://www.quartz-scheduler.org/
github:https://github.com/quartz-scheduler/quartz
2.ElasticJob
ElasticJob是一種分布式調(diào)度解決方案,解決了Quartz不支持分布式的弊端。Elastic job主要的功能有支持彈性擴(kuò)容,通過Zookepper集中管理和監(jiān)控job,支持失效轉(zhuǎn)移等。
github:https://github.com/apache/shardingsphere-elasticjob
配置中心
1.Nacos
Nacos是一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái)。Nacos的動(dòng)態(tài)配置服務(wù)讓您能夠以中心化、外部化和動(dòng)態(tài)化的方式管理所有環(huán)境的配置。動(dòng)態(tài)配置消除了配置變更時(shí)重新部署應(yīng)用和服務(wù)的需要。配置中心化管理讓實(shí)現(xiàn)無狀態(tài)服務(wù)更簡(jiǎn)單,也讓按需彈性擴(kuò)展服務(wù)更容易。
官網(wǎng):https://nacos.io/
github:https://github.com/alibaba/nacos
2.Spring Cloud Config
Spring Cloud Config為分布式系統(tǒng)中的外部化配置提供服務(wù)器端和客戶端支持。使用Config Server,您可以在中心位置管理所有環(huán)境中應(yīng)用程序的外部屬性。
文檔:https://cloud.spring.io/spring-cloud-config/reference/html/
3.Apollo
Apollo(阿波羅)是攜程框架部門研發(fā)的分布式配置中心,能夠集中化管理應(yīng)用不同環(huán)境、不同集群的配置,配置修改后能夠?qū)崟r(shí)推送到應(yīng)用端,并且具備規(guī)范的權(quán)限、流程治理等特性,適用于微服務(wù)配置管理場(chǎng)景。
github:https://github.com/ctripcorp/apollo
限流
1.Guava RateLimiter
RateLimiter基于令牌桶算法,即以用戶設(shè)定的恒定速率向令牌桶內(nèi)放置令牌,用戶來執(zhí)行任務(wù)時(shí),只有拿到令牌才能執(zhí)行。
2.Sentinel
Sentinel是面向分布式服務(wù)架構(gòu)的高可用防護(hù)組件,主要以流量為切入點(diǎn),從流量控制、熔斷降級(jí)、系統(tǒng)自適應(yīng)保護(hù)等多個(gè)維度來幫助用戶保障微服務(wù)的穩(wěn)定性。
官網(wǎng):https://sentinelguard.io/
github:https://github.com/alibaba/Sentinel
熔斷降級(jí)
當(dāng)調(diào)用鏈路中某個(gè)資源出現(xiàn)不穩(wěn)定,例如,表現(xiàn)為timeout,異常比例升高的時(shí)候,則對(duì)這個(gè)資源的調(diào)用進(jìn)行限制,并讓請(qǐng)求快速失敗,避免影響到其它的資源,最終產(chǎn)生雪崩的效果。
1.Sentinel
Sentinel通過并發(fā)線程數(shù)進(jìn)行限制和通過響應(yīng)時(shí)間對(duì)資源進(jìn)行降級(jí)兩種手段對(duì)資源調(diào)用進(jìn)行限制,讓請(qǐng)求快速失敗,避免影響到其它的資源。
官網(wǎng):https://sentinelguard.io/
github:https://github.com/alibaba/Sentinel
2.Hystrix
Hystrix 通過線程池的方式,來對(duì)資源進(jìn)行了隔離。這樣做的好處是資源和資源之間做到了最徹底的隔離。缺點(diǎn)是除了增加了線程切換的成本,還需要預(yù)先給各個(gè)資源做線程池大小的分配。Hystrix不再處于主動(dòng)開發(fā)中,并且當(dāng)前處于維護(hù)模式,官方推薦使用Resilience4j替代。
github:https://github.com/Netflix/Hystrix
3.Resilience4j
Resilience4j是受Netflix Hystrix啟發(fā)的輕量級(jí)容錯(cuò)庫,但專為Java 8和函數(shù)式編程而設(shè)計(jì)。輕巧,因?yàn)樵搸靸H使用Vavr,而Vavr沒有任何其他外部庫依賴項(xiàng)。
github:https://github.com/resilience4j/resilience4j
分庫分表
1.Apache ShardingSphere
Apache ShardingSphere定位為關(guān)系型數(shù)據(jù)庫中間件,旨在充分合理地在分布式的場(chǎng)景下利用關(guān)系型數(shù)據(jù)庫的計(jì)算和存儲(chǔ)能力,而并非實(shí)現(xiàn)一個(gè)全新的關(guān)系型數(shù)據(jù)庫。支持?jǐn)?shù)據(jù)分片、讀寫分離、多數(shù)據(jù)副本、數(shù)據(jù)加密、影子庫壓測(cè)等功能。
官網(wǎng):https://shardingsphere.apache.org/
github:https://github.com/apache/shardingsphere
2.Mycat
Mycat是數(shù)據(jù)庫分庫分表中間件。
官網(wǎng):http://www.mycat.org.cn/
github:https://github.com/MyCATApache
序列化
1.Kryo
Kryo是用于Java的快速高效的二進(jìn)制對(duì)象圖序列化框架。該項(xiàng)目的目標(biāo)是高速,小尺寸和易于使用的API。每當(dāng)需要將對(duì)象持久保存到文件,數(shù)據(jù)庫還是通過網(wǎng)絡(luò)時(shí),該項(xiàng)目都是有用的。
github:https://github.com/EsotericSoftware/kryo
2.Hessian
Hessian是一款支持多種語言進(jìn)行序列化操作的框架技術(shù),同時(shí)在進(jìn)行序列化之后產(chǎn)生的碼流也較小,處理數(shù)據(jù)的性能方面遠(yuǎn)超于java內(nèi)置的jdk序列化方式。
官網(wǎng):http://hessian.caucho.com/
3.Protobuf
Protobuf是谷歌開源的一個(gè)靈活的、高效的用于序列化數(shù)據(jù)的協(xié)議。相比較XML和JSON格式,protobuf更小、更快、更便捷。
github:https://github.com/protocolbuffers/protobuf
官網(wǎng):https://developers.google.com/protocol-buffers/
RPC框架
1.Dubbo Apache Dubbo是一款高性能、輕量級(jí)的開源Java RPC框架,它提供了三大核心能力:面向接口的遠(yuǎn)程方法調(diào)用,智能容錯(cuò)和負(fù)載均衡,以及服務(wù)自動(dòng)注冊(cè)和發(fā)現(xiàn)。
官網(wǎng):http://dubbo.apache.org/zh-cn/
github:https://github.com/apache/dubbo
2.Thrift Thrift是一個(gè)軟件框架(遠(yuǎn)程過程調(diào)用框架),用來進(jìn)行可擴(kuò)展且跨語言的服務(wù)的開發(fā)。它結(jié)合了功能強(qiáng)大的軟件堆棧和代碼生成引擎,以構(gòu)建在C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml這些編程語言間無縫結(jié)合的、高效的服務(wù)。Thrift最初由facebook開發(fā),07年四月開放源碼,08年5月進(jìn)入apache孵化器,現(xiàn)在是 Apache 基金會(huì)的頂級(jí)項(xiàng)目。Thrift允許你定義一個(gè)簡(jiǎn)單的定義文件中的數(shù)據(jù)類型和服務(wù)接口,以作為輸入文件,編譯器生成代碼用來方便地生成RPC客戶端和服務(wù)器通信的無縫跨編程語言。
官網(wǎng):http://thrift.apache.org/
3.gRPC gRPC是一個(gè)現(xiàn)代的、開源的、高性能的遠(yuǎn)程過程調(diào)用(RPC)框架,可以在任何地方運(yùn)行。gRPC使客戶機(jī)和服務(wù)器應(yīng)用程序能夠透明地通信,并簡(jiǎn)化了連接系統(tǒng)的構(gòu)建。目前提供C、Java和Go語言版本,分別是:grpc, grpc-java, grpc-go. 其中C版本支持C, C++, Node.js, Python, Ruby, Objective-C, PHP和C#支持。
官網(wǎng):https://www.grpc.io/
github:https://github.com/grpc/grpc