SpringCloudAlibaba+Vue2.0搭建博客项目
本项目由本人原创,仅供学习交流,由于本人是一个JAVA后端工程师,所以前端写的很菜,大佬勿喷。
- 项目演示地址
项目演示地址注:因为项目环境较大,本人资金有限,自己的服务器只能跑起来一部分服务,所以借用了盆友的服务器,如果访问不到,那么就是我盆友给我停了,各位大佬可以自己搭建环境跑一下
- 首页展示及粒子效果展示
注:这里之所以要单独展示是因为上线后,因为环境原因,这个粒子效果没有了,我懒得调了,所以截个图
首页粒子效果展示视频
- 功能展示
功能展示
- 项目实现的功能
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”: {
"number_of_shards": 5,
"number_of_replicas": 1
},
“mappings”: {"properties": {
"ID": {
"type": "text"
},
"title": {
"type": "text"
},
"content": {
"type": "text"
},
"createTime": {
"type": "date",
"format": "yyyy-MM-dd HH
ss.SSS||yyyy-MM-dd'T'HH
ss.SSS||yyyy-MM-dd HH
ss||epoch_millis"
},
"updateTime": {
"type": "date",
"format": "yyyy-MM-dd HH
ss.SSS||yyyy-MM-dd'T'HH
ss.SSS||yyyy-MM-dd HH
ss||epoch_millis"
},
"status": {
"type": "integer"
},
"userInformationId": {
"type": "nested",
"properties": {
"ID": {
"type": "text"
},
"avatarLink": {
"type": "text"
},
"nickName": {
"type": "text"
}
}
}
}
}
}Mysql脚本
/*
Navicat Premium Data TransferSource Server Type : MySQL
Source Server Version : 50739
Source Schema : personal_blog_systemTarget Server Type : MySQL
Target Server Version : 50739
File Encoding : 65001Date: 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 TABLEt_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 TABLEt_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,
INDEXsender_id_index
(sender_id
) USING BTREE,
INDEXrecipient_id_index
(recipient_id
) USING BTREE,
INDEXtype_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 TABLEt_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 INDEXuser_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 TABLEt_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 TABLEt_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 TABLEt_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 INDEXuser_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 TABLEt_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 TABLEundo_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 INDEXux_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:container_name: user-management-services
image: user-management-services-1.0.jar:1.0
ports:
- "9001:9001"
networks:
- micr-net
restart: always
article-management-services:
image: article-management-services-1.0.jar:1.0
container_name: article-management-services
ports:
- "9002:9002"
networks:
- micr-net
restart: always
chat-management-services:
image: chat-management-services-1.0.jar:1.0
container_name: chat-management-services
ports:
- "9003:9003"
networks:
- micr-net
restart: always
message-board-services:
container_name: message-board-services
image: message-board-services-1.0.jar:1.0
ports:
- "9004:9004"
networks:
- micr-net
restart: always
gateway-service:
container_name: gateway-service
image: gateway-service-1.0.jar:1.0
ports:
- "9005:9005"
networks:
- micr-net
depends_on:
- user-management-services
- article-management-services
- chat-management-services
- message-board-services
restart: always
networks: #创建网络
micr-net:
还没有评论,来说两句吧...