1. 场景

在微服务体系中,网关作为分发请求的关键组件。如何根据请求的特征将请求分发给特定的服务?我总结了两种方式。

2. 根据子域名划分服务模块

#mermaid-svg-MLs857Smda7GuxhW .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-MLs857Smda7GuxhW .label text{fill:#333}#mermaid-svg-MLs857Smda7GuxhW .node rect,#mermaid-svg-MLs857Smda7GuxhW .node circle,#mermaid-svg-MLs857Smda7GuxhW .node ellipse,#mermaid-svg-MLs857Smda7GuxhW .node polygon,#mermaid-svg-MLs857Smda7GuxhW .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-MLs857Smda7GuxhW .node .label{text-align:center;fill:#333}#mermaid-svg-MLs857Smda7GuxhW .node.clickable{cursor:pointer}#mermaid-svg-MLs857Smda7GuxhW .arrowheadPath{fill:#333}#mermaid-svg-MLs857Smda7GuxhW .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-MLs857Smda7GuxhW .flowchart-link{stroke:#333;fill:none}#mermaid-svg-MLs857Smda7GuxhW .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-MLs857Smda7GuxhW .edgeLabel rect{opacity:0.9}#mermaid-svg-MLs857Smda7GuxhW .edgeLabel span{color:#333}#mermaid-svg-MLs857Smda7GuxhW .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-MLs857Smda7GuxhW .cluster text{fill:#333}#mermaid-svg-MLs857Smda7GuxhW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-MLs857Smda7GuxhW .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-MLs857Smda7GuxhW text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-MLs857Smda7GuxhW .actor-line{stroke:grey}#mermaid-svg-MLs857Smda7GuxhW .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-MLs857Smda7GuxhW .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-MLs857Smda7GuxhW #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-MLs857Smda7GuxhW .sequenceNumber{fill:#fff}#mermaid-svg-MLs857Smda7GuxhW #sequencenumber{fill:#333}#mermaid-svg-MLs857Smda7GuxhW #crosshead path{fill:#333;stroke:#333}#mermaid-svg-MLs857Smda7GuxhW .messageText{fill:#333;stroke:#333}#mermaid-svg-MLs857Smda7GuxhW .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-MLs857Smda7GuxhW .labelText,#mermaid-svg-MLs857Smda7GuxhW .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-MLs857Smda7GuxhW .loopText,#mermaid-svg-MLs857Smda7GuxhW .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-MLs857Smda7GuxhW .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-MLs857Smda7GuxhW .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-MLs857Smda7GuxhW .noteText,#mermaid-svg-MLs857Smda7GuxhW .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-MLs857Smda7GuxhW .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-MLs857Smda7GuxhW .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-MLs857Smda7GuxhW .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-MLs857Smda7GuxhW .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW .section{stroke:none;opacity:0.2}#mermaid-svg-MLs857Smda7GuxhW .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-MLs857Smda7GuxhW .section2{fill:#fff400}#mermaid-svg-MLs857Smda7GuxhW .section1,#mermaid-svg-MLs857Smda7GuxhW .section3{fill:#fff;opacity:0.2}#mermaid-svg-MLs857Smda7GuxhW .sectionTitle0{fill:#333}#mermaid-svg-MLs857Smda7GuxhW .sectionTitle1{fill:#333}#mermaid-svg-MLs857Smda7GuxhW .sectionTitle2{fill:#333}#mermaid-svg-MLs857Smda7GuxhW .sectionTitle3{fill:#333}#mermaid-svg-MLs857Smda7GuxhW .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-MLs857Smda7GuxhW .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW .grid path{stroke-width:0}#mermaid-svg-MLs857Smda7GuxhW .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-MLs857Smda7GuxhW .task{stroke-width:2}#mermaid-svg-MLs857Smda7GuxhW .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW .taskText:not([font-size]){font-size:11px}#mermaid-svg-MLs857Smda7GuxhW .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-MLs857Smda7GuxhW .task.clickable{cursor:pointer}#mermaid-svg-MLs857Smda7GuxhW .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-MLs857Smda7GuxhW .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-MLs857Smda7GuxhW .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-MLs857Smda7GuxhW .taskText0,#mermaid-svg-MLs857Smda7GuxhW .taskText1,#mermaid-svg-MLs857Smda7GuxhW .taskText2,#mermaid-svg-MLs857Smda7GuxhW .taskText3{fill:#fff}#mermaid-svg-MLs857Smda7GuxhW .task0,#mermaid-svg-MLs857Smda7GuxhW .task1,#mermaid-svg-MLs857Smda7GuxhW .task2,#mermaid-svg-MLs857Smda7GuxhW .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-MLs857Smda7GuxhW .taskTextOutside0,#mermaid-svg-MLs857Smda7GuxhW .taskTextOutside2{fill:#000}#mermaid-svg-MLs857Smda7GuxhW .taskTextOutside1,#mermaid-svg-MLs857Smda7GuxhW .taskTextOutside3{fill:#000}#mermaid-svg-MLs857Smda7GuxhW .active0,#mermaid-svg-MLs857Smda7GuxhW .active1,#mermaid-svg-MLs857Smda7GuxhW .active2,#mermaid-svg-MLs857Smda7GuxhW .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-MLs857Smda7GuxhW .activeText0,#mermaid-svg-MLs857Smda7GuxhW .activeText1,#mermaid-svg-MLs857Smda7GuxhW .activeText2,#mermaid-svg-MLs857Smda7GuxhW .activeText3{fill:#000 !important}#mermaid-svg-MLs857Smda7GuxhW .done0,#mermaid-svg-MLs857Smda7GuxhW .done1,#mermaid-svg-MLs857Smda7GuxhW .done2,#mermaid-svg-MLs857Smda7GuxhW .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-MLs857Smda7GuxhW .doneText0,#mermaid-svg-MLs857Smda7GuxhW .doneText1,#mermaid-svg-MLs857Smda7GuxhW .doneText2,#mermaid-svg-MLs857Smda7GuxhW .doneText3{fill:#000 !important}#mermaid-svg-MLs857Smda7GuxhW .crit0,#mermaid-svg-MLs857Smda7GuxhW .crit1,#mermaid-svg-MLs857Smda7GuxhW .crit2,#mermaid-svg-MLs857Smda7GuxhW .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-MLs857Smda7GuxhW .activeCrit0,#mermaid-svg-MLs857Smda7GuxhW .activeCrit1,#mermaid-svg-MLs857Smda7GuxhW .activeCrit2,#mermaid-svg-MLs857Smda7GuxhW .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-MLs857Smda7GuxhW .doneCrit0,#mermaid-svg-MLs857Smda7GuxhW .doneCrit1,#mermaid-svg-MLs857Smda7GuxhW .doneCrit2,#mermaid-svg-MLs857Smda7GuxhW .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-MLs857Smda7GuxhW .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-MLs857Smda7GuxhW .milestoneText{font-style:italic}#mermaid-svg-MLs857Smda7GuxhW .doneCritText0,#mermaid-svg-MLs857Smda7GuxhW .doneCritText1,#mermaid-svg-MLs857Smda7GuxhW .doneCritText2,#mermaid-svg-MLs857Smda7GuxhW .doneCritText3{fill:#000 !important}#mermaid-svg-MLs857Smda7GuxhW .activeCritText0,#mermaid-svg-MLs857Smda7GuxhW .activeCritText1,#mermaid-svg-MLs857Smda7GuxhW .activeCritText2,#mermaid-svg-MLs857Smda7GuxhW .activeCritText3{fill:#000 !important}#mermaid-svg-MLs857Smda7GuxhW .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-MLs857Smda7GuxhW g.classGroup text .title{font-weight:bolder}#mermaid-svg-MLs857Smda7GuxhW g.clickable{cursor:pointer}#mermaid-svg-MLs857Smda7GuxhW g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-MLs857Smda7GuxhW g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-MLs857Smda7GuxhW .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-MLs857Smda7GuxhW .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-MLs857Smda7GuxhW .dashed-line{stroke-dasharray:3}#mermaid-svg-MLs857Smda7GuxhW #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW .commit-id,#mermaid-svg-MLs857Smda7GuxhW .commit-msg,#mermaid-svg-MLs857Smda7GuxhW .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-MLs857Smda7GuxhW g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-MLs857Smda7GuxhW g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-MLs857Smda7GuxhW g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-MLs857Smda7GuxhW g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-MLs857Smda7GuxhW .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-MLs857Smda7GuxhW .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-MLs857Smda7GuxhW .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-MLs857Smda7GuxhW .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-MLs857Smda7GuxhW .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-MLs857Smda7GuxhW .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-MLs857Smda7GuxhW .edgeLabel text{fill:#333}#mermaid-svg-MLs857Smda7GuxhW .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-MLs857Smda7GuxhW .node circle.state-start{fill:black;stroke:black}#mermaid-svg-MLs857Smda7GuxhW .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-MLs857Smda7GuxhW #statediagram-barbEnd{fill:#9370db}#mermaid-svg-MLs857Smda7GuxhW .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-MLs857Smda7GuxhW .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-MLs857Smda7GuxhW .statediagram-state .divider{stroke:#9370db}#mermaid-svg-MLs857Smda7GuxhW .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-MLs857Smda7GuxhW .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-MLs857Smda7GuxhW .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-MLs857Smda7GuxhW .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-MLs857Smda7GuxhW .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-MLs857Smda7GuxhW .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-MLs857Smda7GuxhW .note-edge{stroke-dasharray:5}#mermaid-svg-MLs857Smda7GuxhW .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-MLs857Smda7GuxhW .error-icon{fill:#522}#mermaid-svg-MLs857Smda7GuxhW .error-text{fill:#522;stroke:#522}#mermaid-svg-MLs857Smda7GuxhW .edge-thickness-normal{stroke-width:2px}#mermaid-svg-MLs857Smda7GuxhW .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-MLs857Smda7GuxhW .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-MLs857Smda7GuxhW .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-MLs857Smda7GuxhW .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-MLs857Smda7GuxhW .marker{fill:#333}#mermaid-svg-MLs857Smda7GuxhW .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-MLs857Smda7GuxhW {color: rgba(0, 0, 0, 0.75);font: ;}

