<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ## 原理 [15.api-gateway模塊](12.api-gateway%E6%A8%A1%E5%9D%97.md) ## 架構圖 ![](https://img.kancloud.cn/25/98/2598eba52de023ad18afae8acba689b1_912x670.png) ## 改依賴 將eureka-client依賴替換alibaba服務發現組件 ![](https://img.kancloud.cn/3d/4e/3d4ec4f05df155d93e0d5e82743d75da_1907x463.png) ![](https://img.kancloud.cn/95/bb/95bb2f20c842a03a9ded5770ad44aaed_1505x399.png) ## 改配置 ![](https://img.kancloud.cn/c1/39/c13933e82c18954a76c4edf52f9327b3_1574x312.png) ![](https://img.kancloud.cn/b5/58/b55867e58889870b85f9a7b8e45d92ae_1916x491.png) ![](https://img.kancloud.cn/f8/ed/f8edbe5f69100bb821247bbca2e22384_1920x534.png) api-gateway.yaml ``` #端口 server: port: 9200 #metrics management: endpoints: web: exposure: include: "*" endpoint: health: show-details: always spring: cloud: sentinel: # 指定sentinel 控制臺的地址 dashboard: 127.0.0.1:8080 zuul: enabled: true order: pre: 10000 post: 1000 error: -1 filter: enabled: false datasource: # 名稱隨意 flow: nacos: server-addr: 119.27.173.249:8848 dataId: ${spring.application.name}-sentinel-gw-flow groupId: SENTINEL_GROUP # 規則類型,取值見: # com.alibaba.cloud.sentinel.datasource.RuleType rule-type: gw-flow api: nacos: server-addr: 119.27.173.249:8848 dataId: ${spring.application.name}-sentinel-gw-api-group groupId: SENTINEL_GROUP # 規則類型,取值見: # com.alibaba.cloud.sentinel.datasource.RuleType rule-type: gw-api-group datasource: druid: url: jdbc:mysql://59.110.164.254:3306/oauth-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false username: root password: root initial-size: 1 max-active: 20 min-idle: 1 # 配置獲取連接等待超時的時間 max-wait: 60000 #打開PSCache,并且指定每個連接上PSCache的大小 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 validation-query: SELECT 'x' test-on-borrow: false test-on-return: false test-while-idle: true #配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 time-between-eviction-runs-millis: 60000 #配置一個連接在池中最小生存的時間,單位是毫秒 min-evictable-idle-time-millis: 300000 filters: stat,wall # WebStatFilter配置,說明請參考Druid Wiki,配置_配置WebStatFilter #是否啟用StatFilter默認值true web-stat-filter.enabled: true web-stat-filter.url-pattern: /* web-stat-filter.exclusions: "*.js , *.gif ,*.jpg ,*.png ,*.css ,*.ico , /druid/*" web-stat-filter.session-stat-max-count: 1000 web-stat-filter.profile-enable: true # StatViewServlet配置 #展示Druid的統計信息,StatViewServlet的用途包括:1.提供監控信息展示的html頁面2.提供監控信息的JSON API #是否啟用StatViewServlet默認值true stat-view-servlet.enabled: true #根據配置中的url-pattern來訪問內置監控頁面,如果是上面的配置,內置監控頁面的首頁是/druid/index.html例如: #http://110.76.43.235:9000/druid/index.html #http://110.76.43.235:8080/mini-web/druid/index.html stat-view-servlet.url-pattern: /druid/* #允許清空統計數據 stat-view-servlet.reset-enable: true stat-view-servlet.login-username: admin stat-view-servlet.login-password: admin #StatViewSerlvet展示出來的監控信息比較敏感,是系統運行的內部情況,如果你需要做訪問控制,可以配置allow和deny這兩個參數 #deny優先于allow,如果在deny列表中,就算在allow列表中,也會被拒絕。如果allow沒有配置或者為空,則允許所有訪問 #配置的格式 #<IP> #或者<IP>/<SUB_NET_MASK_size>其中128.242.127.1/24 #24表示,前面24位是子網掩碼,比對的時候,前面24位相同就匹配,不支持IPV6。 #stat-view-servlet.allow= #stat-view-servlet.deny=128.242.127.1/24,128.242.128.1 # Spring監控配置,說明請參考Druid Github Wiki,配置_Druid和Spring關聯監控配置 #aop-patterns= # Spring監控AOP切入點,如x.y.z.service.*,配置多個英文逗號分隔 ################### mysq end ########################## # zipkin: # base-url: http://127.0.0.1:11008 redis: ################### redis 單機版 start ########################## host: 59.110.164.254 port: 6379 timeout: 6000 database: 8 lettuce: pool: max-active: -1 # 連接池最大連接數(使用負值表示沒有限制),如果賦值為-1,則表示不限制;如果pool已經分配了maxActive個jedis實例,則此時pool的狀態為exhausted(耗盡) max-idle: 8 # 連接池中的最大空閑連接 ,默認值也是8 max-wait: -1 # # 等待可用連接的最大時間,單位毫秒,默認值為-1,表示永不超時。如果超過等待時間,則直接拋出JedisConnectionException min-idle: 2 # 連接池中的最小空閑連接 ,默認值也是0 shutdown-timeout: 100ms ################### redis 單機版 end ########################## # cluster: # nodes: 130.75.131.237:7000,130.75.131.238:7000,130.75.131.239:7000,130.75.131.237:7001,130.75.131.238:7001,130.75.131.239:7001 # #130.75.131.237:7000,130.75.131.238:7000,130.75.131.239:7000,130.75.131.237:7001,130.75.131.238:7001,130.75.131.239:7001 # #192.168.3.157:7000,192.168.3.158:7000,192.168.3.159:7000,192.168.3.157:7001,192.168.3.158:7001,192.168.3.159:7001 # timeout: 1000 # 連接超時時間(毫秒) # lettuce: # pool: # max-active: 10 # 連接池最大連接數(使用負值表示沒有限制),如果賦值為-1,則表示不限制;如果pool已經分配了maxActive個jedis實例,則此時pool的狀態為exhausted(耗盡) # max-idle: 8 # 連接池中的最大空閑連接 ,默認值也是8 # max-wait: 100 # # 等待可用連接的最大時間,單位毫秒,默認值為-1,表示永不超時。如果超過等待時間,則直接拋出JedisConnectionException # min-idle: 2 # 連接池中的最小空閑連接 ,默認值也是0 # shutdown-timeout: 100ms mybatis-plus: global-config: banner: false configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath*:com/open/**/dao/*.xml security: oauth2: ignored: /api-file/statics/** , /test163/** , /api-auth/** , /doc.html ,/test111 ,/api-user/users-anon/login, /api-user/users/save, /user-center/users-anon/login,/document.html,**/v2/api-docs,/oauth/** ,/login.html ,/user/login,/**/**.css ,/**/**.js ,/getVersion token: store: type: redis #設置最大超時時間 ribbon: eager-load: enabled: true ServerListRefreshInterval: 10 #刷新服務列表源的間隔時間 httpclient: enabled: false okhttp: enabled: true ReadTimeout: 90000 ConnectTimeout: 90000 OkToRetryOnAllOperations: true MaxAutoRetries: 1 MaxAutoRetriesNextServer: 1 #設置最大容錯超時時間 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 90000 #設置最大容錯超時時間 hystrix: threadpool: default: coreSize: 100 maximumSize: 5000 allowMaximumSizeToDivergeFromCoreSize: true maxQueueSize: -1 command: default: circuitBreaker: forceOpen: false execution: timeout: enabled: true isolation: thread: timeoutInMilliseconds: 900000 zuul: ribbon-isolation-strategy: thread # 提高吞吐量 host: max-per-route-connections: 60000 # 適用于ApacheHttpClient,如果是okhttp無效。每個服務的http客戶端連接池最大連接,默認是200 max-total-connections: 60000 # 適用于ApacheHttpClient,如果是okhttp無效。每個route可用的最大連接數,默認值是20 ribbon: eager-load: enabled: true threadPool: useSeparateThreadPools: true threadPoolKeyPrefix: api-gateway include: debug: header: true debug: request: true parameter: debugRequest retryable: false #關閉重試 sensitive-headers: #/oauth/token需要請求頭處理 ignored-headers: Access-Control-Allow-Credentials,Access-Control-Allow-Origin,Access-Control-Allow-Methods add-host-header: true # add-proxy-headers: true #授權碼跳轉問題 routes: # 演示配置 # baidu: # path: /test163/** # url: http://59.110.164.254:9999 auth: path: /api-auth/** service-id: auth-server strip-prefix: false custom-sensitive-headers: true #http://blog.didispace.com/spring-cloud-zuul-cookie-redirect/ zuul授權碼跳轉問題 user: path: /api-user/** service-id: user-center strip-prefix: true custom-sensitive-headers: true #http://blog.didispace.com/spring-cloud-zuul-cookie-redirect/ zuul授權碼跳轉問題 file: path: /api-file/** service-id: file-center strip-prefix: true sms: path: /api-sms/** service-id: sms-center strip-prefix: true eureka: path: /api-eureka/** service-id: eureka-server strip-prefix: true generator: path: /api-generator/** service-id: generator-center strip-prefix: true log: path: /api-log/** service-id: log-center strip-prefix: true ssl-hostname-validation-enabled: false ratelimit: enabled: false #默認不限流 repository: REDIS policy-list: user: - limit: 10 refresh-interval: 60 type: - origin auth: - limit: 10 refresh-interval: 60 type: - origin file: - limit: 10 refresh-interval: 60 type: - origin log: - limit: 10 refresh-interval: 60 type: - origin #swagger: # butler: # api-docs-path: /v2/api-docs # swagger-version: 2.0 # resources: # auth: # name: auth-server # api-docs-path: /auth/v2/api-docs # swagger-version: 2.0 # client: # name: eureka-client # api-docs-path: /client/v2/api-docs # swagger-version: 2.0 # auth_client: # name: auth-client # api-docs-path: /auth-client/v2/api-docs # swagger-version: 2.0 swagger: butler: api-docs-path: v2/api-docs auto-generate-from-zuul-routes: true ignore-routes: eureka , eureka-server ,user-center,auth-server ,auth-login-page ,auth-js-process01,auth-js-process02,auth-css-process01,auth-css-process02,auth-login-process,auth-login-token,auth-login-authorize,auth-check-process # generate-routes: auth-server, auth-client logging: level: com.open.capacity: INFO org.hibernate: INFO org.hibernate.type.descriptor.sql.BasicBinder: TRACE org.hibernate.type.descriptor.sql.BasicExtractor: TRACE ``` ## 啟動 ![](https://img.kancloud.cn/52/ac/52ac66096943db38f9637bc39861d008_1920x506.png) ## api-gateway 內部原理請參考03.模塊詳解部分
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看