SpringCloudAlibaba+Vue2.0搭建博客项目

分手后的思念是犯贱 2024-04-05 06:43 215阅读 0赞

本项目由本人原创,仅供学习交流,由于本人是一个JAVA后端工程师,所以前端写的很菜,大佬勿喷。

  • 项目演示地址
    项目演示地址
    注:因为项目环境较大,本人资金有限,自己的服务器只能跑起来一部分服务,所以借用了盆友的服务器,如果访问不到,那么就是我盆友给我停了,各位大佬可以自己搭建环境跑一下
  • 首页展示及粒子效果展示
    注:这里之所以要单独展示是因为上线后,因为环境原因,这个粒子效果没有了,我懒得调了,所以截个图
    2191b59a06b54a77920cfa127751889d.png
  1. 首页粒子效果展示视频
  • 功能展示

功能展示

  • 项目实现的功能

1.博文功能:编写博客,修改博客,ES高亮搜索,个人博客主页,集成了Elasticsearch集群
2.聊天:消息的发送,接收,私聊,群聊,创建群聊,添加好友,好友验证,仿微信PC端实时刷新消息列表,集成了WebScoket
3.留言:发送留言,查看留言列表,集成RabbitMQ
4.用户管理:登录,注册

  • 架构

在这里插入图片描述

  • 环境要求
    1.本项目环境全部基于Docker
    2.服务器内存必须大于4核8G,因为本人的4核G就只能够搭建环境无法部署项目,最后使用了两台服务器
    注:也可以多机部署,或者将集群配置降低为单机版
  • 框架

前端:
Vue 2.0
HTML
CSS
ElementUI

