zoukankan      html  css  js  c++  java
  • 十分钟搞定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项目作为微服务启动,需要添加微服务依赖

     1 <!-- nacos -->
     2 <dependency>
     3     <groupId>com.alibaba.cloud</groupId>
     4     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
     5 </dependency>
     6 <!-- 如果走配置中心需要添加此依赖 -->
     7 <dependency>
     8    <groupId>com.alibaba.cloud</groupId>
     9    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    10 </dependency>
    11 
    12 <!-- 服务降级 -->
    13 <dependency>
    14     <groupId>com.alibaba.cloud</groupId>
    15     <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    16 </dependency>

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

     1 spring:
     2   profiles:
     3     active: dev
     4   application:
     5     name: jeecg-system
     6   cloud:
     7     nacos:
     8       discovery:
     9         server-addr: 127.0.0.1:8848
    10 feign:
    11   sentinel:
    12     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(如果没有),内容如下:

     1 spring:
     2   profiles:
     3     active: dev
     4   application:
     5     name: jeecg-demo
     6   cloud:
     7     nacos:
     8       discovery:
     9         server-addr: 127.0.0.1:8848
    10 feign:
    11   sentinel:
    12     enabled: true

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

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

     1 package org.jeecg;
     2 
     3 import org.springframework.boot.SpringApplication;
     4 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
     5 import org.springframework.boot.autoconfigure.SpringBootApplication;
     6 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
     7 import org.springframework.cloud.openfeign.EnableFeignClients;
     8 
     9 import java.net.UnknownHostException;
    10 
    11 @SpringBootApplication
    12 @EnableDiscoveryClient
    13 @EnableFeignClients
    14 public class JeecgDemoApplication {
    15 
    16     public static void main(String[] args) throws UnknownHostException {
    17         SpringApplication.run(JeecgDemoApplication.class, args);
    18     }
    19 }

    上述步骤完成 即可启动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的端口保持一致

  • 相关阅读:
    月经贴——.net前景何妨!
    [Asp.net 5] Options-配置文件之后的配置
    [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(5)(IEnumerable<>补充)
    [Asp.net 5] Logging-其他日志系统的实现
    [Asp.net 5] Logging-日志系统的基本架构(下)
    [Asp.net 5] Logging-日志系统的基本架构(上)
    [Asp.net 5] Logging-新日志系统目录
    [Asp.net 5] Localization-简单易用的本地化
    [Asp.net 5] Localization-Asp.net运行时多语言
    java-多线程安全问题
  • 原文地址:https://www.cnblogs.com/jeecg158/p/13689646.html
Copyright © 2011-2022 走看看