居于Dubbo开发的微服务项目

							**项目的初步搭建**

项目的技术选型:
SpringBoot集成Dubbo框架zookeeper做为注册中心,数据库采取Mysql数据关系型数据库,Redis,MoongoDB,Elasticsearch做为非关系型数据库
##项目机构的搭建
##一、项目的架构设计:
1、有项目版本管理和公共配置
在这里插入图片描述
2、项目公共用到的依赖配置,公共的类,公共的工具
在这里插入图片描述
3、api模块(domain,config,mapper,service接口,application-jdbc。properties,generatorConfig.xml)
在这里插入图片描述
4、server模块(service实现类、SpringBoot服务器启动器,dubbo的applocation.properties的配置文件)
在这里插入图片描述
二、实现的方法步骤
1、项目的版本统一控制,(parent)模块的设计
统一的配置文件进行管理配置,处于父级项目。父级项目只统一的管理依赖文件,不写业务逻辑代码。

 <packaging>pom</packaging>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/>
    </parent>
    <!--依赖版本管理-->
    <dependencyManagement>
    <dependencies>
    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>0.2.0</version>
    </dependency>
        <!--子项目版本控制-->
        <dependency>
            <groupId>com.javah5.luowowo.parent</groupId>
            <artifactId>trip-common</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.javah5.luowowo.parent</groupId>
            <artifactId>trip-member-api</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>
    </dependencyManagement>
    <!--公共依赖-->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
            <!--代码生成器依赖-->
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>false</overwrite>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.21</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
        <!--告诉idea去src/main/java加载一些配置文件, 这里仅仅用于将mybatisxml文件方指定mapper接口包中, idea也可以加载-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>
    </build>

二、进行公共模块(trip-common)的设计
直接生成common的model;
此模块用做存放公共的类和工具;

三、微服务的搭建
分为两个模块:一个是api模块,一个为service模块
1、trip-member-api的设计
结构设计
在这里插入图片描述
config的设计
MemberConfig

@Configuration
@MapperScan(basePackages = "com.javah5.luowowo.member.mapper")
@PropertySource("classpath:application-jdbc.properties")
public class MemberConfig {
}

aplication-jdbc.properties的设计

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///luowowoqj?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

pom.xml配置文件

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.9</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!--依赖公共模块的api-->
        <dependency>
            <groupId>com.javah5.luowowo.parent</groupId>
            <artifactId>trip-common</artifactId>
        </dependency>
    </dependencies>

2、trip-service的设计
结构
在这里插入图片描述
applocation.properties的配置设计

#服务名
spring.application.name=member-server-provide
dubbo.application.name=member-server-provide

#注册中心
dubbo.registry.address=zookeeper://127.0.0.1:2181

#dubbo的RPC协议
dubbo.server=true
dubbo.protocol.name=dubbo
#dubbo的RPC端口
dubbo.protocol.port=20880

#是否启动检查
dubbo.consumer.check=false

logging.level.com.javah5.luowowo=debug

#dubbo超时时间
dubbo.consumer.timeout=20000

trip-member-server的pom.xml的设计

<dependencies>
    <!--dubbo的依赖-->
    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
    </dependency>
    <!--依赖同一个服务的api-->
    <dependency>
        <groupId>com.javah5.luowowo.parent</groupId>
        <artifactId>trip-member-api</artifactId>
    </dependency>
</dependencies>

MemberServce启动类的设计

@SpringBootApplication
@Import(MemberConfig.class)//
@EnableDubbo
public class MemberService {
    public static void main(String[] args) {
        SpringApplication.run(MemberService.class, args);
    }
}

结语:这是第一步的项目结构设计和搭建member的服务,测试启动,证明服务搭建成功。
谢谢 第一次尝试写一下项目的教程,还请多多包涵和指正。存在很多的不足和内容的不完善。我会加油进步和改正的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值