乐趣区

关于微服务:十分钟搞定JeecgBoot-单体升级微服务

JeecgBoot 自开源来被问最多的就是微服务版本什么工夫出呢??微服务是个趋势,特地随着中台概念的趣味,每个公司对微服务的需要都很迫切。针对大家的需要,咱们推出了 Jeecg-Cloud 版本采纳的 SpringCloud Alibaba 体系!!
然而同时保护两套代码,对咱们团队来讲保护老本太高,为了缩小保护老本,也为了让用户有智能的抉择,故而推出新版 JeecgBoot 2.3,咱们特意制作了单体和微服务自在切换机制,一套代码能够轻松切换单体、微服务。

以后新版 JeecgBoot 2.3 平台默认提供了 system、demo 等模块,能够疾速把每个模块独自启动作为微服务利用,切换成 cloud。
本我的项目采纳 SpringCloud Alibaba 技术栈为:

  • 服务注册:nacos
  • 配置核心:nacos-config
  • 理由网关:gateway
  • 服务间调用:openfeign
  • 熔断和降级:sentinel
  • 服务监控:Spring Boot Admin

视频教程:>> 单体降级微服务视频教程

上面是单体疾速降级微服务计划:

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

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

2.system 我的项目作为微服务启动,须要增加微服务依赖
<!-- nacos -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 如果走配置核心须要增加此依赖 -->
<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-sentinel</artifactId>
</dependency>
3. 在 resource 文件夹下新建 bootstrap.yml, 内容如下:
spring:
  profiles:
    active: dev
  application:
    name: jeecg-system
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
feign:
  sentinel:
    enabled: true
4. 批改 dev 配置文件,删除截图中两处配置

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

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

以 demo 为例:

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

<dependency>
   <groupId>org.jeecgframework.boot</groupId>
   <artifactId>jeecg-system-cloud-api</artifactId>
</dependency>
2. 增加配置文件 bootstrap.yml(如果没有), 内容如下:
spring:
  profiles:
    active: dev
  application:
    name: jeecg-demo
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
feign:
  sentinel:
    enabled: true
3. 新增配置文件 application-dev.yml(如果没有),内容能够间接复制 system 下的同名文件,须要批改端口号

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

微服务集成 Nacos 服务注册发现
docke 装置 nacos 文档:https://nacos.io/zh-cn/docs/quick-start-docker.html
1. 启动 nacos, 拜访localhost:8848/nacos 账号密码 都是 nacos,查看服务列表

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

四、启动 gateway

启动类:org.jeecg.JeecgGatewayApplication

查看在线接口文档:http://127.0.0.1:9999/doc.html

五、启动前端

前端我的项目找到文件 public/index.html,批改后盾服务为 gateway 地址
批改地址:window._CONFIG[‘domianURL’] = ‘http://127.0.0.1:9999,其中端口号 9999 和 gateway 的端口保持一致

退出移动版