接下来就正式开始写这个项目了,前面的东西都准备得差不多了。首先我们创建一个maven项目的父工程,主要是为了以后整体打包用。这里的common,api都是maven项目,下面的微服务才是springboot项目

 

一个web项目有多个微服务,以商品管理系统为例

day01-环境搭建

由于这里的微服务都不是web服务,所以不需要选web板块,如果是web服务了就变成 springCloud了

day01-环境搭建

直接next,什么都不选

除了最后以后gmall-admin-web这个是web项目,用来与前段对接的,前端的所有请求都来到这里,再通过这个module调用微服务,所以这里选上web,项目创建完成后就是下面的样子:

day01-环境搭建

直接通过idea将项目上传到github上的步骤:https://blog.csdn.net/weixin_44146379/article/details/96706033

 

然后使用****通过mysql直接在项目中生成对应的代码

创建一个工程obs(逆向生成完后会删除该工程),pom依赖如下:

<dependencies>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.28</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>

    <!--防止lombok报错-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.8.0</version>
    </dependency>
</dependencies>

api 中要引入dubbo依赖才能让消费者远程调用提供者

<dependency>

<groupId>com.alibaba.boot</groupId>

<artifactId>dubbo-spring-boot-starter</artifactId>

<version>0.2.0</version>

</dependency>

 

api中放接口和java bean

****生成的项目,先将mapper复制过来,然后再自己建一个service包,在把impl给复制进来,不然可能会出错

 

要让一个微服务能使用mybatis,必须声明扫描的mapper包,如下:

day01-环境搭建

要能够远程通信,则要@EnableDubbo

配置文件:

day01-环境搭建

 

如果用了逆向生成,并且使用mybatis-plus,就不用自己去写增删改查代码了,和Springdate jpa差不多。如果使用了dubbo,那么自动注入就不要用@Service注解了,用@Component注解,@Service拿给dubbo来远程调用使用

 

以上能够做到的只是在一个数据库中查找,接下来通过代码实现主从复制达到读写分离

引入sharding-jdbc就行,以前要实现这个目的需要用mycat,但是mycat是个重量级的中间件,而sharding-jdbc是轻量级的。

<dependency>
    <groupId>io.shardingjdbc</groupId>
    <artifactId>sharding-jdbc-core</artifactId>
    <version>2.0.3</version>
</dependency>

然后我们将对一个module的配置都专门放入一个config包里(能用java代码实现的才放)

day01-环境搭建 

day01-环境搭建 

 

 

日志对于一个项目来说是特重要的,当一个项目上线时,就不可能再通过system.out来输出信息了,而应该通过日志,把输出信息都输入到日志中,然后通过日志来排查,这里使用elk日志分析

elk:elasticsearch,logstash,Kibana

 

elasticsearch用于存储和检索数据,logstash就是收集记录日志的,Kibana是elasticsearch的可视化界面,关系如下:

day01-环境搭建

 

 这写又是要在docker里面安装镜像,我就新开一篇文章专门说elasticsearch了

相关文章:

  • 2021-10-11
  • 2021-11-12
  • 2022-12-23
  • 2021-08-01
  • 2022-12-23
  • 2022-12-23
  • 2021-09-27
  • 2022-01-08
猜你喜欢
  • 2021-12-01
  • 2021-07-31
  • 2021-06-06
  • 2021-07-06
  • 2021-06-25
  • 2021-10-08
  • 2021-04-14
相关资源
相似解决方案