大型微服務分佈式電商項目架構實戰SpringBoot+SpringCloud+Nginx+ELK

何時用到nginx tomcat負載均衡nginx


他請求量到達必定程度,單tomcat沒法負載的時候,就須要使用nginx作負載均衡了spring


什麼是springboottomcat

        用來簡化spring應用的初始搭建以及開發過程 使用特定的方式來進行配置(properties或yml文件)springboot

                建立獨立的spring引用程序 main方法運行服務器

                嵌入的Tomcat 無需部署war文件mybatis

                簡化maven配置app

                自動配置spring添加對應功能starter自動化配置負載均衡

springboot自動配置的原理框架

        在spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfigurationmaven

        會自動去maven中讀取每一個starter中的spring.factories文件  該文件裏配置了全部須要被建立spring容器中的bean


springboot讀取配置文件的方式


        springboot默認讀取配置文件爲application.properties或者是application.yml


springboot集成mybatis的過程

        添加mybatis的starter maven依賴

                <dependency>

                        <groupId>org.mybatis.spring.boot</groupId>

                        <artifactId>mybatis-spring-boot-starter</artifactId>

                        <version>1.2.0</version>

                </dependency>

        在mybatis的接口中 添加@Mapper註解

        在application.yml配置數據源信息


什麼是微服務

        之前的模式是 全部的代碼在同一個工程中 部署在同一個服務器中 同一個項目的不一樣模塊不一樣功能互相搶佔資源

        微服務 將工程根據不一樣的業務規則拆分紅微服務 微服務部署在不一樣的機器上 服務之間進行相互調用

        Java微服務的框架有 dubbo(只能用來作微服務),spring cloud(提供了服務的發現,斷路器等)


springcloud如何實現服務的註冊和發現

        服務在發佈時 指定對應的服務名(服務名包括了IP地址和端口) 將服務註冊到註冊中心(eureka或者zookeeper)

        這一過程是springcloud自動實現 只須要在main方法添加@EnableDisscoveryClient  同一個服務修改端口就能夠啓動多個實例

        調用方法:傳遞服務名稱經過註冊中心獲取全部的可用實例 經過負載均衡策略調用(ribbon和feign)對應的服務


ribbon和feign區別

        Ribbon添加maven依賴 spring-starter-ribbon 使用@RibbonClient(value="服務名稱") 使用RestTemplate調用遠程服務對應的方法

        feign添加maven依賴 spring-starter-feign 服務提供方提供對外接口 調用方使用 在接口上使用@FeignClient("指定服務名")

相關文章
相關標籤/搜索