【Java项目】Re:从零开始的<忙鱼>搭建[项目已搁置]

文章介绍

是时候写一个自己的项目了, 本篇文章记录项目忙鱼-一条不如闲鱼的鱼的练手开发过程
知识点以

这种形式给出

对于美工和效果, 考虑的比较少, 有时间会做进一步的美化, 以后端开发为主
引出思考与学习的我会粘贴相应链接

正文

系统背景

开发机操作系统:

Linux 3andman 5.18.18-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Aug 17 16:02:04 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

服务器:
腾讯云轻量应用服务器, 2核2GB, 部署mySQL

Linux VM-8-7-centos 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

华为云 云耀云服务器, 4核8GB, 部署其他组件

Linux VM-8-7-centos 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

准备仓库

仓库与文件维护

首先, 为项目建立一个Gitee仓库
BusyFish忙鱼

建立gitee仓库
检查.gitignore

设计

设计原型

设计原型参考【智慧社区系列产品】智慧社区二手交易平台高保真原型模板

Axure的下载与安装
Chrome的Axure插件安装
Axure导出Html

产品信息
  • Title与Slogan
    忙鱼 - 一条不如闲鱼的鱼
  • icon
    logo

自己画了一个
icon大小规范与设计: 百度文章
Linux下的画图工具

用户角色梳理
  • 客户端
角色描述操作
customer用户(仅客户端)客户端使用者发布商品, 评论商品, 购买商品, 浏览商品
联系卖家, 举报商品, 举报用户, 评价卖家, 关注用户
passenger游客(仅客户端)通过注册变成用户浏览商品
  • 管理后台
角色描述操作
admin管理员系统管理员, 可以执行所有操作所有其他操作, 设置分区信息,
boss老板系统老板, 管理所有员工发布活动, 管理员工
manager雇员管理员比雇员高级, 管理雇员, 可以分派任务管理雇员, 设置审核指标
employee公司雇员/审核员公司的普通员工审核条目, 处理举报消息
功能模块梳理

注: <表示为待定功能>

客户端
  • 主页面
功能说明角色差异完成情况
商品广场显示当前城市的二手商品所有人
动态显示关注的人的动态如果是游客, 引导登陆
关注商品关注商品动态如果是游客, 引导登陆
  • 搜索界面
功能说明角色差异完成情况
热搜榜近期热搜内容, 根据人气值排序所有人
历史搜索历史搜索内容仅限用户
搜索词联想搜索栏自动联想所有人
  • 用户相关
功能说明角色差异完成情况
地理位置模块用户的简单定位, 方便筛选同城商品, 也用到用户的收货地址选择上所有人
关注用户一个用户关注另一个用户如果是游客, 引导登陆
浏览历史记录用户的浏览记录, 需要带有商品状态所有人
时间显示聊天中, 评论中, 商品发布时, 需要显示时间所有人
用户评价买卖双方互相评分, 分别计算分数仅限交易后双方
<消息聊天>买家卖家能聊天暂时不考虑
<附近的人>通过物理定位搜索附近的用户列表仅限用户
累计收入用户通过出售二手物品得到的收入仅限用户
  • 商品路线
功能说明角色差异完成情况
商品发布发布一个商品仅限用户
商品收藏收藏一个商品仅限用户
下单用户下单操作仅限用户
商品搜索搜索商品所有人
商品评论评价一个商品仅限用户
历史售出商品成交后保留一部分商品信息做展示用所有人
<商品分享>分享外链到其他平台仅限用户
<求购模块>求购商品, 暂时先不考虑
支付模块完成支付仅限用户
<售后>订单售后设置
  • 公共服务
功能说明角色差异完成情况
敏感词识别与过滤过滤敏感词为****, 当文章含有敏感词时不允许发布所有
管理后台
功能说明角色差异完成情况
热搜榜近期热搜内容, 根据人气值排序所有人
历史搜索历史搜索内容仅限用户
搜索词联想搜索栏自动联想所有人

技术选型

下划线表示选用

