JeecgBoot 单体升级微服务快速方案(十分钟搞定)

JeecgBoot 单体升级微服务方案(十分钟搞定)

当前系统分为system、demo 等模块,现有需求把每个模块单独启动作为微服务应用,故而推出新版boot【20200812beta】,支持快速切换成cloud,本项目cloud技术栈为:

  • 服务注册:nacos
  • 配置中心:nacos-config
  • 网关:springcloud-gateway
  • 服务间调用:openfeign

文章目录

  • JeecgBoot 单体升级微服务方案(十分钟搞定)
    • 一、升级system模块为独立服务
      • 1.将system项目的pom文件中的其他模块的依赖删除,只保留local-api
      • 2.system项目作为微服务启动,需要添加微服务依赖
      • 3.在resource文件夹下新建bootstrap.yml,内容如下:
      • 4.修改dev配置文件,删除截图中两处配置
      • 5.启动类添加注解:`@EnableDiscoveryClient`
    • 二、升级其他模块为独立服务(例如demo模块)
      • 1.修改pom,将local-api修改成cloud-api
      • 2.添加配置文件bootstrap.yml(如果没有),内容如下:
      • 3.新增配置文件application-dev.yml(如果没有),内容可以直接复制system下的同名文件,需要修改端口号
      • 4.在org.jeecg包下新建启动类(如果没有)
    • 三、微服务集成Nacos服务注册发现
      • 1.启动nacos,访问`localhost:8848/nacos` 账号密码 都是nacos,查看服务列表
      • 2.启动system、demo,再查看服务列表
      • 3.启动gateway

一、升级system模块为独立服务

1.将system项目的pom文件中的其他模块的依赖删除,只保留local-api

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LG6QwOO7-1597802895637)(images/screenshot_1597402774325.png)]

2.system项目作为微服务启动,需要添加微服务依赖



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

3.在resource文件夹下新建bootstrap.yml,内容如下:

spring:
  profiles:
    active: dev
  application:
    name: jeecg-system
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

4.修改dev配置文件,删除截图中两处配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4SrlFeWJ-1597802895641)(images/screenshot_1597570291088.png)]

5.启动类添加注解:@EnableDiscoveryClient

二、升级其他模块为独立服务(例如demo模块)

以demo为例:

1.修改pom,将local-api修改成cloud-api

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rMOiilMF-1597802895643)(images/screenshot_1597403237245.png)]


   org.jeecgframework.boot
   jeecg-system-cloud-api

2.添加配置文件bootstrap.yml(如果没有),内容如下:

spring:
  profiles:
    active: dev
  application:
    name: jeecg-demo
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

3.新增配置文件application-dev.yml(如果没有),内容可以直接复制system下的同名文件,需要修改端口号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QfE4LYpC-1597802895646)(images/screenshot_1597403472075.png)]

4.在org.jeecg包下新建启动类(如果没有)

package org.jeecg;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

import java.net.UnknownHostException;

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class JeecgDemoApplication {

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

上述步骤完成 即可启动nacos 运行每个模块的启动类 测试微服务。

三、微服务集成Nacos服务注册发现

1.启动nacos,访问localhost:8848/nacos 账号密码 都是nacos,查看服务列表

JeecgBoot 单体升级微服务快速方案(十分钟搞定)_第1张图片

2.启动system、demo,再查看服务列表

JeecgBoot 单体升级微服务快速方案(十分钟搞定)_第2张图片

3.启动gateway

JeecgBoot 单体升级微服务快速方案(十分钟搞定)_第3张图片


#备注:前后端交互需要修改一些配置、
1.每个服务yml配置中有个属性 context-path: /jeecg-boot,服务化后需要修改成/,或者直接删除该配置
2.前端项目找到文件public/index.html
修改地址:window._CONFIG['domianURL'] = 'http://127.0.0.1:9999,其中端口号 9999和gateway的端口保持一致
3. 跨域设置,此设置可以忽略,文档留作记录

# 跨域问题注释掉这俩类的跨域设置

org/jeecg/config/shiro/filters/JwtFilter.java:65
org/jeecg/config/WebMvcConfiguration.java:49

你可能感兴趣的:(JeecgBoot 单体升级微服务快速方案(十分钟搞定))