Skip to content

SpringCloud

657字约2分钟

2023-12-06

Nacos 常用配置

1.Maven 依赖配置

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.服务发现和注册配置

## 除nacos配置以外走线上nacos配置中心,本地开发调试可在当前文件修改覆盖。
spring:
  application:
    name: @project.name@
  profiles:
    active: @spring.profiles.active@
  cloud:
    nacos:
      server-addr: @nacos.server.address@
      username: @nacos.user.name@
      password: @nacos.user.password@
      config:
        file-extension: yaml
        namespace: @nacos.namespace.id@
        name: finance
        group: FIN_GROUP
        shared-configs:  # 共享配置
          - {data-id: kdaiyu-app.yaml, group: DEFAULT_GROUP, refresh: true}
      
#        extension-configs: # 扩展配置
#          - { data-id: finance-xxxx.yaml, group: FIN_GROUP, refresh: true }

      discovery:
        server-addr: @nacos.server.address@
        namespace: @nacos.namespace.id@
        group: kdaiyu_GROUP
        cluster-name: @nacos.cluster.name@

SpringGateway 常用配置

1.Gateway 网关maven配置

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<!--  r2dbc 连接池 -->
<dependency>
    <groupId>io.r2dbc</groupId>
    <artifactId>r2dbc-pool</artifactId>
</dependency>
<!--r2dbc mysql 库-->
<dependency>
    <groupId>dev.miku</groupId>
    <artifactId>r2dbc-mysql</artifactId>
</dependency>

2.路由规则配置

spring:
  application:
    name: kdaiyu-gateway
  
  cloud:
    gateway:
      routes:
        - id: kdaiyu-main
          uri: lb://kdaiyu-main
          predicates:
            - Path=/api/main/**
          filters:
            - StripPrefix=1
   
        - id: kdaiyu-custom
          uri: lb://kdaiyu-custom
          predicates:
            - Path=/api/doctor/**

        - id: kdaiyu-user
          uri: lb://kdaiyu-user
          predicates:
            - Path=/api/user/**
        
        - id: kdaiyu-business
          uri: lb://kdaiyu-business
          predicates:
            - Path=/api/business/**


      globalcors: # 跨域配置
        add-to-simple-url-handler-mapping: true  # 解决option请求被拦截问题
        cors-configurations:
          '[/**]':
            allowedOrigins: # 允许访问的域名
              - "*.kdaiyu.com"
            allowedMethods: # 允许的请求类型
              - GET
              - POST
              - PUT
              - DELETE
              - OPTIONS
            allowedHeaders: '*.kdaiyu.com'  # 允许headers信息
            allowCredentials: true         # 是否允许携带Cookies,若allowedOrigins配置*,此处必须false
            maxAge: 360000                 # 允许跨域检查的有效期
  
  main:  # 配置bean 是否允许覆盖或循环引用
    allow-bean-definition-overriding: true
    allow-circular-references: true
  
  r2dbc:
    url: r2dbcs:mysql://10.1.10.21:3306/kdaiyu?SSL=false&sslMode=DISABLED
    username: admin
    password: Admin@123
    pool:
      enabled: false
      max-size: 10
      max-idle-time: 30
      max-create-connection-time: 1000

  webflux:
    base-path: /api

3.服务器及HTTPS配置

server:
  port: 443
  error:
    whitelabel:
      enabled: true
  ssl:
    enabled: true
    key-store: classpath:kdaiyu.com.pfx
    key-store-password: Bdi2389!
    key-store-type: EDf232

4.SpringSecurity及其他配置

kdaiyu:
  gateway:
    token: EWEIJFWEW<E#*@#SDN
    ignore-urls: /health,/health/*,/auth/login,/main/register

SpringBoot 服务公共配置

spring:
  cloud:
    config:   # nacos是否允许覆盖,本地优先
      allow-override: true
      override-none: true
      override-system-properties: true
      
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://10.1.10.21:3306/kdaiyu?useUnicode=true&characterEncoding=UTF-8
    username: admin
    password: Admin@123
    druid:
      max-active: 10
      min-idle:  2
      initial-size: 5
      max-wait: 2000
      max-wait-thread-count: 20
      stat-view-servlet:
        enabled: true
        login-username: root
        login-password: dev@123

  redis:
    host: 10.1.10.21
    port: 6379
    password: 123456
    connect-timeout: 15000
    database: 0
    jedis:
      pool:
        max-idle: 100
        min-idle: 10
        enabled: true
        max-wait: 1000
        max-active: 8000

feign:
  okhttp:
    enabled: true


mybatis-flex:
  mapper-locations: classpath*:com/kdaiyu/**/mapper/*.xml
  global-config:
    print-sql: false
    print-banner: false
    normal-value-of-logic-delete: n
    deleted-value-of-logic-delete: y
    logic-delete-column: del_flag

OpenFeign 配置

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-okhttp</artifactId>
</dependency>