springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。

写一下今年做的一个微服务架构,作为分享,如果你想使用但又有不明白的地方可以私信或评论,我看到了会及时回复。如果你又更好的想法可以改进我不足之处的,也非常欢迎在评论中提出来。

一、服务版本依赖解释

:: Spring Boot................... :: [ v2.6.13]
:: Dubbo......................... :: [ v2.7.13]
:: spring-cloud-starter-alibaba.. :: [ v2021.0.5.0]
:: nacos-client.................. :: [ v2.2.0]

搭建微服务架构最烦的就是版本依赖问题,查了官方提供的版本对应,我这里提供的版本已经实测可用,可以放心使用。

二、功能预览

部分基础功能已经实现,不需要重复开发。功能不多,但足够使用,省去你开发系统管理的时间岂不是很美哉。

1、登录注册

2、首页

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第1张图片

3、系统管理

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第2张图片

4、系统监控

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第3张图片

5、操作日志

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第4张图片

6、代码生成

这里的代码生成都是按照规范生成的,基本上建一个表,这里生成已经完成至少50%开发量。介绍一下,这里的代码生成我使用的是若依的生成组件,不过若依的生成模板被我抛弃了,我认为若依的模板生成的代码不够规范,所以自己写了模板,并经过我多次调试。可以直接使用

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第5张图片

三、后台服务要求。

按照微服务划分原则,基础版划分了一个总的服务端,和一个系统管理端。

1、环境要求

第一个JDK1.8版本,如果安装jdk自己百度,一大堆。

第二个安装redis

第三个你都用微服务了,maven私服不可少,装一个nexus,百度一大堆。

第四个安装nacos,nacos版本2.2.0,怎么安装也是自己百度,也是一大堆教程。

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第6张图片

2、后台工程结构介绍

我主要说明一下我的系统管理端(hdx-system)是怎么搭建的,因为后面加上来的微服务都要像这样搭建,基本上会这一步就够了。

1)在idea中新建project,注意group和artiface,这里配置好,免得后面改又麻烦。这里建好后把src文件夹和其他不需要的都删了,只留一个pom.xml文件。为什么?

我们要用这个来做maven的依赖jar包版本的统一管理

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第7张图片

最外层pom.xml内容



    4.0.0
    pom

    
        org.springframework.boot
        spring-boot-starter-parent
        2.6.13
    

    com.hdx
    hdx-system
    1.0.0

    hdx-system
    hdx-system

    
        1.8
    

    
        hdx-system-common
        hdx-system-dao
        hdx-system-biz
        hdx-system-client
    

    
        


            
                org.springframework.boot
                spring-boot-starter
                2.6.13
            

            
                org.springframework.boot
                spring-boot-starter-test
                2.6.13
                test
            

            
                org.apache.dubbo
                dubbo-spring-boot-starter
                2.7.13
            
            
            
                org.apache.dubbo
                dubbo-registry-nacos
                2.7.13
            
            
                org.springframework.cloud
                spring-cloud-starter-bootstrap
                3.0.4
            
            
                com.alibaba.cloud
                spring-cloud-starter-alibaba-nacos-discovery
                2021.0.5.0
            
            
                com.alibaba.cloud
                spring-cloud-starter-alibaba-nacos-config
                2021.0.5.0
            
            
                com.alibaba.nacos
                nacos-client
                2.2.0
            

            
            
                com.alibaba.spring
                spring-context-support
                1.0.11
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-starter
                1.3.5
            
            
                org.springframework
                spring-tx
                5.3.16
            

            
                org.mybatis
                mybatis
                3.5.9
            
            
                org.mybatis
                mybatis-spring
                2.0.7
            
            
                com.baomidou
                mybatis-plus-boot-starter
                3.4.2
            

            
                org.springframework.boot
                spring-boot-starter-data-redis
                2.6.4
            

            
                redis.clients
                jedis
                2.9.0
            

            
            
                mysql
                mysql-connector-java
                5.1.21
            

            
            
                org.apache.commons
                commons-lang3
                3.12.0
            

            
                commons-collections
                commons-collections
                3.2.2
            

            
                junit
                junit
                4.12
                test
            

            
                com.alibaba
                fastjson
                1.2.83
            

            
                com.google.guava
                guava
                30.0-jre
            

            
                com.google.code.gson
                gson
                2.8.9
            

            
                org.slf4j
                slf4j-api
                1.7.36
            

            
                org.apache.httpcomponents
                httpclient
                4.5.14
            

            
                cn.hutool
                hutool-all
                5.7.22
            

            
                eu.bitwalker
                UserAgentUtils
                1.21
            

            
                org.springframework.boot
                spring-boot-starter-aop
                2.6.4
            
            
                log4j
                log4j
                1.2.17
            

            
                com.github.oshi
                oshi-core
                6.4.0
            
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.1
                
                    1.8
                    1.8
                    UTF-8
                
            
        
    

    
        
            nexus
            Nexus public
            http://192.168.0.23:8081/nexus/repository/maven-public/
            true
            true
        
    
    
        
            maven-releases
            Nexus Sites
            http://192.168.0.23:8081/nexus/repository/maven-releases/
        
        
            maven-snapshots
            Nexus Snapshot
            http://192.168.0.23:8081/nexus/repository/maven-snapshots/
        
    


我的工程结构,总的长这样

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第8张图片

biz:启动类和代码实现类在这个模块,对外提供RPC调用接口的实现类都在这里,相当于这里是做业务实现的

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第9张图片

client:这里是向dubbo中提供服务的,本着最小暴漏原则,这里只有一个接口,接口的实现在biz中

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第10张图片

common:这里全是Java实体对象模型类,统一管理,遵循规范。

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第11张图片

dao:这里是数据层,只存3个东西,调用数据库的DAO接口,和数据库表一一对应的实体DO类,以及mybatis的xml文件

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第12张图片

四、源码获取

我已在gitee码云上开源,可以通过git命令拉取项目;如果你需要拉取源码,有三个工程需要拉取。

1、hdx-admin

[email protected]:hdxsoft/hdx-admin.git

https://gitee.com/hdxsoft/hdx-admin.git

2、hdx-system

[email protected]:hdxsoft/hdx-system.git

https://gitee.com/hdxsoft/hdx-system.git

3、ht-public(这是一个不可启动的jar包工程,里面封装了公共的工具类,因为是微服务的,有些公用的工具类不可能每个服务都要写一个,放在这里全工程通用,在pom中引一下jar包即可,需要将此工程打成jar包,推送到自己的maven库,有maven私服的推到私服更好。mvn clean install deploy)

[email protected]:hdxsoft/ht-public.git

https://gitee.com/hdxsoft/ht-public.git

五、工程启动

获取源码后要启动工程需要做什么?

1、安装nacos,将hdx-admin下sql文件夹下的nacos.sql导入到你自己本地nacos访问的数据库中,然后再nacos上改掉数据库连接信息和redis连接信息,改成自己的。

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第13张图片

2、将hdx-admin下sql文件夹下的demo.sql导入到自己本地的数据库中,注意建立的数据的编码。

springboot+dubbo+nacos实现前后端分离的微服务架构,springboot微服务架构,dubbo微服务架构,nacos配置中心 。_第14张图片

3、最好安装一个nexus私服。先将ht-publi打包推到仓库。

命令:mvn clean install deploy

再将system打包推送

再建admin打包推送

完成以上步骤就可以启动了。

你可能感兴趣的:(架构,spring,boot,dubbo)