關於SpringCloud微服務雲架構構建B2B2C電子商務平臺之-(
在微服務架構中,需要幾個基礎的服務治理元件,包括服務註冊與發現、服務消費、負載均衡、斷路器、智慧路由、配置管理等,由這幾個基礎元件相互協作,共同組建了一個簡單的微服務系統。一個簡答的微服務系統如下圖:
關於SpringCloud微服務雲架構構建B2B2C電子商務平臺之-(五)路由閘道器(zuul)
Azure (1).png
注意:A服務和B服務是可以相互呼叫的,作圖的時候忘記了。並且配置服務也是註冊到服務註冊中心的。
在Spring Cloud微服務系統中,一種常見的負載均衡方式是,客戶端的請求首先經過負載均衡(zuul、Ngnix),再到達服務閘道器(zuul叢集),然後再到具體的服。,服務統一註冊到高可用的服務註冊中心叢集,服務的所有的配置檔案由配置服務管理(下一篇文章講述),配置服務的配置檔案放在git倉庫,方便開發人員隨時改配置。
一、Zuul簡介
Zuul的主要功能是路由轉發和過濾器。路由功能是微服務的一部分,比如/api/user轉發到到user服務,/api/shop轉發到到shop服務。zuul預設和Ribbon結合實現了負載均衡的功能。
zuul有以下功能:
Authentication
Insights
Stress Testing
Canary Testing
Dynamic Routing
Service Migration
Load Shedding
Security
Static Response handling
Active/Active traffic management
二、準備工作
繼續使用上一節的工程。在原有的工程上,建立一個新的工程。
三、建立service-zuul工程
其pom.xml檔案如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="" xmlns:xsi=""
xsi:schemaLocation=" ">
<modelVersion>4.0.0</modelVersion>
<groupId>com.forezp</groupId>
<artifactId>service-zuul</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>service-zuul</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
在其入口applicaton類加上註解@EnableZuulProxy,開啟zuul的功能:
@EnableZuulProxy
@EnableEurekaClient
@SpringBootApplication
public class ServiceZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceZuulApplication.class, args);
}
}
加上配置檔案application.yml加上以下的配置程式碼:
eureka:
client:
serviceUrl:
defaultZone:
server:
port: 8769
spring:
application:
name: service-zuul
zuul:
routes:
api-a:
path: /api-a/**
serviceId: service-ribbon
api-b:
path: /api-b/**
serviceId: service-feign
首先指定服務註冊中心的地址為,服務的埠為8769,服務名為service-zuul;以/api-a/ 開頭的請求都轉發給service-ribbon服務;以/api-b/開頭的請求都轉發給service-feign服務;
依次執行這五個工程;開啟瀏覽器訪問: ;瀏覽器顯示:
hi forezp,i am from port:8762
開啟瀏覽器訪問: ;瀏覽器顯示:
hi forezp,i am from port:8762
這說明zuul起到了路由的作用
架構程式碼如下:
關於SpringCloud微服務雲架構構建B2B2C電子商務平臺之-(五)路由閘道器(zuul)
©著作權歸作者所有:來自51CTO部落格作者sunnyday8903的原創作品,如需轉載,請註明出處,否則將追究法律責任
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4606/viewspace-2819494/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringCloud微服務雲架構構建B2B2C電子商務平臺分析之-服務消費(Ribbon)SpringGCCloud微服務架構
- 分散式微服務雲架構構建電子商務平臺分散式微服務架構
- SpringCloud微服務雲架構構建B2B2C電子商務平臺之-(十)高可用的服務註冊中心SpringGCCloud微服務架構
- SpringCloud微服務雲架構構建B2B2C電子商務平臺之-服務的註冊與發現EurekaSpringGCCloud微服務架構
- (十四)JAVA springboot微服務b2b2c電子商務系統- Spring Cloud構建分散式電子商務平臺JavaSpring Boot微服務Cloud分散式
- spring cloud構建java版 b2b2c電子商務雲商平臺SpringCloudJava
- 【分散式微服務企業快速架構】SpringCloud分散式、微服務、雲架構快速開發平臺分散式微服務架構SpringGCCloud
- SpringCloud構建微服務架構-Hystrix服務降級SpringGCCloud微服務架構
- spring cloud spring boot 構建java版 分散式微服務 b2b2c o2o電子商務雲商平臺CloudSpring BootJava分散式微服務
- springcloud微服務分散式雲架構-SpringCloud簡介SpringGCCloud微服務分散式架構
- java B2B2C Springcloud電子商務平臺原始碼JavaSpringGCCloud原始碼
- 微服務平臺技術架構微服務架構
- springcloud微服務分散式雲架構簡介SpringGCCloud微服務分散式架構
- (一)springcloud微服務分散式雲架構-SpringCloud簡介SpringGCCloud微服務分散式架構
- Spring Cloud雲服務架構 - 企業分散式微服務雲架構構建SpringCloud架構分散式微服務
- (十四)Java B2B2C多使用者商城 springboot架構- Spring Cloud構建分散式電子商務平臺JavaSpring Boot架構Cloud分散式
- 基於SpringCloud的微服務架構設計SpringGCCloud微服務架構
- SpringCloud企業分散式微服務雲架構快速開發平臺原始碼SpringGCCloud分散式微服務架構原始碼
- 微服務架構:構建PHP微服務生態微服務架構PHP
- SpringCloud(1) ——回顧微服務和微服務架構SpringGCCloud微服務架構
- 基於微服務和Docker的PaaS雲平臺架構設計微服務Docker架構
- 整合spring cloud雲服務架構 - 企業分散式微服務雲架構構建SpringCloud架構分散式微服務
- Spring Cloud分散式微服務雲架構構建SpringCloud分散式微服務架構
- 關於SpringCloud大型網際網路分散式企業微服務雲架構SpringGCCloud分散式微服務架構
- Spring Cloud構建分散式電子商務平臺:服務消費(基礎)SpringCloud分散式
- java b2b2c電子商務 springcloud分散式微服務-Session共享JavaSpringGCCloud分散式微服務Session
- 單體架構&微服務架構&中臺服務架構架構微服務
- (四)整合spring cloud雲服務架構 - 企業分散式微服務雲架構構建SpringCloud架構分散式微服務
- 用友雲服務治理平臺 助力企業微服務架構落地微服務架構
- spring cloud構建java版 鴻鵠雲商 b2b2c o2o電子商務雲商平臺分銷模式SpringCloudJava模式
- java B2B2C Springcloud電子商務平臺原始碼 -Feign之原始碼解析JavaSpringGCCloud原始碼
- 容器雲平臺微服務架構設計的誤區微服務架構
- JAVA漢諾塔遞迴 之SpringCloud企業分散式微服務雲架構快速開發平臺Java遞迴SpringGCCloud分散式微服務架構
- java B2B2C 仿淘寶電子商城系統-Spring Cloud構建分散式電子商務平臺JavaSpringCloud分散式
- SpringCloud分散式微服務b2b2c電子商務-SpringBoot 整合JPA(四)GCCloud分散式微服務Spring Boot
- SpringCloud分散式微服務b2b2c電子商務(十三)Springboot整合RabbitMQGCCloud分散式微服務Spring BootMQ
- SpringCloud分散式微服務b2b2c電子商務(五)springboot整合 beatlsqlGCCloud分散式微服務Spring BootTLSSQL
- 架構演進之「微服務架構」架構微服務