携带host信息
路由断言
Request
Nginx
Spring Cloud Gateway
Service
        - id: mall_host_routeuri: lb://product-serviceorder: 6# 前端请求都是以/api开头的urlpredicates:- Host=www.mall.com, 127.0.0.1:88- id: mall_search_routeuri: lb://mall-searchorder: 7predicates:- Host=search.mall.com

特征: 一个域名通常具有多个子域名,例如:www.mall.com,search.mall.com,shopcart.mall.com等。

优点:

  1. 新写controller时,无需改动网关。
  2. 接口升级到v2时,只需要发布特定服务,无需配置和重启gateway-service。

缺点:

  1. 需要开通多个子域名,且子域名和nginx,nginx和gateway都要建立连接。

3. 根据请求路径导向服务模块

#mermaid-svg-GvJefuZ1CzHrTbsg .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .label text{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .node rect,#mermaid-svg-GvJefuZ1CzHrTbsg .node circle,#mermaid-svg-GvJefuZ1CzHrTbsg .node ellipse,#mermaid-svg-GvJefuZ1CzHrTbsg .node polygon,#mermaid-svg-GvJefuZ1CzHrTbsg .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-GvJefuZ1CzHrTbsg .node .label{text-align:center;fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .node.clickable{cursor:pointer}#mermaid-svg-GvJefuZ1CzHrTbsg .arrowheadPath{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-GvJefuZ1CzHrTbsg .flowchart-link{stroke:#333;fill:none}#mermaid-svg-GvJefuZ1CzHrTbsg .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-GvJefuZ1CzHrTbsg .edgeLabel rect{opacity:0.9}#mermaid-svg-GvJefuZ1CzHrTbsg .edgeLabel span{color:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-GvJefuZ1CzHrTbsg .cluster text{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-GvJefuZ1CzHrTbsg .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-GvJefuZ1CzHrTbsg text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-GvJefuZ1CzHrTbsg .actor-line{stroke:grey}#mermaid-svg-GvJefuZ1CzHrTbsg .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-GvJefuZ1CzHrTbsg #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .sequenceNumber{fill:#fff}#mermaid-svg-GvJefuZ1CzHrTbsg #sequencenumber{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg #crosshead path{fill:#333;stroke:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .messageText{fill:#333;stroke:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-GvJefuZ1CzHrTbsg .labelText,#mermaid-svg-GvJefuZ1CzHrTbsg .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-GvJefuZ1CzHrTbsg .loopText,#mermaid-svg-GvJefuZ1CzHrTbsg .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-GvJefuZ1CzHrTbsg .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-GvJefuZ1CzHrTbsg .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-GvJefuZ1CzHrTbsg .noteText,#mermaid-svg-GvJefuZ1CzHrTbsg .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-GvJefuZ1CzHrTbsg .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-GvJefuZ1CzHrTbsg .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-GvJefuZ1CzHrTbsg .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-GvJefuZ1CzHrTbsg .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg .section{stroke:none;opacity:0.2}#mermaid-svg-GvJefuZ1CzHrTbsg .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-GvJefuZ1CzHrTbsg .section2{fill:#fff400}#mermaid-svg-GvJefuZ1CzHrTbsg .section1,#mermaid-svg-GvJefuZ1CzHrTbsg .section3{fill:#fff;opacity:0.2}#mermaid-svg-GvJefuZ1CzHrTbsg .sectionTitle0{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .sectionTitle1{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .sectionTitle2{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .sectionTitle3{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-GvJefuZ1CzHrTbsg .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg .grid path{stroke-width:0}#mermaid-svg-GvJefuZ1CzHrTbsg .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-GvJefuZ1CzHrTbsg .task{stroke-width:2}#mermaid-svg-GvJefuZ1CzHrTbsg .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg .taskText:not([font-size]){font-size:11px}#mermaid-svg-GvJefuZ1CzHrTbsg .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-GvJefuZ1CzHrTbsg .task.clickable{cursor:pointer}#mermaid-svg-GvJefuZ1CzHrTbsg .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-GvJefuZ1CzHrTbsg .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-GvJefuZ1CzHrTbsg .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-GvJefuZ1CzHrTbsg .taskText0,#mermaid-svg-GvJefuZ1CzHrTbsg .taskText1,#mermaid-svg-GvJefuZ1CzHrTbsg .taskText2,#mermaid-svg-GvJefuZ1CzHrTbsg .taskText3{fill:#fff}#mermaid-svg-GvJefuZ1CzHrTbsg .task0,#mermaid-svg-GvJefuZ1CzHrTbsg .task1,#mermaid-svg-GvJefuZ1CzHrTbsg .task2,#mermaid-svg-GvJefuZ1CzHrTbsg .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-GvJefuZ1CzHrTbsg .taskTextOutside0,#mermaid-svg-GvJefuZ1CzHrTbsg .taskTextOutside2{fill:#000}#mermaid-svg-GvJefuZ1CzHrTbsg .taskTextOutside1,#mermaid-svg-GvJefuZ1CzHrTbsg .taskTextOutside3{fill:#000}#mermaid-svg-GvJefuZ1CzHrTbsg .active0,#mermaid-svg-GvJefuZ1CzHrTbsg .active1,#mermaid-svg-GvJefuZ1CzHrTbsg .active2,#mermaid-svg-GvJefuZ1CzHrTbsg .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-GvJefuZ1CzHrTbsg .activeText0,#mermaid-svg-GvJefuZ1CzHrTbsg .activeText1,#mermaid-svg-GvJefuZ1CzHrTbsg .activeText2,#mermaid-svg-GvJefuZ1CzHrTbsg .activeText3{fill:#000 !important}#mermaid-svg-GvJefuZ1CzHrTbsg .done0,#mermaid-svg-GvJefuZ1CzHrTbsg .done1,#mermaid-svg-GvJefuZ1CzHrTbsg .done2,#mermaid-svg-GvJefuZ1CzHrTbsg .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-GvJefuZ1CzHrTbsg .doneText0,#mermaid-svg-GvJefuZ1CzHrTbsg .doneText1,#mermaid-svg-GvJefuZ1CzHrTbsg .doneText2,#mermaid-svg-GvJefuZ1CzHrTbsg .doneText3{fill:#000 !important}#mermaid-svg-GvJefuZ1CzHrTbsg .crit0,#mermaid-svg-GvJefuZ1CzHrTbsg .crit1,#mermaid-svg-GvJefuZ1CzHrTbsg .crit2,#mermaid-svg-GvJefuZ1CzHrTbsg .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-GvJefuZ1CzHrTbsg .activeCrit0,#mermaid-svg-GvJefuZ1CzHrTbsg .activeCrit1,#mermaid-svg-GvJefuZ1CzHrTbsg .activeCrit2,#mermaid-svg-GvJefuZ1CzHrTbsg .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-GvJefuZ1CzHrTbsg .doneCrit0,#mermaid-svg-GvJefuZ1CzHrTbsg .doneCrit1,#mermaid-svg-GvJefuZ1CzHrTbsg .doneCrit2,#mermaid-svg-GvJefuZ1CzHrTbsg .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-GvJefuZ1CzHrTbsg .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-GvJefuZ1CzHrTbsg .milestoneText{font-style:italic}#mermaid-svg-GvJefuZ1CzHrTbsg .doneCritText0,#mermaid-svg-GvJefuZ1CzHrTbsg .doneCritText1,#mermaid-svg-GvJefuZ1CzHrTbsg .doneCritText2,#mermaid-svg-GvJefuZ1CzHrTbsg .doneCritText3{fill:#000 !important}#mermaid-svg-GvJefuZ1CzHrTbsg .activeCritText0,#mermaid-svg-GvJefuZ1CzHrTbsg .activeCritText1,#mermaid-svg-GvJefuZ1CzHrTbsg .activeCritText2,#mermaid-svg-GvJefuZ1CzHrTbsg .activeCritText3{fill:#000 !important}#mermaid-svg-GvJefuZ1CzHrTbsg .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-GvJefuZ1CzHrTbsg g.classGroup text .title{font-weight:bolder}#mermaid-svg-GvJefuZ1CzHrTbsg g.clickable{cursor:pointer}#mermaid-svg-GvJefuZ1CzHrTbsg g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-GvJefuZ1CzHrTbsg g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-GvJefuZ1CzHrTbsg .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-GvJefuZ1CzHrTbsg .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-GvJefuZ1CzHrTbsg .dashed-line{stroke-dasharray:3}#mermaid-svg-GvJefuZ1CzHrTbsg #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg .commit-id,#mermaid-svg-GvJefuZ1CzHrTbsg .commit-msg,#mermaid-svg-GvJefuZ1CzHrTbsg .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-GvJefuZ1CzHrTbsg g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-GvJefuZ1CzHrTbsg g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-GvJefuZ1CzHrTbsg g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-GvJefuZ1CzHrTbsg .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-GvJefuZ1CzHrTbsg .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-GvJefuZ1CzHrTbsg .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-GvJefuZ1CzHrTbsg .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-GvJefuZ1CzHrTbsg .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-GvJefuZ1CzHrTbsg .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-GvJefuZ1CzHrTbsg .edgeLabel text{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-GvJefuZ1CzHrTbsg .node circle.state-start{fill:black;stroke:black}#mermaid-svg-GvJefuZ1CzHrTbsg .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-GvJefuZ1CzHrTbsg #statediagram-barbEnd{fill:#9370db}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-state .divider{stroke:#9370db}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-GvJefuZ1CzHrTbsg .note-edge{stroke-dasharray:5}#mermaid-svg-GvJefuZ1CzHrTbsg .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-GvJefuZ1CzHrTbsg .error-icon{fill:#522}#mermaid-svg-GvJefuZ1CzHrTbsg .error-text{fill:#522;stroke:#522}#mermaid-svg-GvJefuZ1CzHrTbsg .edge-thickness-normal{stroke-width:2px}#mermaid-svg-GvJefuZ1CzHrTbsg .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-GvJefuZ1CzHrTbsg .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-GvJefuZ1CzHrTbsg .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-GvJefuZ1CzHrTbsg .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-GvJefuZ1CzHrTbsg .marker{fill:#333}#mermaid-svg-GvJefuZ1CzHrTbsg .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-GvJefuZ1CzHrTbsg {color: rgba(0, 0, 0, 0.75);font: ;}

