『壹』 Java EE的基本學習路線是什麼
可從事崗位:初級JAVA軟體工程師
Java核心編程(15天) JavaSE編程基礎 介紹JavaEE的應用領域及整體技術體系,生態圈,以及當前就業環境。強調學習紀律及相關約定,講師的個人介紹;DOS常用命令;安裝JDK、設置環境變數;DOS系統編譯、執行Java程序;Java的注釋;標識符、標識符的命名規范;Java 關鍵字;Java的數據類型;變數的定義及初始化;Java的運算符;表達式;轉義字元;運算符的優先順序;類型轉換;Java分支if...else;多重if、嵌套if;Java switch;switch vs if;Java循環 for、while 、do-while;循環的嵌套;break、continue、return;方法的定義;方法的形參和實參;無返回值的方法;有返回值的方法;方法的重載
Java數組 Java 數組的定義;數組的靜態賦值;數組的動態賦值;數組單個元素的訪問;數組的遍歷訪問;數組的增強for循環;數組的排序;數組的順序查找;數組的二分法查找;命令行參數args的使用;可變參數的應用;Arrays工具類的使用;二維數組的使用
Java面向對象 面向對象的分析與設計;面向對象與面向過程的區別;Java與面向對象;類的定義;對象的定義;類中成員變數及方法的定義;構造方法的定義和調用;構造方法的重載;面向對象的封裝特性;this調用屬性、方法、構造方法;局部變數和成員變數的作用域問題;static靜態屬性、方法、代碼塊;工具類的概念及工具類的製作;super關鍵字的使用及理解;Java中訪問許可權控制機制;繼承中構造方法的細節;方法的重寫;equals及toString方法的正確理解;Java中的包機制;抽象類,介面,多態;對象的轉型;final修飾類、屬性、方法;抽象類,介面;多態機制;內部類;通過內部類製作性能檢測工具;Java的內存分析
常用基礎類 常用數據類型的包裝類;String、StringBuffer、StringBuilder;Date的使用;SimpleDataFormate對日期和字元串之間的轉換處理;Calendar日歷類的使用;Math常用方法;Random類;Runtime類;System 類;Java8特性
集合 集合框架體系介紹;集合框架與數組的對比;集合框架之Collection介面;集合框架之List介面;ArrayList和LinkedList的使用;深入源碼探究ArrayList和LinkedList的工作原理;迭代器的工作原理;迭代器的使用;集合框架之Set;HashSet和TreeSet的使用;深入源碼探究HashSet和TreeSet的工作原理;HashMap和TreeMap的使用;分析Map和Set的之間的關系;Collections工具類
異常處理 Java的異常體系;異常的概念及分類;異常的處理方式;異常設計原則;自定義異常
線程和I/O I/O;NIO;文件操作;多線程;線程池;同步;線程調度;多線程下載;網路http、socket;基於HTTP協議訪問網路資源、XML解析;文件的下載;ThreadLocal
項目 FTP伺服器、多人聊天伺服器
第二階段:JavaWeb實戰(25天)
可從事崗位:WEB初級前端開發工程師,初級BI工程師
JavaWeb實戰(25天) HTML5 HTML的作用;全局標簽;絕對路徑與相對路徑;常見標簽;字元集;表單標簽;布局指定的網頁
CSS3 CSS聲明類型;常見的各種屬性;圓角屬性:border-radius的使用;陰影屬性:box-shadow的用法;背景屬性擴展:多背景應用;新的顏色表示方式:HSLA色輪模式;浮動;完成自己的初級課頁面實戰
Javascript JavaScript基本語法;JavaScript數據類型;JavaScript對象和常用對象;history對象;location對象;bom對象;表單對象;DOM對象;window對象;常用事件;選項卡、幻燈片、貪吃蛇、瀑布流各種特效
MySQL使用 Mysql資料庫;MySql命令行客戶端的使用;MySql圖形化客戶端的使用;SQL語句介紹;DDL;DML;DQL;多表的聯合查詢;子查詢;排序、聚合、分組
JDBC連接池 JDBC的介紹;採用JDBC實現CRUD;採用PrepareStatement防止SQL注入,提高安全性
Servlet Tomcat與idea的集成開發;什麼是Servlet;Servlet接收客戶端請求信息;Servlet響應客戶端信息;Servlet的生命周期;什麼是JSP;JSP的內置對象;透析JSP的本質;JSTL+EL;MVC介紹;分層的重要性;MySql的事務特性;MySql的事務實現;Session的使用;Cookie的使用;實現系統的安全控制;DBCP連接池的使用;C3P0連接池的使用;DBUils;實現用戶的自動登錄;文件的上傳;文件的下載;過濾器解決編碼問題;過濾器解決安全驗證問題;監聽器;反射、註解、泛型
MVC 設計模式;ORM原理;自定義框架
ajax Ajax的工作原理;JSON解析;Ajax 數據格式(XML格式、HTML格式、JSON格式、各種格式對比);使用 jQuery 實現 Ajax(load()方法、$.get()方法、$.post()方法、序列化、Ajax應用);聊天室小實例
jQuery jQuery選擇器;jQuery的常用事件;事件冒泡;事件委派;jQuery中的動化;模擬操作;jQuery綜合實例
Bootstrap 響應式設計;Bootstrap安裝;Bootstrap 組件;進度條和列表組件;Bootstrap綜合實例
項目 講解項目開發流程;項目簡介;項目功能演示;項目功能實現分析;資料庫設計分析;項目架構設計分析;實現網站首頁的商品展示;實現商品詳情頁面;實現購物車功能;實現我的訂單管理;項目驗收
第三階段:企業核心框架(30天)
可從事崗位:中級BI工程師,JAVA微服務研發工程師
企業核心框架(30天) Linux基礎 Linux系統-基礎;Linux網路基礎;VMWare下安裝Linux;Linux命令;Linux下Java環境的搭建;Linux下Tomcat安裝和配置
maven Maven簡介和環境搭建;Maven構建和自動化構建;pom.xml詳細說明、依賴管理;Maven坐標、依賴、生命周期等;IDEA下的Maven使用
Git Git概述、Git與SVN對比;Git常用命令;Git分支以及代碼沖突的解決;客戶端TortoiseGit使用;IDEA中Git集成使用
Spring5 框架原理介紹;框架環境搭建;快速入門;創建Bean的方式及實現原理;Bean種類;Bean生命周期;Bean的作用域;Bean的注值方式;SpEL;整合Junit測試;Web項目集成Spring;註解裝配Bean;AOP思想;AOP原理解剖;傳統方式實現AOP開發;AspectJ介紹及實現AOP開發
SpringMVC Spring MVC 概述;使用 @RequestMapping映射請求;請求處理方法簽名概述;處理方法簽名詳細說明;使用 HttpMessageConverter;處理模型數據;數據綁定流程剖析;數據轉換;數據格式化;數據校驗;視圖和視圖解析器;處理方法的數據綁定
MyBatis 安裝和配置MyBatis;使用映射語句;執行非查詢語句;使用高級查詢技術;事務;使用動態SQL;使用高速緩存提高性能;MyBatis數據訪問對象;DAO使用進階
項目整合 使用SSM開發實際項目;通過項目理解框架
SpringData Spring Data 概述;Repository;CrudRepository;PagingAndSortingRepository;JpaRepository;條件查詢;使用@Query自定義查詢;@Query 與 @Modifying 執行更新操作;索引參數與命名參數;用@Query來指定本地查詢;為某一個 Repository 上添加自定義方法;所有的 Repository 都添加自定義的方法
Maven高級 pom文件依賴傳遞介紹;Maven繼承與聚合項目;私服倉庫介紹和搭建;公共模塊上傳到私服、引用私服jar包;Maven常用插件使用;使用Maven的profile實現多環境配置
Gitlab/Jenkins Gitlab使用;持續集成工具Jenkins使用;Jenkins+Gitlab+maven+tomcat實現自動集成、打包、部署
WebSocket WebSocket原理介紹;WebSocket的使用
RESTful http協議;RESTful規范;postman使用;spring 實現 RESTful
ECharts圖表插件 圖表介紹和選擇什麼樣的圖表;5分鍾快速上手;常用API和模塊;移動端自適應
項目一 10個大型項目選擇;各種項目特點分析;項目設計;項目分組;選擇框架;後台搭建;使用Maven構建項目;項目開發;壓力測試;webhooks項目自動部署;面試中常問到的項目問題;項目bug收集和解決;項目驗收;項目答辯
第四階段:高並發和分布式應用(40天)
可從事崗位:服務端架構師, 平台架構師
高並發和分布式應用(40天) Nginx反向代理和負載均衡 Nginx伺服器的優勢;Nginx伺服器配置;什麼是反向代理;什麼是負載均衡;負載均衡演算法;構建數十台伺服器的負載均衡環境
Docker Docker介紹;Docker安裝;Docker 常見操作;Docker 自定義鏡像;Docker Compose服務編排;Docker Compose 安裝Nexus;Docker Compose 安裝 Gitlab;Docker Compose 安裝 Docker Registry;基於Gitlab實現CI
UML和常用工具的使用 UML介紹以及在軟體開發中的應用;UML常用圖的繪制以及使用;Enterprise Architect的使用;結合UML知識對項目做需求分析;結合UML知識對項目做架構設計以及技術選型
億級並發架構演進 架構演進特點;大並發架構;微服務
MySQL高級 ACID和MySQL的實現原理;SQL優化技巧;MySQL分區;分庫分表技巧;Explain分析
MyCat分庫分表技術 MyCat介紹;分庫分開技術講解;其他的資料庫中間件;配置與自動分表
Vue Vue 入門;Vue 語法;Vue 事件;Axios 網路通信;Vue表單輸入;Vue 計算屬性;Vue內容分發與自定義事件;Vue-cli腳手架;Vue-Router 路由;Vuex 狀態管理
SpringBoot SpringBoot基本介紹和使用;SpringBoot的核心功能;SpringBoot開發web項目;SpringBoot整合Junit以及MockMvc的使用;SpringBoot集成Swagger;Spring Data JPA 的使用;SpringBoot整合MyBatis
Shiro Authentication;Authorization;Role;編程授權;Realm;Realms的認證實現;Realms的授權實現;Spring 集成 Shiro;基於註解的授權
CAS 單點登錄介紹;CAS單點登錄配置;CAS MD5配置;CAS 鹽值MD5;CAS整合Shiro
Zookeeper/Consul Zookeeper 簡介;Zookeeper安裝;Zookeeper高可用集群;Curator-API;Zookeeper分布式鎖;統一配置管理;Consul使用
Dubbo Dubbo簡介;Spring整合Dubbo2.6x使用;Dubbo管控台;Springboot 2.x整合bbo 2.6x;Dubbo負載均衡;Dubbo集群容錯
Spring Cloud SpringCloud之 微服務簡介;SpringCloud之 Eureka;SpringCloud之 Ribbon;SpringCloud之 Feign;SpringCloud之 HyStrix;SpringCloud之 Zuul;SpringCloud之Stream;SpringCloud之Sleuth;SpringCloud之 ConfigServer;微服務安全解決方案:Oauth2/JWT
Redis NoSQL&Redis;Redis特點與優勢以及使用場景;Redis主從、哨兵、集群模式安裝配置;Redis持久化策略、淘汰策略;Redis五大數據類型和基本操作命令;SpringBoot集成Lettuce API;SpringBoot集成Redisson API分布式場景應用
Elasticsearch ElasticSearch簡介;ElasticSearch基礎入門;ElasticSearch集群以及Kibana和分詞插件的安裝;ElasticSearch索引、分片創建與管理;ElasticSearch基本搜索;ElasticSearch組合搜索;Elasticsearch全文檢索,高亮顯示;Elasticsearch Java High Level REST Client使用
RabbitMQ 隊列 RabbitMQ 簡介;RabbitMQ 安裝;RabbitMQ賬戶;RabbitMQ消息模式;Spring整合RabbitMQ;SpringBoot整合RabbitMQ;消息確認機制;消息延遲隊列;RabbitMQ高可用集群
分布式事務 分布式事務場景;分布式事務解決方案;CAP理論;兩段提交協議;三段提交協議;MQ事務消息;TX-LCN/TCC-Transaction
分布式任務(Quartz/Elastic-Job) Quartz基本使用;Quartz不同觸發器;Quartz自動化任務;Spring定時任務;Spring整合Quartz;Elastic-Job分布式任務
微信開發 微信公眾號;微信支付;微信小程序
綜合項目實戰 15個大型項目選擇;各種項目特點分析;項目設計;項目分組;選擇框架;後台搭建;使用Maven構建項目;項目開發;壓力測試;項目自動部署;面試中常問到的項目問題;項目bug收集和解決;項目上線;項目驗收;項目答辯
『貳』 想要系統學習java到底要學習哪些知識
學習Java之前先了解這些:
第一:在如今這個Java的市場下,你如果太過於著急找工作而去學習,你一定找不到,有一個很簡單的道理,任何東西求快沒有用,首先你要把技術學的熟練。而不是指望自己看看視頻,就能拿到高薪的工作。
第二:如果沒有一套系統的學習路線和方案,這看看,那裡看看,依舊學了之後還是浪費時間,根據我的學習經歷來看,任何人學習任何東西,需要一氣呵成,在這段時間內,學習什麼就一刻都不能鬆懈,今天看點視頻,明天有事,不看了,這樣沒啥意義。
第三:在如今這個IT市場,Java開發工作競爭越來越激烈,如果你是小白轉行的,那麼建議你找個好的機構培訓學習下,不要心疼錢,你要知道有付出才有回報,投資自己什麼時候都是對的選擇,先找些基礎資料自己自學一段時間看看到底適合自己不,不要盲目的學習。
第四:如果你在學習中沒有很多的代碼量的話,不多去做案例的話,我個人覺得學了跟沒學一樣,第二次你見到它可能還是不認識它。最好是有個問的人,一個外行想通過自學Java開發區找工作,太難了,尤其是在這個行情中。既然學習就學好,不要三天打魚兩天曬網的,還不如不學習了,要謙虛,不要學點就自大。
第五:作為一個Java初學者,我們應該需要知道從零基礎到就業,需要掌握的技術知識點有哪些,這個時候我建議你上各大招聘平台看下,看下現在的崗位需求是什麼,以此這就是我們學習的目標。
所有語言的知識體系分為三大塊:
數據存儲 (內存,文件,資料庫,分布式,集群, 關系型 ,非關系型 。。)
業務邏輯 (業務需求,語言語法,演算法,類庫框架,性能優化等)
信息交互(展示)(多端,app,小程序,公眾號,移動端,pc端,web開發等。。)
這三塊知識作為學習來說,可以有側重,但是不能有某一塊完全不懂。
另給你分享一個Java的學習路線:
如果需要學習的資料,可私聊回復「資料」獲取~
希望能幫到你,望採納!!
『叄』 spring cloud feign和zuul的區別
zuul作為整個應用的流量入口,接收所有的請求,如app、網頁等,並且將不同的請求轉發至不同的處理微服務模塊,其作用可視為nginx。
feign則是將當前微服務的部分服務介面暴露出來,並且主要用於各個微服務之間的服務調用。
兩者的應用層次以及原理均不相同。
『肆』 zuulfilter 怎麼使用環境變數
路由是微服務架構的不可或缺的一部分。例如:」/」 可能映射到你應用主頁,/api/users映射到用戶服務,/api/shop映射到購物服務。Zuul。Zuul是Netflix出品的一個基於JVM路由和服務端的負載均衡器。
Netflix uses Zuul for the following:
* Authentication
* Insights
* Stress Testing
* Canary Testing
* Dynamic Routing
* Service Migration
* Load Shedding
* Security
* Static Response handling
* Active/Active traffic management
Zuul的規則和過濾器允許使用各種基於JVM的語言,支持基於Java和Groovy。
注意:zuul.max.host.connections已經被兩個新的屬性替代:zuul.host.maxTotalConnections 和 zuul.host.maxPerRouteConnections,默認分別為200和20.
注意:默認所有routes的Hystrix隔離模式(ExecutionIsolationStrategy)是SEMAPHORE zuul.ribbonIsolationStrategy可以改為THREAD,如果這個隔離模式更好。
『伍』 springcloud執行流程
1.Servlet
zuul.servletPath默認配置為/zuul,故請求為/zuul開頭的會跳過dispatcherServlet直接進入ZuulServlet,該配置可以自定義配置,例如用於大文件上傳
2.ZuulServlet中service方法
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
try {
this.init((HttpServletRequest)servletRequest, (HttpServletResponse)servletResponse);
RequestContext context = RequestContext.getCurrentContext();
context.setZuulEngineRan();
try {
//運行pre過濾器
this.preRoute();
} catch (ZuulException var12) {
//有異常,執行errorFilter
this.error(var12);
//再執行postFilter
this.postRoute();
return;
}
try {
//運行rote過濾器
this.route();
} catch (ZuulException var13) {
//有異常,執行errorFilter
this.error(var13);
//再執行postFilter
this.postRoute();
return;
}
try {
//運行post過濾器
this.postRoute();
} catch (ZuulException var11) {
//有異常,執行errorFilter
this.error(var11);
}
} catch (Throwable var14) {
this.error(new ZuulException(var14, 500, "UNHANDLED_EXCEPTION_" + var14.getClass().getName()));
} finally {
RequestContext.getCurrentContext().unset();
}
}
3.FilterProcessor
其運行交由FilterProcessor中的方法runFilters,根據service中的順序,取不同的filter類型,執行其中的run方法
public Object runFilters(String sType) throws Throwable {
if (RequestContext.getCurrentContext().debugRouting()) {
Debug.addRoutingDebug("Invoking {" + sType + "} type filters");
}
boolean bResult = false;
List<ZuulFilter> list = FilterLoader.getInstance().getFiltersByType(sType);
if (list != null) {
for(int i = 0; i < list.size(); ++i) {
ZuulFilter zuulFilter = (ZuulFilter)list.get(i);
Object result = this.processZuulFilter(zuulFilter);//見下面zuulFilter的runFilter()
if (result != null && result instanceof Boolean) {
bResult |= ((Boolean)result).booleanValue();
}
}
}
return bResult;
}
zuulFilter的runFilter方法,當filter的shouldFilter()返回true時才執行run()方法
public ZuulFilterResult runFilter() {
ZuulFilterResult zr = new ZuulFilterResult();
if (!this.isFilterDisabled()) {
if (this.shouldFilter()) {
Tracer t = TracerFactory.instance().startMicroTracer("ZUUL::" + this.getClass().getSimpleName());
try {
Object res = this.run();
zr = new ZuulFilterResult(res, ExecutionStatus.SUCCESS);
} catch (Throwable var7) {
t.setName("ZUUL::" + this.getClass().getSimpleName() + " failed");
zr = new ZuulFilterResult(ExecutionStatus.FAILED);
zr.setException(var7);
} finally {
t.stopAndLog();
}
} else {
zr = new ZuulFilterResult(ExecutionStatus.SKIPPED);
}
}
return zr;
}
4.獲取過濾器FilterRegistry
其中的屬性private final ConcurrentHashMap<String, ZuulFilter> filters = new ConcurrentHashMap();
保存所有的過濾器
例子中有12個(其中有兩個為自定義的):
[org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter@3dc68586,
org.springframework.cloud.netflix.zuul.filters.pre.Servlet30WrapperFilter@4001d8c1,
org.springframework.cl
『陸』 Zuul配置項中sensitiveHeaders和ignoredHeaders的不同
路由是微服務架構的不可或缺的一部分。例如:」/」 可能映射到你應用主頁,/api/users映射到用戶服務,/api/shop映射到購物服務。Zuul。Zuul是Netflix出品的一個基於JVM路由和服務端的負載均衡器。
Netflix uses Zuul for the following: * Authentication * Insights * Stress Testing * Canary Testing * Dynamic Routing * Service Migration * Load Shedding * Security * Static Response handling * Active/Active traffic management
Zuul的規則和過濾器允許使用各種基於JVM的語言,支持基於Java和Groovy。
注意:zuul.max.host.connections已經被兩個新的屬性替代:zuul.host.maxTotalConnections 和 zuul.host.maxPerRouteConnections,默認分別為200和20.
注意:默認所有routes的Hystrix隔離模式(ExecutionIsolationStrategy)是SEMAPHORE zuul.ribbonIsolationStrategy可以改為THREAD,如果這個隔離模式更好。
org.springframework.cloud and artifact id spring-cloud-starter-zuul。See the Spring Cloud Project page for details。
當一個UI應用想要代理調用一個或者多個後台服務的時候,Sping cloud創建了一個嵌入的Zuul proxy很方便的開發一個簡單的案例。這個功能對於代理前端需要訪問的後端服務非常有用,避免了所有後端服務需要關心管理CORS和認證的問題.
在Spring Boot主函數上通過註解 @EnableZuulProxy 來開啟, 這樣可以讓本地的請求轉發到適當的服務. 按照約定, 一個ID為」users」的服務會收到 /users 請求路徑的代理請求(前綴會被剝離). Zuul使用Ribbon定位服務注冊中的實例, 並且所有的請求都在hystrix的command中執行, 所以失敗信息將會展現在Hystrix metrics中, 並且一旦斷路器打開, 代理請求將不會嘗試去鏈接服務.
注意:Zuul starter沒有包含服務發現的客戶端, 所以對於路由你需要在classpath中提供一個根據service IDs做服務發現的服務.(例如, eureka是一個不錯的選擇)
『柒』 Java培訓班一般都教什麼內容
1、Java基礎
初識Java:Java入門,Java基礎,Java使用技巧
面向對象編程:Java面向對象編程理論與應用,集合框架與數據結構,Java文件操作與網路編程
資料庫理論與應用:數據存儲的概念及理論,資料庫技術及產品的發展史,當下流行資料庫MySQL和Oracle資料庫的使用
互聯網網站及信息系統的開發與應用:網站頁面及效果設計,互動式網站開發技術及開發流 程,網站開發框架及簡單企業開發應用
2、java中級
企業團隊項目協同開發與維護:協同開發概述,協同開發技術原理與應用
商業項目模塊化基礎與應用:軟體項目自動化構建概述,自動化構建原理,自動化構建技術與應用
軟體項目測試與實施:軟體測試概述,軟體測試流程及測試工具使用,測試檔案及測試用例編寫,測試報告分析
企業主流開發框架應用與優化:框架技術概述,框架技術發展史,主流框架介紹,主流框架的使用,整合多個框架綜合開發項目
3、java高級
網站及信息管理系統的視覺美化:網站前端視覺美化概述,網站前端UI概述,網站前端UI框架概述,主流網站前端UI使用
網站及信息管理系統性能調優:分布式系統概述,數據緩存概述,分布式數據緩存技術及工具的使用
網站及信息管理系統業務個性化定製:企業定時任務與郵件發送業務,企業統計報表及網路服務業務,企業搜索引擎業務
4、java資深
分布式項目管理與項目構建:分布式概述,分布式特點與問題,分布式項目開發工具概述與使用
Java前沿框架解析:Java前沿框架概述,Java前沿框架優勢與未來趨勢,Java 前沿框架的使用與項目整合
藍鷗OA:企業真實項目實戰:項目概述,團隊項目開發流程概述與實施,項目開發工具使用,項目流程與質量控制,項目測試與項目發布,項目實施與項目維護
『捌』 ZuulFilter 如何判斷當前請求是否下載文件
於這種,我說兩種方法:
1、將你所有的JSP頁面單獨放在一個文件夾里(假如jspPage),jspPage文件夾里可根據類別分若乾子文件夾,再把相對應的JSP放在子文件夾里;
JS、CSS及圖片等分別放在外面的文件夾里(與文件夾jspPage並列)
再:<url-pattern>/jspPage/*</url-pattern>就行了
一般用的就是這種
2、在過濾的JAVA文件中,在doFilter方法里進行判斷,將後綴名為.css、.js等直接設置為通過就行了,這種較為復雜,在一些特殊情況下才用到,一般不推薦
『玖』 zuul怎麼實現單點登錄
Zuul作為整個系統的網關,有幾樣工作特別適合:
路由,Zuul的天職
負載均衡,Zuul 2.0的性能還是可以期待的
日誌,由於外部的請求都經過Zuul因此它的日誌處理是非常重要和必要的
鑒權,同樣由於外部服務都經過Zuul,鑒權也是非常合適的,因此對於SpringCloud體系來說做CAS的單點登錄的集成Zuul是最合適不過的。
我們Zuul也是基於SpringBoot,因此可以使用Spring Security的套路實現CAS的攔截與驗證等工作。
簡單的總結一下:
將CAS集成放到Zuul上
使用Spring Security套餐
但同時我們也知道Zuul還要處理日誌,因此要將CAS與Zuul本身的職責協調好,同時我們也都知道Zuul核心是ZuulFilter,而SpringSecurity實質上也是一系列的Filter來處理,把這兩套Fillter理清楚是搞定這個問題的先決條件。目前最單點登錄的公司其實是有一些的,但是真正有技術實力的其實並不是很多。如果說非得推薦一家的話,比如玉符科技SSO,我了解了一下,他們的產品還是不錯的。
『拾』 有了sprint cloud的zuul,還有用nginx的必要麼
這是兩個概念,nginx是做負載均衡請求轉發,更多被用作負載均衡器使用的;zuul是請求轉發,一般用來做網關的,zuul配合eureka來使用,zuul功能也很強大,nginx要做這些功能也是可以,但是需要各種腳本語言來支持,比如lua腳本等,但是zuul來說的話開發成本就低很多,懂spring就夠了。
這塊還會設計到一些分布式原子化問題,我都是一個坑一個坑踩過來的,有什麼問題可以繼續探討,建議還是多了解一下spring cloud的核心思想,把整個分布式架構了解一下。如有問題歡迎追問,謝謝!