# 微服务接入说明

# 1. 微服务接入需要申请账户:

1. 认证中心服务账户
2. VPN账户(开发环境不需要)

# 2. 集群配置修改

  1. 引入依赖包
    
    <!-- 字典 -->
    <dependency>
        <groupId>com.jinke.ts</groupId>
        <artifactId>ts-module-dict</artifactId>
        <version>${ts.last.version}</version>
    </dependency>
    <!-- 字典管理 -->
    <dependency>
        <groupId>com.jinke.ts</groupId>
        <artifactId>ts-component-dictMg</artifactId>
        <version>${ts.last.version}</version>
    </dependency>
    <!-- 数据源 -->
    <dependency>
        <groupId>com.jinke.ts</groupId>
        <artifactId>ts-module-mybatis</artifactId>
        <version>${ts.last.version}</version>
    </dependency>
    <!-- swagger文档 -->
    <dependency>
        <groupId>com.jinke.ts</groupId>
        <artifactId>ts-module-swagger</artifactId>
        <version>${ts.last.version}</version>
    </dependency>
    <!-- 集群缓存redis -->
    <dependency>
        <groupId>com.jinke.ts</groupId>
        <artifactId>ts-module-cache-redis</artifactId>
        <version>${ts.last.version}</version>
    </dependency>
    <!-- 服务健康 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>2.2.6.RELEASE</version>
    </dependency>
   <!-- Spring Cloud Nacos -->
   <dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
       <version>${spring.cloud.commons.version}</version>
   </dependency>
   <!-- Spring Cloud Nacos Service Discovery -->
   <dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
       <version>${spring.cloud.commons.version}</version>
   </dependency>
   <!-- sentinel 流控 -->
   <dependency>
       <groupId>com.jinke.ts</groupId>
       <artifactId>ts-module-sentinel</artifactId>
       <version>${ts.last.version}</version>
   </dependency>
   <!-- 单点登录 -->
   <dependency>
       <groupId>com.jinke.ts</groupId>
       <artifactId>ts-module-oauth2-resource</artifactId>
       <version>${ts.last.version}</version>
   </dependency>
   <!--整合Spring cloud-->
   <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-dependencies</artifactId>
       <version>${spring.cloud.version}</version>
       <type>pom</type>
       <scope>import</scope>
   </dependency>
  1. 修改配置文件
server:
  port: {你的端口}
  compression:
    enabled: true
    mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
  servlet:
    session:
      cookie:
        name: UISESSIONMEMBER
      timeout: 7200s
    context-path: /{服务名称}
# 统一设置日期格式
spring:
  application:
    name: @project.artifactId@ #如果不生效检查pom文件中加入
  profiles:
    active: test #环境
feign:
  sentinel:
    enabled: true #feign服务
ts:
  log:
    output-type: fileerror #正式删除fileinfo  console
    package-level: # 包日志级别配置
      org.springframework.boot: error
      com.codingapi: error
      com.jinke: info
      com.alibaba: error
      org.apache.commons.beanutils: error
      org.apache.tomcat: error
      org.apache.catalina: error
      io.lettuce.core: error
      org.ehcache: error
      org.mybatis: error
    appender-type:
      fileinfo:
        appender-loader-class: com.jinke.ts.core.log.logback.config.RollingFileAppenderLoader    # 文件配置加载器类名
        file-name-pattern: /var/log/webapps/${spring.application.name}/sys_info_%d{yyyy-MM-dd}_%i.log   # 配置日志文件的路径和命名规则
        format: "%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n"    # 日志输出格式
        maxHistory: 30    # 文件最大保留天数
        maxFileSize: 10mb    # 单个文件最大容量(单位可以是kb,mb,gb)
        clearSize: 1gb    # 所有文件最大容量(单位可以是kb,mb,gb)
        use-all-package-level: false    # 是否使用package-level所配置的包和包的日志级别(true:使用,false:不使用)
        monitor-packages:    # 同上
          - com.jinke
          - com.codingapi
          - org.springframework.boot
          - com.alibaba
          - org.apache.commons.beanutils
          - org.apache.tomcat
          - org.apache.catalina
          - io.lettuce.core
          - org.ehcache
          - org.mybatis
      fileerror:
        appender-loader-class: com.jinke.ts.core.log.logback.config.RollingFileAppenderLoader    # 文件配置加载器类名
        file-name-pattern: /var/log/webapps/${spring.application.name}/sys_error_%d{yyyy-MM-dd}_%i.log   # 配置日志文件的路径和命名规则
        format: "%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n"    # 日志输出格式
        maxHistory: 30    # 文件最大保留天数
        maxFileSize: 10mb    # 单个文件最大容量(单位可以是kb,mb,gb)
        clearSize: 1gb    # 所有文件最大容量(单位可以是kb,mb,gb)
        use-all-package-level: false    # 是否使用package-level所配置的包和包的日志级别(true:使用,false:不使用)
        monitor-packages:    # 同上
          - com.codingapi
          - org.springframework.boot
          - com.alibaba
          - org.apache.commons.beanutils
          - org.apache.tomcat
          - org.apache.catalina
          - io.lettuce.core
          - org.ehcache
          - org.mybatis
          - com.jinke

  1. 接入NACOS注册中心需配置修改bootstrap-test.yaml bootstrap-prod.yaml 需注意文中自定义地方
