SpringCloud微服务实战——搭建企业级开发框架(九):使用Nacos发现、配置和管理微服务

    Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos部署请参考Nacos安装指南:https://www.jianshu.com/p/2e065c15d730
1、跟之前新建SpringBoot自定义扩展一样,我们在GitEgg_Platform中新建gitegg-platform-cloud子工程,此工程主要用于Spring Cloud相关功能的自定义及扩展。
2、在GitEgg_Platform中的gitegg-platform-bom子工程添加SpringCloud Alibaba的依赖




    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.3.RELEASE
        
    

    4.0.0

    com.gitegg.platform
    gitegg-platform-bom
    ${project.artifactId}
    ${gitegg.project.version}
    pom

    
        
        1.8
        
        3.8.1
        
        UTF-8
        
        UTF-8
        
        UTF-8

        
        1.0-SNAPSHOT

        
        8.0.17
        
        9.1-901.jdbc4
        
        1.1.23
        
        3.4.0
        
        3.0.1
        
        2.2.3.RELEASE

    

    
        
            
            
                com.gitegg.platform
                gitegg-platform-db
                ${gitegg.project.version}
            
            
            
                com.gitegg.platform
                gitegg-platform-mybatis
                ${gitegg.project.version}
            
            
            
                com.gitegg.platform
                gitegg-platform-swagger
                ${gitegg.project.version}
            
            
            
                com.gitegg.platform
                gitegg-platform-boot
                ${gitegg.project.version}
            
            
            
                com.gitegg.platform
                gitegg-platform-cloud
                ${gitegg.project.version}
            
            
            
                mysql
                mysql-connector-java
                ${mysql.connector.version}
            
            
            
                postgresql
                postgresql
                ${postgresql.connector.version}
            
            
            
                com.alibaba
                druid-spring-boot-starter
                ${druid.version}
            
            
            
                com.baomidou
                mybatis-plus-boot-starter
                ${mybatis.plus.version}
            
            
            
                com.github.xiaoymin
                knife4j-dependencies
                ${knife4j.version}
                pom
                import
            
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                ${spring.cloud.alibaba}
                pom
                import
            
        
    



3、在gitegg-platform-cloud工程中引入spring-cloud-starter-alibaba-nacos-discovery



    
        GitEgg-Platform
        com.gitegg.platform
        1.0-SNAPSHOT
    
    4.0.0

    gitegg-platform-cloud
    ${project.artifactId}
    ${project.parent.version}
    jar

    
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
    

4、GitEgg_Platform工程重新执行install,在GitEgg_Cloud的子工程gitegg-service中引入gitegg-platform-cloud



    
        GitEgg-Cloud
        com.gitegg.cloud
        1.0-SNAPSHOT
    
    4.0.0

    gitegg-service
    pom
    
        gitegg-service-base
        gitegg-service-bigdata
        gitegg-service-system
    

    
        
        
            com.gitegg.platform
            gitegg-platform-boot
        
        
        
            com.gitegg.platform
            gitegg-platform-cloud
        
        
        
            com.gitegg.platform
            gitegg-platform-db
        
        
        
            com.gitegg.platform
            gitegg-platform-mybatis
        
        
        
            com.gitegg.platform
            gitegg-platform-swagger
        
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
    


5、修改application.yml文件,添加nacos配置:

server:
  port: 8001
spring:
  application:
    name: gitegg-service-system
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://127.0.0.1/gitegg_cloud?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
    username: root
    password: root
    initialSize: 1
    minIdle: 3
    maxActive: 20
    # 配置获取连接等待超时的时间
    maxWait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    minEvictableIdleTimeMillis: 30000
    validationQuery: select 'x'
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: config,stat,slf4j
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;
    # 合并多个DruidDataSource的监控数据
    useGlobalDataSourceStat: true
mybatis-plus:
      mapper-locations: classpath*:/com/gitegg/*/*/mapper/*Mapper.xml
      typeAliasesPackage: com.gitegg.*.*.entity
      global-config:
        #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
        id-type: 2
        #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
        field-strategy: 2
        #驼峰下划线转换
        db-column-underline: true
        #刷新mapper 调试神器
        refresh-mapper: true
        #数据库大写下划线转换
        #capital-mode: true
        #逻辑删除配置
        logic-delete-value: 1
        logic-not-delete-value: 0
      configuration:
        map-underscore-to-camel-case: true
        cache-enabled: false

6、修改GitEggSystemApplication.java添加注解@EnableDiscoveryClient,然后运行GitEggSystemApplication:

package com.gitegg.service.system;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.ComponentScan;

/**
 * gitegg-system 启动类
 */
@EnableDiscoveryClient
@ComponentScan(basePackages = "com.gitegg")
@MapperScan("com.gitegg.*.*.mapper")
@SpringBootApplication
public class GitEggSystemApplication {

    public static void main(String[] args) {
        SpringApplication.run(GitEggSystemApplication.class,args);
    }

}

7、在浏览器中打开nacos的地址,点击左侧菜单的服务列表,可以查看到服务已经注册到nacos

image.png

本文源码在https://gitee.com/wmz1930/GitEgg 的chapter-09分支。

GitEgg-Cloud是一款基于SpringCloud整合搭建的企业级微服务应用开发框架,开源项目地址:

Gitee: https://gitee.com/wmz1930/GitEgg
GitHub: https://github.com/wmz1930/GitEgg

欢迎感兴趣的小伙伴Star支持一下。

你可能感兴趣的:(SpringCloud微服务实战——搭建企业级开发框架(九):使用Nacos发现、配置和管理微服务)