后端:

  • SpringCloud Alibaba 2.2.6.RELEASE
  • Nacos 2.0.3集群3台主机
  • Sentinel 1.81
  • Seata 1.3.0
  • SpringCloud Hoxton.SR12
  • OpenFeign 2.2.9RELEASE
  • Gateway 2.2.9RELEASE
  • SpringBoot 2.3.12.RELEASE
  • MySQL 5.7
  • Mybatis Plus 3.4.3.4
  • Redis 3.2.1
  • Nginx 1.21.1
  • RabbitMQ 3.8.12
  • Elasticsearch 7.8.0 集群3台主机
  • WebSocket 2.4.13
  • JWT
  • JDK 1.8
  • Docker
  • 环境搭建及框架学习
    Mybatis-plus初识
    SpringCloud
    SpringCloudAlibaba
    Vue
    Docker入门
    Docker下安装mysql超详细步骤
    Docker下安装Redis超详细步骤
    Docker中部署SpringBoot项目
    docker中搭建Nacos2.0.3集群并使用mysql存储数据
    IDE搭建微服务项目
    docker中搭建sentinel-1.8.1并将sentinel上配置的规则持久化到Nacos
    Elasticsearch入门
    Spring Data Elasticsearch集成SpringBoot 2.3.12.RELEASE
    docker中使用docker-compose搭建Elasticsearch 7.8.0集群及安装IK分词器
    ElasticSearch7.8.0+SpringBoot 2.3.12.RELEASE实现高亮搜索+排序+分页
    Vue或html中使用L2Dwidget实现看板娘互动,对话框,语音,及Vue销毁看板娘
    RabbitMQ入门
    SpringBoot 2.3.12.RELEASE整合RabittMQ 3.8.12
    Docker中搭建Seata1.3.0并整合SpringBoot 2.3.12.RELEASE+Nacos2.0.3
    SpringCloud 项目中实现多模块共享配置类
    SpringCloudAlibaba2.2.6.RELEASE集成Gateway并实现JWT鉴权
    Docker下安装Nginx并部署Vue项目及接口
  • 服务调用关系
    在这里插入图片描述
  • 前端项目地址
    blog-system
  • 后端项目地址
    personal-blog-system
  • Nacos配置文件
    在这里插入图片描述
    配置下载链接
  • ES索引脚本

    {

    “settings”: {

    1. "number_of_shards": 5,
    2. "number_of_replicas": 1

    },
    “mappings”: {

    1. "properties": {
    2. "ID": {
    3. "type": "text"
    4. },
    5. "title": {
    6. "type": "text"
    7. },
    8. "content": {
    9. "type": "text"
    10. },
    11. "createTime": {
    12. "type": "date",
    13. "format": "yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd HH:mm:ss||epoch_millis"
    14. },
    15. "updateTime": {
    16. "type": "date",
    17. "format": "yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd HH:mm:ss||epoch_millis"
    18. },
    19. "status": {
    20. "type": "integer"
    21. },
    22. "userInformationId": {
    23. "type": "nested",
    24. "properties": {
    25. "ID": {
    26. "type": "text"
    27. },
    28. "avatarLink": {
    29. "type": "text"
    30. },
    31. "nickName": {
    32. "type": "text"
    33. }
    34. }
    35. }
    36. }

    }
    }

  • Mysql脚本

    /*
    Navicat Premium Data Transfer

    Source Server Type : MySQL
    Source Server Version : 50739
    Source Schema : personal_blog_system

    Target Server Type : MySQL
    Target Server Version : 50739
    File Encoding : 65001

    Date: 13/09/2022 09:35:30
    */

    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;


    — Table structure for t_article_details


    DROP TABLE IF EXISTS t_article_details;
    CREATE TABLE t_article_details (
    ID varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    title varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘文章标题’,
    content longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘文章内容’,
    create_time datetime(0) NOT NULL COMMENT ‘创建时间’,
    update_time datetime(0) NOT NULL COMMENT ‘更新时间’,
    status int(1) NOT NULL DEFAULT 0 COMMENT ‘文章状态;0-草稿,1-已发布’,
    user_information_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘作者ID;关联用户ID’,
    PRIMARY KEY (ID) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


    — Table structure for t_chat_record


    DROP TABLE IF EXISTS t_chat_record;
    CREATE TABLE t_chat_record (
    ID varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    sender_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘发送者的用户ID’,
    recipient_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘接收者的用户ID’,
    message_content text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘消息内容’,
    send_time datetime(0) NOT NULL COMMENT ‘发送时间’,
    read_status int(1) NOT NULL COMMENT ‘读取状态;0-未读,1-已读’,
    type int(1) NOT NULL COMMENT ‘消息类型;0-私聊,1-群聊’,
    is_initialization_content int(1) NOT NULL DEFAULT 0 COMMENT ‘是否为初始化内容;0-否,1-是’,
    PRIMARY KEY (ID) USING BTREE,
    INDEX sender_id_index(sender_id) USING BTREE,
    INDEX recipient_id_index(recipient_id) USING BTREE,
    INDEX type_index(type) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


    — Table structure for t_friends_relationship


    DROP TABLE IF EXISTS t_friends_relationship;
    CREATE TABLE t_friends_relationship (
    ID varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    user_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘用户ID,关联用户ID’,
    friends_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘好友ID,关联用户ID’,
    apply_whether_adopt int(1) NOT NULL COMMENT ‘是否通过了好友申请;0-否,1-是’,
    add_time datetime(0) NOT NULL COMMENT ‘添加好友时间’,
    PRIMARY KEY (ID) USING BTREE,
    UNIQUE INDEX user_id(user_id, friends_id) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


    — Table structure for t_group_info


    DROP TABLE IF EXISTS t_group_info;
    CREATE TABLE t_group_info (
    ID varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    group_name varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘群聊名称’,
    group_number varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘群号’,
    group_avatar_img text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘群头像链接’,
    create_user_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘创建用户ID’,
    create_time datetime(0) NOT NULL COMMENT ‘创建时间’,
    PRIMARY KEY (ID) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


    — Table structure for t_leaving_a_message


    DROP TABLE IF EXISTS t_leaving_a_message;
    CREATE TABLE t_leaving_a_message (
    ID varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    commenter_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘留言者ID’,
    recipient_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘接收者ID’,
    read_status int(1) NOT NULL DEFAULT 0 COMMENT ‘读取状态;0-未读,1-已读’,
    content text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT ‘留言内容’,
    create_time datetime(0) NOT NULL COMMENT ‘创建时间’,
    type int(1) NOT NULL COMMENT ‘留言类型;0-系统通知,1-私信’,
    is_operation int(1) NOT NULL COMMENT ‘是否需要操作;0-否,1-是,2-已操作’,
    PRIMARY KEY (ID) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


    — Table structure for t_user_group_relationship


    DROP TABLE IF EXISTS t_user_group_relationship;
    CREATE TABLE t_user_group_relationship (
    ID varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    user_information_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘关联用户ID’,
    group_info_id varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘关联群聊ID’,
    unread_quantity int(255) NOT NULL DEFAULT 0 COMMENT ‘未读消息数量’,
    join_time datetime(0) NOT NULL COMMENT ‘加入时间’,
    PRIMARY KEY (ID) USING BTREE,
    UNIQUE INDEX user_information_id(user_information_id, group_info_id) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


    — Table structure for t_user_information


    DROP TABLE IF EXISTS t_user_information;
    CREATE TABLE t_user_information (
    ID varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    avatar_link text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘头像地址’,
    nick_name varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘用户昵称’,
    password varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘密码’,
    phone_number varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘手机号码’,
    create_time datetime(0) NOT NULL COMMENT ‘创建时间’,
    PRIMARY KEY (ID) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

    INSERT INTO t_user_information(ID, avatar_link, nick_name, password, phone_number, create_time) VALUES (‘1567812146469543930’, ‘https://img2.baidu.com/it/u=2548411639,1403134542&fm=253&fmt=auto&app=138&f=JPEG?w=400&h=400‘, ‘我们注定相遇’, ‘admin’, ‘32312312’, ‘2022-08-26 10:26:42’);


    — Table structure for undo_log


    DROP TABLE IF EXISTS undo_log;
    CREATE TABLE undo_log (
    branch_id bigint(20) NOT NULL COMMENT ‘branch transaction id’,
    xid varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘global transaction id’,
    context varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘undo_log context,such as serialization’,
    rollback_info longblob NOT NULL COMMENT ‘rollback info’,
    log_status int(11) NOT NULL COMMENT ‘0:normal status,1:defense status’,
    log_created datetime(6) NOT NULL COMMENT ‘create datetime’,
    log_modified datetime(6) NOT NULL COMMENT ‘modify datetime’,
    UNIQUE INDEX ux_undo_log(xid, branch_id) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = ‘AT transaction mode undo table’ ROW_FORMAT = Dynamic;

    SET FOREIGN_KEY_CHECKS = 1;

  • 微服务JAR镜像docker-compose.yml文件

    version: “3”
    services:
    user-management-services:

    1. container_name: user-management-services
    2. image: user-management-services-1.0.jar:1.0
    3. ports:
    4. - "9001:9001"
    5. networks:
    6. - micr-net
    7. restart: always

    article-management-services:

    1. image: article-management-services-1.0.jar:1.0
    2. container_name: article-management-services
    3. ports:
    4. - "9002:9002"
    5. networks:
    6. - micr-net
    7. restart: always

    chat-management-services:

    1. image: chat-management-services-1.0.jar:1.0
    2. container_name: chat-management-services
    3. ports:
    4. - "9003:9003"
    5. networks:
    6. - micr-net
    7. restart: always

    message-board-services:

    1. container_name: message-board-services
    2. image: message-board-services-1.0.jar:1.0
    3. ports:
    4. - "9004:9004"
    5. networks:
    6. - micr-net
    7. restart: always

    gateway-service:

    1. container_name: gateway-service
    2. image: gateway-service-1.0.jar:1.0
    3. ports:
    4. - "9005:9005"
    5. networks:
    6. - micr-net
    7. depends_on:
    8. - user-management-services
    9. - article-management-services
    10. - chat-management-services
    11. - message-board-services
    12. restart: always

    networks: #创建网络
    micr-net:

发表评论

表情:
评论列表 (有 0 条评论,215人围观)

还没有评论,来说两句吧...

相关阅读

    相关 github

    说明 : 首先,你需要注册一个 github 账号,最好取一个有意义的名字,比如姓名全拼,昵称全拼,如果被占用,可以加上有意义的数字. 本文中假设用户名为  tiemaoc