功能选型说明相关文档
项目管理工具Maven:3.8.1管理项目依赖Maven官网
数据库访问与处理MyBatisPlus简化单表CRUD操作
用内置分页插件完成分页查询
<开发:>开启性能分析插件, 优化SQL
MyBatisPlus官网
开发框架SpringBootSpringBoot在SpringIoC与AOP的基础之上引入了约定大于配置的思想, 通过起步依赖与自动配置简化了Spring的使用
日志记录Log4jLog4j在线文档
Logback生成程序日志
Logback与Log4j同源, 而且功能性能更强, 选用Logback
Logback/Gitee文档
第三方登录JustAuthJustAuth是一个开箱即用的第三方登录开源组件包, 可以很方便地实现多平台的账号接入JustAuth官网
OAuth2.0OAuth是目前被广泛使用的开放网络协议, 可以用来从第三方获取用户信息, 进行登录
登录验证JWT使用带过期时间的JWT完成
异地登录提醒
退出登录
用户身份确认
静态资源部署NginxNginx是俄罗斯开发的优秀的轻量级HTTP与反向代理Web服务器
主要使用了静态资源部署的功能
服务注册与发现/分布式配置NacosNacos是阿里开源的微服务引擎, 集成在SpringCloudAlibaba中, 可以很方便地管理数据中心的所有服务以及元数据nacos官网
EurekaEureka是网飞的SpringCloud项目, 同样完成的是服务发现功能, 但是没有配置中心
数据库MySQL5.7免费稳定的开源数据库
计数器
数据缓存
用户消息时间线
热点排行榜
消息队列
RedisRedis是高性能键值对内存数据库, 有很好的分布式事物支持, 可以保证数据安全
搜索功能ElasticSearch使用更易用的搜索引擎ElasticSearch完成搜索操作
部分页面静态化FreeMarkerFreeMarker是一个模版引擎, 可以加快页面的响应速度, 适用于大规模但变化不频繁的数据.
如搜索界面的展示
分布式事务处理SeataSeata是SpringCloudAlibaba项目中的一部分, 主要用于解决分布式服务中的事务一致性问题
熔断与降级Sentinel服务熔断与降级
文件托管minIO使用minIO完成用户商品的图片托管
服务器组件部署docker:20.10

数据库

数据库表设计

@我自己-【SQL】初步学习如何建立高效数据库表

运维

docker的安装

使用docker-compose+docker完成服务器上各种组件的部署

#安装部分依赖
dnf install -y dnf-utils device-mapper-persistent-data lvm2

#添加源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#docker安装
sudo yum install -y docker-ce

#开机自启动docker
systemctl enable docker

#设置docker国内镜像源
/下:
mkdir /etc/docker

#新增文件
vim /etc/docker/daemon.jsom
#插入内容
{
	"registry-mirrors": ["https://7oc12mqc.mirror.aliyuncs.com"]
}

#重启服务
systemctl restart docker

docker-compose的安装

@菜鸟教程-docker-compose入门
这里使用docker-compose只是文件化了docker的配置语句

#国内源
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#赋予权限
chmod +x /usr/local/bin/docker-compose 

#验证结果
docker-compose -version

mysql的安装

这部分的docker-compose.yml

version: '3'
services:
  mysql:
    container_name: mysql
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: "我的密码"
    image: "mysql:5.7"
    restart: always
    volumes:
      - "./conf/my.cnf:/etc/my.cnf"
      - "./data:/var/lib/mysql"
    ports:
      - "3306:3306"

redis的安装

这部分的docker-compose.yml

version: '3'
services:
 redis:
  container_name: redis
  image: redis:5.0.7
  restart: always
  ports:
    - 6379:6379
  volumes:
    - ./conf/redis.conf:/etc/redis/redis.conf:rw
    - ./data:/data:rw
  command:
    redis-server /etc/redis/redis.conf --appendonly yes
  environment:
    - TZ=Asia/Shanghai

minio的安装

这部分的docker-compose.yml

version: '3'
services:
  minio:
    image: minio/minio:RELEASE.2021-04-18T19-26-29Z
    container_name: myminio
    ports:
      - 9000:9000
    volumes:
      - /var/minio/data:/data
      - /var/minio/config:/root/.minio
    environment:
      MINIO_ACCESS_KEY: "minio"
      MINIO_SECRET_KEY: "minio123"
    command: server /data
    restart: always

ElasticSearch+ik分词的安装

docker有打包好的ik分词+es包, 但是这里还是分开安装

这部分的docker-compose.yml

version: '3'
services:
  elasticsearch:
    image: elasticsearch:7.4.0
    container_name: elasticsearch
    restart: always
    environment:
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "discovery.type=single-node"
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /busyFish/es/plugins:/usr/share/elasticsearch/plugins
    ports:
      - 9200:9200
      - 9300:9300
  kibana:
    image: kibana:7.4.0
    container_name: kibana
    environment:
      - SERVER_NAME=kibana
      - ELASTICSEARCH_URL=http://192.168.200.130:9200
      - XPACK_MONITORING_ENABLED=true
    ports:
      - 5601:5601
    depends_on:
      - elasticsearch
    external_links:
      - elasticsearch

安装文件上传工具lrzsz

dnf install lrzsz -y
#在es/plugins/上传ik分词器/解压
rz
mkdir analysis-ik
tar -xvf ik-7.4.0 ./analysis-ik/
#重启es
docker restart es

nacos的安装

cd /busyFish/nacos/init.d/
touch custom.properties

这部分的docker-compose.yml

version: "2"
services:
  nacos:
    image: nacos/nacos-server:1.4.1
    container_name: nacos
    environment:
    - MODE=standalone
    - JVM_XMS=256m
    - JVM_XMX=256m
    - JVM_XMN=256m
    volumes:
    - /busyFish/nacos/logs:/home/nacos/logs
    - /busyFish/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
    - "8848:8848"
    restart: always
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3Andman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值