二、使用的技術以及分析
===================
微服務(Microservices)是一種架構風格,一個大型復雜軟件應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是松耦合的。每個微服務僅關注于完成一件任務并很好地完成該任務。在所有情況下,每個任務代表著一個小的業務能力。
微服務的優點在于:每個微服務都很小,這樣能聚焦一個指定的業務功能或業務需求。微服務能夠被小團隊單獨開發,這個小團隊是2到5人的開發人員組成。微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。微服務能使用不同的語言開發。微服務易于被一個開發人員理解,修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能體現價值。
實現本電子銀行系統會使用到的技術棧:
-
服務注冊發現: eureka
-
服務開發:Springboot、Spring、SpringMVC
-
配置管理:spring config , spring security
-
服務調用 REST
-
API網關: Spring Cloud Gateway
-
分布式鎖: redis
-
安全認證: JWT
-
服務監控: spring-boot-admin
1. sping cloud
Spring Cloud是一個基于Spring Boot實現的云原生應用開發工具,它為基于JVM的云原生應用開發中涉及的配置管理、服務發現、熔斷器、智能路由、微代理、控制總線、分布式會話和集群狀態管理等操作提供了一種簡單的開發方式。
考慮 Spring Cloud 的原因有如下幾點:
(1)Spring Cloud 來源于 Spring,質量、穩定性、持續性都可以得到保證。
(2)Spirng Cloud 天然支持 Spring Boot,更加便于業務落地。
(3)Spring Cloud 是 Java 領域最適合做微服務的框架。
(4)相比于其它框架,Spring Cloud 對微服務周邊環境的支持力度最大。
(5)對于中小企業來講,使用門檻較低。
(6)Spring Cloud 是微服務架構的最佳落地方案。
2. 服務注冊發現
Eureka是Netflix開發的服務發現框架,本身是一個基于REST的服務,主要用于定位運行在AWS域中的中間層服務,以達到負載均衡和中間層服務故障轉移的目的。SpringCloud將它集成在其子項目spring-cloud-netflix中,一實現SpringCloud的服務發現功能。
3. REST
REST提供了一組架構約束,當作為一個整體來應用時,強調組件交互的可伸縮性、接口的通用性、組件的獨立部署、以及用來減少交互延遲、增強安全性、封裝遺留系統的中間組件。
幾年的由于移動互聯網流行使得前端設備多樣化,業界急需一種統一的機制來規范API設計,使得API適用于各種各樣的前端設備,REST符合這種需求。并且行為和資源分離,更容易理解。
4. Redis
Redis是一個開源的使用ANSI?C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API。它的優勢在于:
(1)性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
(2)豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作。
(3)原子 – Redis的所有操作都是原子性的,同時Redis還支持對幾個操作合并后的原子性執行。(事務)
(4)豐富的特性 – Redis還支持 publish/subscribe特性。
5. Spring boot admin
Spring?Boot 有一個非常好用的監控和管理的源軟件,這個軟件就是 Spring Boot Admin。該軟件能夠將 Actuator 中的信息進行界面化的展示,也可以監控所有 Spring Boot 應用的健康狀況,提供實時警報功能。
主要的功能點有:顯示應用程序的監控狀態;應用程序上下線監控;查看 JVM,線程信息;可視化的查看日志以及下載日志文件;動態切換日志級別;Http 請求信息跟蹤
6. Spring cloud gateway
Spring Cloud Gateway 是?Spring Cloud Finchley?版推出來的新組件,用來代替服務網關:Zuul。Spring Cloud Gateway構建于 Spring 5+,基于 Spring Boot 2.x 響應式的、非阻塞式的 API。同時,它支持 websockets,和 Spring 框架緊密集成,開發體驗相對來說十分不錯。Spring Cloud Gateway 的目標,不僅提供統一的路由方式,并且基于 Filter 鏈的方式提供了網關基本的功能,例如:安全,監控/指標,和限流。SpringCloud Gateway 特征介紹如下:
(1)基于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0
(2)集成 Hystrix 斷路器
為了做好運維面試路上的助攻手,特整理了上百道 【運維技術棧面試題集錦】 ,讓你面試不慌心不跳,高薪offer懷里抱!
這次整理的面試題,小到shell、MySQL,大到K8s等云原生技術棧,不僅適合運維新人入行面試需要,還適用于想提升進階跳槽加薪的運維朋友。
本份面試集錦涵蓋了
- 174 道運維工程師面試題
- 128道k8s面試題
- 108道shell腳本面試題
- 200道Linux面試題
- 51道docker面試題
- 35道Jenkis面試題
- 78道MongoDB面試題
- 17道ansible面試題
- 60道dubbo面試題
- 53道kafka面試
- 18道mysql面試題
- 40道nginx面試題
- 77道redis面試題
- 28道zookeeper
總計 1000+ 道面試題, 內容 又全含金量又高
- 174道運維工程師面試題
1、什么是運維?
2、在工作中,運維人員經常需要跟運營人員打交道,請問運營人員是做什么工作的?
3、現在給你三百臺服務器,你怎么對他們進行管理?
4、簡述raid0 raid1raid5二種工作模式的工作原理及特點
5、LVS、Nginx、HAproxy有什么區別?工作中你怎么選擇?
6、Squid、Varinsh和Nginx有什么區別,工作中你怎么選擇?
7、Tomcat和Resin有什么區別,工作中你怎么選擇?
8、什么是中間件?什么是jdk?
9、講述一下Tomcat8005、8009、8080三個端口的含義?
10、什么叫CDN?
11、什么叫網站灰度發布?
12、簡述DNS進行域名解析的過程?
13、RabbitMQ是什么東西?
14、講一下Keepalived的工作原理?
15、講述一下LVS三種模式的工作過程?
16、mysql的innodb如何定位鎖問題,mysql如何減少主從復制延遲?
17、如何重置mysql root密碼?
加入社區》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
bitMQ是什么東西?
14、講一下Keepalived的工作原理?
15、講述一下LVS三種模式的工作過程?
16、mysql的innodb如何定位鎖問題,mysql如何減少主從復制延遲?
17、如何重置mysql root密碼?
加入社區》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0