根据url
Request
Nginx
Spring Cloud Gateway
Service
    shopcart-service:path: /v1/shopcart/**serviceId: shopcart-servicestripPrefix: falseshopcart-service-v2:path: /v2/shopcart/**serviceId: shopcart-servicestripPrefix: false

特征:网关的域名通常只有一个,例如api.mall.com。

优点:

  1. 只需要一个专属的子域名——api.mall.cn,且在nginx和gateway层面也需要一个子域名的配置,配置相对简单,在新增服务的时候,无需配置nginx,只需要在gateway层面新增配置即可。

缺点:

  1. 新写controller时,改动网关。
  2. 接口升级到v2时,只需要发布特定服务,配置和重启gateway-service。

微服务网关分发请求至子服务的两种方式相关推荐

  1. python创建多线程_Python 多线程,threading模块,创建子线程的两种方式示例

    本文实例讲述了Python 多线程,threading模块,创建子线程的两种方式.分享给大家供大家参考,具体如下: GIL(全局解释器锁)是C语言版本的Python解释器中专有的,GIL的存在让多线程 ...

  2. mysql 停从库_MySQL_通过两种方式增加从库——不停止mysql服务,一般在线增加从库有两种方式 - phpStudy...

    通过两种方式增加从库--不停止mysql服务 一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长 ...

  3. java调用外联服务用xml,Spring IOC 依赖注入的两种方式:XML和注解

    IoC,直观地讲,就是容器控制程序之间的关系,而非传统实现中,由程序代码直接操控.这也就是所谓"控制反转"的概念所在.控制权由应用代码中转到了外部容器,控制权的转移是所谓反转.Io ...

  4. sql server 子查询的两种方式

    单一返回值: (1) 返回单个值 SELECT 列名 FROM 表名 WHERE 列名 = ( SELECT <单列> FROM 该表表名 WHERE<只返回行的条件> ) 例 ...

  5. python接口服务两种方式(被调用、主动推送)

    项目中用python开发,要对外接口时,根据场景不同,一般有两种方式: 外部调用python接口,返回数据 接口主动向外部推送数据 1外部调用python接口,返回数据 这种方式一般可以通过http接 ...

  6. 服务端验证Google Pay订单的两种方式

    Google Pay主要支付流程: 1.手机端向服务端发起支付,生成预订单,给手机端返回生成的订单号 2.手机端向Google发起支付(传入本地服务器生成的订单号) 3.Google服务器将支付结果返 ...

  7. mysql不停止重启服务器_不停止MySQL服务增加从库的两种方式

    现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. ...

  8. mysql增加从库_不停止MySQL服务增加从库的两种方式 (装载)

    现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. ...

  9. mysql 停从库_不停止 MySQL 服务增加从库的两种方式

    现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. ...

最新文章

  1. 深度学习常用损失函数总览:基本形式、原理、特点
  2. 记一次数组工具类 交集,去重
  3. 百度智能搜索到底有多智能?
  4. nvidia linux屏幕撕裂,带有Nvidia/Intel图形的Ubuntu屏幕破裂
  5. mysql 辅助索引_MySQL InnoDB B+tree索引
  6. VSTS : 在性能调优中找到瓶颈所在
  7. HMAC-SHA1加密
  8. linux lamp架构部署,Centos7部署LAMP平台之架构之路
  9. 使用Visio Viewer载入数据库中的Visio图
  10. mysql 移植ucos_基于STM32F767的UCOSIII移植学习
  11. linux让新生成的文件自动加锁,Linux_实用技巧一则 Linux系统对文件进行加锁,当有多个工作线程要同时对一 - phpStudy...
  12. python 在线培训费用-线下python培训要多少钱?
  13. Python说文解字_Python之多任务_03
  14. 数据库存储过程、触发器、函数的使用
  15. Sql Server 的基本增删改查语句
  16. 数字图像处理技术与应用练习题
  17. cad相对坐标快捷键_cad 怎么用相对坐标
  18. 树形结构 —— 树与二叉树 —— 无根树转有根树
  19. DDoS攻击类型和缓解手段
  20. 计算机软件系统崩溃,电脑软件打开后闪退或崩溃怎么办

热门文章

  1. ajax,HTTP原理 : 网络传输协议,网页从输入url到渲染的流程,函数防抖和节流
  2. 用计算机弹奏音乐的数字乐谱,抖音计算器音乐
  3. iQQ 基于WebQQ3.0协议Java开发 跨平台QQ客户端
  4. win11照片一打开就是打印怎么办?
  5. vue vant 通讯录组件
  6. 51单片机 | LED点阵实验 | 点亮一个点 | 显示数字 | 显示图像
  7. 二次元博客系统Halo
  8. 算法的时间复杂度、空间复杂度、稳定性
  9. 手机号码归属地查询,免费API
  10. 互联网供应链金融业务模式和未来发展,《互联网供应链金融》好书推荐