008-从零搭建微服务-系统服务(一)

文章详细描述了一个微服务系统的模块划分,包括mingyue-system-api模块的DTO、Entity、Feign、Utils和VO组件,以及mingyue-system-biz模块的Controller、Mapper、Service和Impl。端口规划分为基础设施端口(9xxx)和服务端口(8xxx)。文章还提到了使用Nacos进行服务注册与配置管理,并提供了相关POM依赖和YAML配置示例。同时,文章介绍了如何初始化mingyue数据库和创建sys_user表。
摘要由CSDN通过智能技术生成

模块规划

后续服务都按下图结构创建,主要分为三块:mingyue-system 系统服务聚合模块、mingyue-system-api 系统服务公共 API 模块、mingyue-system-biz 系统服务。

mingyue-system-api

系统服务公共 API 模块

  • dto:请求入参类;
  • entity:数据库实体类;
  • feign:远程调用类;
  • utils:工具包;
  • vo:请求响应类;

mingyue-system-biz

系统服务

  • controller:接口类;

  • mapper:数据层交互类;

  • service:业务逻辑抽象类;

    • impl:业务逻辑实现类;
  • resource/mapper: xxx_mapper.xml 文件存放

端口规划

端口分为两类 8xxx9xxx

  • 基础设施端口(9xxx):

    • 认证中心:9000;
    • 网关中心:9100;
    • 任务调度中心:9200;
    • 监控中心:9300;
    • 。。。
  • 基础服务端口(8xxx):

    • 系统服务:8000;
    • 文件服务:8100;
    • 推送服务:8200;
    • 搜索服务:8300;
    • 。。。

集群端口规划

以认证中心与网关中心为例,端口分别是 90009100。如果启动集群,端口则可以如下编排:

  • 认证中心:9000、9001、9002...
  • 网关中心:9100、9101、9102...

mingyue-system-biz

Pom 依赖

 

xml

复制代码

<dependencies>  <!-- SpringCloud Alibaba Nacos -->  <dependency>    <groupId>com.alibaba.cloud</groupId>    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>  </dependency> ​  <!-- SpringCloud Alibaba Nacos Config -->  <dependency>    <groupId>com.alibaba.cloud</groupId>    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>  </dependency> ​  <!-- SpringBoot依赖 -->  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>  </dependency> </dependencies>

注册 Nacos

 

yaml

复制代码

# 端口 server:   port: 8000 ​ spring:   application:       name: @artifactId@   profiles:        # 环境配置       active: @profiles.active@   cloud:       nacos:            # nacos 服务地址           server-addr: @nacos.server@           username: @nacos.username@           password: @nacos.password@           discovery:                # 注册组               group: @nacos.discovery.group@               namespace: ${spring.profiles.active}           config:                # 配置组               group: @nacos.config.group@               namespace: ${spring.profiles.active}   config:       import:           - optional:nacos:application-common.yml           - optional:nacos:${spring.application.name}.yml

启动服务

启动服务查看 Nacos 是否注册成功

新建 mingyue 数据库

新建 mingyue 数据库,并创建 sys_user 系统用户表

 

sql

复制代码

DROP DATABASE IF EXISTS `mingyue`; ​ CREATE DATABASE `mingyue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ​ USE `mingyue`; ​ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; ​ -- ---------------------------- -- Table structure for sys_user -- ---------------------------- DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sys_user` (        `user_id` BIGINT ( 20 ) NOT NULL,        `username` VARCHAR ( 64 ) NOT NULL COMMENT '用户名',        `nickname` VARCHAR ( 64 ) NOT NULL COMMENT '用户昵称',        `sex` CHAR ( 1 ) DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)',        `password` VARCHAR ( 255 ) NOT NULL COMMENT '密码',        `phone` VARCHAR ( 32 ) DEFAULT NULL COMMENT '手机号码',        `email` VARCHAR ( 32 ) DEFAULT NULL COMMENT '用户邮箱',        `avatar` VARCHAR ( 255 ) DEFAULT NULL COMMENT '头像',        `lock_flag` CHAR ( 1 ) DEFAULT '0' COMMENT '0-正常,9-锁定',        `del_flag` CHAR ( 1 ) DEFAULT '0' COMMENT '0-正常,1-删除',        `create_time` datetime DEFAULT NULL COMMENT '创建时间',        `update_time` datetime DEFAULT NULL COMMENT '修改时间',        `create_by` VARCHAR ( 64 ) DEFAULT NULL COMMENT '创建者',        `update_by` VARCHAR ( 64 ) DEFAULT NULL COMMENT '更新人',        PRIMARY KEY ( `user_id` ),        KEY `user_idx1_username` ( `username` ) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT = '用户表'; -- ---------------------------- -- Records of sys_user -- ---------------------------- BEGIN; COMMIT; ​ ​ SET FOREIGN_KEY_CHECKS = 1;

小结

模块结构与端口规划完事儿,接下来我们开始打通系统服务与数据库之间交互。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值