application.yml中常用參數設置


一、服務中的application.yml

server:
  port: 9004
spring:
  application:
    name: business
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.200.128:3306/changgou_business?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: root
  main:
    allow-bean-definition-overriding: true #當遇到同樣名字的時候,是否允許覆蓋注冊
  rabbitmq: #添加rabbit,連接到它的虛擬機
    host: 192.168.200.128
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:6868/eureka
  instance:
    prefer-ip-address: true
feign:
  hystrix:
    enabled: true
  client:
    config:
      default:   #配置全局的feign的調用超時時間  如果 有指定的服務配置 默認的配置不會生效
        connectTimeout: 60000 # 指定的是 消費者 連接服務提供者的連接超時時間 是否能連接  單位是毫秒
        readTimeout: 20000  # 指定的是調用服務提供者的 服務 的超時時間()  單位是毫秒
#hystrix 配置
hystrix:
  command:
    default:
      execution:
        timeout:
          #如果enabled設置為false,則請求超時交給ribbon控制
          enabled: true
        isolation:
          strategy: SEMAPHORE
          thread:
            # 熔斷器超時時間,默認:1000/毫秒
            timeoutInMilliseconds: 20000

1、Thread和Semaphore的區別?

  • Thread:這是比較常用的隔離策略,即根據配置把不同的命令分配到不同的線程池中,該策略的優點是隔離性好,並且可以配置斷路,某個依賴被設置斷路之后,系統不會再嘗試新起線程運行它,而是直接提示失敗,或返回fallback值;缺點是新起線程執行命令,在執行的時候必然涉及到上下文的切換,這會造成一定的性能消耗,但是Netflix做過實驗,這種消耗對比其帶來的價值是完全可以接受的。
  • Semaphore:開發者可以限制系統對某一個依賴的最高並發數。這個基本上就是一個限流的策略。每次調用依賴時都會檢查一下是否到達信號量的限制值,

 

二、Eureka中的application.yml

server:
  port: 6868 # 微服務端口號
  eureka:
    client:
      register-with-eureka: false  #是否將自己注冊到eureka中。自己不提供服務,不注冊。若是集群,則注冊。
  fetch-registry: false #是否從eureka中獲取信息 
  service-url: defaultZone: http://127.0.0.1:${server.port}/eureka/ # EurekaServer的地址,自己的地址;如果是集群,需要寫其它Server的地址。 

三、gateway中的appliction.yml

 1 spring: #使用spring框架
 2   application:
 3     name: sysgateway
 4   cloud: #使用springcloud微服務框架
 5     gateway:
 6       globalcors: #全局配置
 7         cors-configurations:
 8           '[/**]': # 匹配所有請求
 9             allowedOrigins: "*" #跨域處理 允許所有的域
10             allowedMethods: # 支持的方法
11               - GET
12               - POST
13               - PUT
14               - DELETE
15       routes:
16         # 路由id,可以隨意寫
17         - id: goods  
18           # 代理的服務地址
19           uri: lb://goods
20           # 路由斷言,可以配置映射路徑
21           predicates:
22             - Path=/goods/**
23           # 過濾器
24           filters:
25             - StripPrefix= 1
26             - name: RequestRateLimiter #請求數限流 名字不能隨便寫
27               args:
28                 key-resolver: "#{@ipKeyResolver}"
29                 redis-rate-limiter.replenishRate: 1 #令牌桶每秒填充平均速率
30                 redis-rate-limiter.burstCapacity: 1 #令牌桶總容量
31         - id: system
32           uri: lb://system
33           predicates:
34             - Path=/system/**
35           filters:
36             # 表示過濾1個路徑,2表示兩個路徑,以此類推
37             - StripPrefix= 1
38   redis:
39     host: 192.168.200.128
40 server:
41   port: 9101
42 eureka:  # 在gateway中注冊Eureka
43   client:
44     service-url:
45       defaultZone: http://127.0.0.1:6868/eureka
46   instance:
47     prefer-ip-address: true
spring:
  application:
    name: gateway-web
  cloud:
    gateway:
      globalcors:
        cors-configurations:
          '[/**]': # 匹配所有請求
            allowedOrigins: "*" #跨域處理 允許所有的域
            allowedMethods: # 支持的方法
              - GET
              - POST
              - PUT
              - DELETE
      routes:
        - id: changgou_goods_route
          uri: lb://goods
          predicates:
            - Path=/api/album/**,/api/brand/**,/api/cache/**,/api/categoryBrand/**,/api/category/**,/api/para/**,/api/pref/**,/api/sku/**,/api/spec/**,/api/spu/**,/api/stockBack/**,/api/template/**
          filters:
            #- PrefixPath=/brand
            - StripPrefix=1
          #用戶微服務
        - id: changgou_user_route
          uri: lb://user
          predicates:
            - Path=/api/user/**,/api/address/**,/api/areas/**,/api/cities/**,/api/provinces/**
          filters:
            - StripPrefix=1

          #認證微服務
        - id: changgou_oauth_user
          uri: lb://user-auth
          predicates:
            - Path=/api/oauth/**
          filters:
            - StripPrefix=1

          #訂單微服務
        - id: changgou_order_route
          uri: lb://order
          predicates:
            - Path=/api/cart/**,/api/categoryReport/**,/api/orderConfig/**,/api/order/**,/api/orderItem/**,/api/orderLog/**,/api/preferential/**,/api/returnCause/**,/api/returnOrder/**,/api/returnOrderItem/**
          filters:
            - StripPrefix=1
          #購物車訂單渲染微服務
        - id: changgou_order_web_route
          uri: lb://order-web
          predicates:
            - Path=/api/wcart/**,/api/worder/**,/api/wxpay/**
          filters:
            - StripPrefix=1
        #秒殺渲染微服務
        - id: changgou_seckill_web_route
          uri: lb://seckill-web
          predicates:
            - Path=/api/wseckillgoods/**,/api/wseckillorder/**
          filters:
            - StripPrefix=1
  redis:
    host: 192.168.200.128
server:
  port: 8001
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:6868/eureka
  instance:
    prefer-ip-address: true
management:
  endpoint:
    gateway:
      enabled: true
    web:
      exposure:
        include: true

四、 Spring Cloud 體系技術綜合應用概覽 

 Spring Cloud 5大組件

Eureka注冊中心--------->管理微服務地址和狀態信息

Feign---------->微服務之間遠程調用;(封裝RestTemplate Ribbon)

Gateway------->微服務統一入口。(路由+過濾器)

Config-------->管理微服務配置文件

Hystrix------->熔斷器,防止系統雪崩


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM