原创 開發中裝x必備(編程新風格、新姿勢、新走向)—— Java 8的新特性

一、lambda表達式 /** * 1、例子:(int 01,int 02) -> return 01 - 01 * 2、格式: * ->:lambda表達式操作符 * 左邊:形參列表(就是接口中的抽象方法的

原创 微服務:SpringCloudStream學習

看一張小圖: 比如,這是我們一個完整的項目(腦補完整!!)。此時中間件用的是RabbitMQ,如果現在項目需求換成ActiveMQ(對,就是一個很傻x的需求),你咋辦? 思考60分鐘3秒。......................  

原创 微服務:Spring Cloud Config 配置中心

對於傳統的單體應用而言,常使用配置文件來管理所有配置,比如SpringBoot的application.yml文件,但是在微服務架構中全部手動修改的話很麻煩而且不易維護。微服務的配置管理一般有以下需求: 集中配置管理,一個微服務架構中可能

原创 微服務:SpringCloud 添加ribbon 負載均衡(+源碼分析!)

在之前註冊中心那一章,消費者調用提供者的接口,是需要寫死這樣的url的。但是真實的環境我們一般要求服務提供者高可用,所以呢同一個服務需要多個服務提供者。那麼消費者就不能夠寫死這個url了。所以基於如此我們改一下代碼。 一、修改代碼,添加r

原创 微服務:SpringCloud 比hystrix牛的Sentinel(國人的驕傲!)

一、簡介 隨着微服務的流行,服務和服務之間的穩定性變得越來越重要。Sentinel 以流量爲切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。   Sentinel 具有以下特徵: 豐富的應用場景:Sentine

原创 微服務:SpringCloud zuul網關

一、存在的問題 在之前的文章中,微服務架構已經初具雛形。但還有一些問題:不同的微服務一般會有不同的網 絡地址,客戶端在訪問這些微服務時必須記住幾十甚至幾百個地址,這對於客戶端方來說太複雜也難以維護。如下圖:   前端應用程序調用我們消費

原创 微服務:SpringCloud hystrix 服務熔斷、斷路器、隔離

一、雪崩效應 在微服務架構中,一個請求需要調用多個服務是非常常見的。如客戶端訪問A服務,而A服務需要調用B 服務,B服務需要調用C服務,由於網絡原因或者自身的原因,如果B服務或者C服務不能及時響應,A服 務將處於阻塞狀態,直到B服務C服務

原创 微服務:SpringCloud 分佈式鏈路追蹤sleuth、zipkin

一、微服務架構下的問題 在大型系統的微服務化構建中,一個系統會被拆分成許多模塊。這些模塊負責不同的功能,組合成系統,最終可以提供豐富的功能。在這種架構中,一次請求往往需要涉及到多個服務。互聯網應用構建在不同的軟件模塊集上,這些軟件模塊,有

原创 你知道springboot的自動裝載機制嗎?一篇文章讓你豁然開朗!!!

之前學完ssm的時候,當時做了一個簡單的小網站,非常開心,但是對於那些配置文件剛開始還是有些頭疼。後來學習到springboot,就感覺太清爽了!!!去nmd配置文件,我們只需要在application.properties配置一些myb

原创 微服務:SpringCloud GateWay網關

Spring Cloud Gateway 是 Spring 官方基於 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術開發的網關,旨在爲微服務架構提供一種簡單而有效的統一的 API 路由管理

原创 微服務:SpringCloud 使用Feign組件

一、之前項目存在的問題 我們這樣去調用微服務:  是不是感覺不好啊,怎麼可能去拼字符串呢?low爆了對吧。我們的Feign組件就是解決這個問題滴! 二、Feign組件 1、簡介 Feign是Netflflix開發的聲明式,模板化的HTT

原创 微服務:SpringCloud 使用consul來代替eureka註冊中心

Consul 是 HashiCorp 公司推出的開源工具,用於實現分佈式系統的服務發現與配置。與其它分佈式服 務註冊與發現的方案,Consul 的方案更“一站式”,內置了服務註冊與發現框 架、分佈一致性協議實 現、健康檢查、Key/Val

原创 微服務:SpringCloud 高併發出現的問題以及解決辦法(一篇文章給你安排的明明白白的!!!)

之前的做文章講述了一些常用的組件,這次我們來聊聊基於上面組件的高併發問題。我們先以高併發時,項目程序出現的現象入手。 一、修改項目 order-service 這裏面我們不採用feign,而是採用普通的http請求的方式,用restTem

原创 SpringDataMongoDB的常見的CRUD

我們常用的數據庫一般是MySql,但是在數據量大的時候。MongoDB這種NoSql型數據庫更加有優勢!我們來看一下如何用java來操作。 1、創建一個maven工程引入依賴 別跟我說你不知道到maven是個啥,哈哈哈!!! <?xml

原创 微服務:系統架構的演變

通過這篇文章我們來學習我們項目系統架構的演變過程。沒部署過項目的或者沒做過項目的小夥伴也可以康康,hhhh.. 當我們系統的用戶逐漸增多,我們系統就必須具備了高可用、高併發這樣的特性。如何解決? 1、單體應用架構 這種應用架構就是我們在