美文网首页技术中台
第一章 dubbo整合nacos搭建项目基本结构

第一章 dubbo整合nacos搭建项目基本结构

作者: 开发小师傅 | 来源:发表于2020-11-07 22:01 被阅读0次

    路漫漫其修远兮,吾将上下而求索

    这个商城项目正式开始了,我把这个项目叫启明星(venus),本周开始我每周都会集成一个小功能到项目中,日常会用到的spring-cloud和spring-boot的各类组件,还有一个商城项目应该有的各类接口,包括移动端甚至小程序,相关的方法还有这些年积攒的经验我都会记下来,感兴趣的朋友可以关注后续内容哦。

    本节所有代码可以在gitlab上获取,地址:

    https://gitlab.com/Flnn/venus.git

    一、使用的主要框架以及版本

    1. spring-cloud-alibaba 2.2.3.RELEASE

    2. spring-cloud Hoxton.SR8

    3. dubbo 2.7.8

    4. spring-boot 2.2.10.RELEASE

    二、注册中心

    nacos作为注册中心,我这里就简单使用单节点模式启动了,下载好以后解压,进入bin目录,执行制定的启动命令即可。

    nacos官网链接:nacos

    下载链接:nacos下载

    操作系统不同执行的命令也不一样,windows是:

    startup.cmd -m standalone

    linux和Mac是:

    sh startup.sh -m standalone

    非生产环境nacos启动单机模式也就可以了,但是生产上千万不要这样,出于健壮性考虑,生产环境需要配置集群模式。

    三、目录结构划分

    1、后端的java项目可以简单的分为两类,一类是服务提供者项目,例如venus-product,venus-user,venus-order; 一类是服务消费者项目,例如venus-webapp;dubbo的服务提供者,可以理解为一个个的service项目,而消费者,则是一个个的web-api项目。这样相当于controller和service拆分,两个都可以独立扩展。

    2、对于服务提供者,一个项目又包含了5个子项目,每一个项目的含义如下:

    这应该是很细的拆分了,消费者或者其他service需要引用本项目的资源的时候,只需要将model和service接口层加入依赖即可。

    几个要点

    1、spring-boot的项目为什么没有继承spring-boot-parent??

    其实继承spring-boot-parent并不是必选的,换一种方式可以达到一样的目的,本项目通过idea建立的时候,因为要规划三个层级的结构,所以只能使用maven最简单的骨架来创建项目,想要让项目达到一样的效果,可以在父项目pom文件中加入以下内容:    

    <dependencyManagement>

    <dependencies>

    <dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-dependencies</artifactId>

    <version>${spring.boot.version}</version>

    <type>pom</type>

    <scope>import</scope>

    </dependency>

    </dependencies>

    </dependencyManagement>

    2、配置profiles

    profiles在maven项目的pom文件中定义,然后在application.properties配置的时候使用pom.xml中定义的变量,然后在idea中就可以勾选某个profiles激活。如下图:左边定义profile,右边勾选。

    3、日志logback

        spring-boot项目中默认的是logback,本身性能足够优秀,我也就直接使用它了,定义logback的配置文件logback-spring.xml。而我因为可能在windows和Mac上编码,两边日记存储目录不一样,我就使用profile专门做了一个mac的(其实启动的时候加上一个jvm参数制定一下日志文件路径也可以,但是我最不喜欢启动时加jvm参数,所以...)。

        日志配置没什么花头,网上可参考的也很多,具体配置就不赘述了,不过这里面倒是有一个地方值得细讲一下,那就是彩虹日志。不知道大家有没有注意过,如果你没有指定日志配置文件,你的spring-boot项目启动时打印在控制台的日志格式非常好看,还带了不同颜色来区分内容。像下面这样:

    这种日志格式看着也舒服啊。怎么实现的呢?

    首先在application.properties中加入一行配置:

    spring.output.ansi.enabled=always

    然后在日志配置文件logback-spring.xml中定义格式,spring-boot内置的输出格式可以直接引入进来。

    注意控制太输出格式是${CONSOLE_LOG_PATTERN} ,而输出到文件中的格式是${FILE_LOG_PATTERN},我之前因为文件输出格式也配置了console_log_pattern结果发现文件打开里面会有很多乱码存在,因为这个问题排查了半天。

    相关文章

      网友评论

        本文标题:第一章 dubbo整合nacos搭建项目基本结构

        本文链接:https://www.haomeiwen.com/subject/xgbhbktx.html