spring:
  cloud:
    inetutils:
        preferred-networks: 10.240 # 开发环境用 使微服务集群能调用本地服务
    sentinel:
      eager: true
      transport:
        dashboard: sentinel-dashboard.tq-midware.svc.cluster.local:8080 # 注册服务到流控平台
    nacos:
      discovery:
        metadata:
              management:
                context-path: ${server.servlet.context-path}/actuator
        namespace: #46c14238-9f7e-4415-ac0e-1c45953c6f50 #命名空间 如无则留空
        # 指定nacos的server的地址 默认无需变更
        server-addr: nacos.tq-midware.svc.cluster.local:8848
      config:
        server-addr: nacos.tq-midware.svc.cluster.local:8848
        namespace: #46c14238-9f7e-4415-ac0e-1c45953c6f50
        extension-configs[0]:
          data-id: ds.yaml # 你的项目数据源
          group: DEFAULT_GROUP   # 默认为DEFAULT_GROUP
          refresh: true   # 是否动态刷新,默认为false
        extension-configs[1]:
          data-id: redis-cluster-dev.yaml # 你的项目缓存资源配置
          group: DEFAULT_GROUP   # 默认为DEFAULT_GROUP
          refresh: true   # 是否动态刷新,默认为false
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  banner:
    location: banner.txt
  output:
    ansi:
      enabled: always

  1. @project.artifactId@ #如果不生效检查pom文件中加入
<directory>src/main/resources</directory>
<filtering>true</filtering>

# 在ResourceApplication加注解@EnableDiscoveryClient

# 3. 将服务配置为资源服务

1..注册为资源服务器

<dependency>
    <groupId>com.jinke.ts</groupId>
    <artifactId>ts-module-oauth2-resource</artifactId>
    <version>${ts.last.version}</version>
</dependency>
  1. 配置客户端账户和密码,客户端账户密码联系管理员开通
security:
  oauth2:
    enable: true
    client:
      client-id: {你的客户端账户}
      client-secret: {你的客户端密码}
      access-token-uri: https://gateway-test.tq-service.com/uaa-center/oauth/token
      user-authorization-uri: https://gateway-test.tq-service.com/uaa-center/oauth/authorize
    resource:
      token-info-uri: https://gateway-test.tq-service.com/uaa-center/oauth/check_token
  1. 到此还无法启动项目,因为无法读取注册中心数据源等配置信息,需配置VPN,请检查VPN是否正常启动注册。

    openvpn使用说明 下载 (opens new window)

    VPN账户默认采用统一账户,申请方式联系管理员

  2. 挂载vpn后,启动服务查看是否正常注册到nacos注册中心,以及是否正常加载取配置中心 img

6.注册到服务中,外部访问需要配置网关转发规则,具体参照[网关配置]

最后更新日期: 9/1/2021, 7:09:41 AM