xlcs/README.md

7.4 KiB
Raw Blame History

小鹿超市项目

后端技术栈

核心技术
SpringBoot简化新Spring应用的初始搭建以及开发过程
SpringCloud基于Spring Boot实现的云原生应用开发工具SpringCloud使用的技术Spring Cloud Gateway、Spring Cloud OpenFeign、Spring Cloud Alibaba Nacos等
MyBatis-Plus持久层框架
Redis缓存数据库
Redisson基于redis的Java驻内存数据网格实现分布式锁
RabbitMQ消息中间件
ElasticSearch + Kibana: 全文检索服务器 +可视化数据监控
ThreadPoolExecutor线程池来实现异步操作提高效率
OSS/MinIO文件存储服务
Knife4jSwaggerApi接口文档工具
Nginx负载均衡
MySQL关系型数据库
微信支付
微信小程序
Docker容器技术
DockerFile管理Docker镜像命令文本
SkyWalking链路追踪、日志、监控框架

前端技术栈

核心技术
UinApp
vue-admin-template
ElementUI
Axios
Node.js
Npm

开发工具

开发工具 版本
Intellil IDEA Ultimate 2023.3.2
DataGrip 2023.3.2
WebStorm 2023.3.2
HBuilderx 3.8.12
Google Chrome 120.0.6099.216
Another Redis Desktop Manager 1.6
Apifox 2.3.19
Parallels Desktop 18.1.1
Termius 8.4.0
微信开发者工具 1.06.2306020

操作系统

开发工具 版本
Mac OS Ventura 13.6.3
Linux CentOS Stream 9
Linux CentOS 7.9

项目环境部署

Mysql 数据库

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

Redis 缓存

docker run -itd --name redis -p 6379:6379 redis

RabbitMQ 消息队列

docker run -d --restart=always -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:3.8-management

docker exec -it rabbit /bin/bash
#安装插件
rabbitmq-plugins enable rabbitmq_management

Nacos 注册中心

docker run -d --name nacos-server -p 8848:8848 -p 9848:9848 \
-e MODE=standalone \
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-v /logs/nacos:/home/nacos/logs \
nacos/nacos-server:v2.2.3 

ES + Kibana 分词器

docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-d elasticsearch:7.8.0

docker exec -it elasticsearch /bin/bash

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip

docker restart elasticsearch

docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.8.0

GrayLog 日志框架 (已弃用,日志服务整合到 SkyWalking)

#部署Elasticsearch
docker run -d \
    --name elasticsearch \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    -v es-plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.17.5

#部署MongoDB使用之前部署的服务即可
docker run -d \
--name mongodb \
-p 27017:27017 \
--restart=always \
-v mongodb:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=xlcs \
-e MONGO_INITDB_ROOT_PASSWORD=123321 \
mongo:4.4

#部署
docker run \
--name graylog \
-p 9000:9000 \
-p 12201:12201/udp \
-e GRAYLOG_HTTP_EXTERNAL_URI=http://<IP>:9000/ \
-e GRAYLOG_ELASTICSEARCH_HOSTS=http://<IP>:9200/ \
-e GRAYLOG_ROOT_TIMEZONE="Asia/Shanghai"  \
-e GRAYLOG_WEB_ENDPOINT_URI="http://<IP>:9000/:9000/api" \
-e GRAYLOG_PASSWORD_SECRET="somepasswordpepper" \
-e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
-e GRAYLOG_MONGODB_URI=mongodb://xlcs:123321@<IP>:27017/admin \
-d \
graylog/graylog:4.3

SkyWalking 链路追踪、日志、监控框架

version: "3"
services:
    elasticsearch:
        image: elasticsearch:8.4.2
        container_name: elasticsearchsky
        ports:
        - "9200:9200"
        healthcheck:
            test: ["CMD-SHELL", "curl -sf http://localhost:9200/_cluster/health || exit 1"] #⼼跳检测,成功之后不再执⾏后⾯的退出
            interval: 60s #⼼跳检测间隔周期
            timeout: 10s
            retries: 3
            start_period: 60s #⾸次检测延迟时间
        environment:
            discovery.type: single-node #单节点模式
            ingest.geoip.downloader.enabled: "false"
            bootstrap.memory_lock: "true"
            ES_JAVA_OPTS: "-Xms512m -Xmx512m"
            TZ: "Asia/Shanghai"
            xpack.security.enabled: "false" #单机模式
        ulimits:
            memlock:
                soft: -1
                hard: -1
    skywalking-oap:
        image: apache/skywalking-oap-server:9.4.0
        container_name: skywalking-oap
        depends_on:
            elasticsearch:
                condition: service_healthy
        links:
            - elasticsearch
        environment:
            SW_HEALTH_CHECKER: default
            SW_STORAGE: elasticsearch
            SW_STORAGE_ES_CLUSTER_NODES: 124.70.87.134:9200
            JAVA_OPTS: "-Xms2048m -Xmx2048m"
            TZ: Asia/Shanghai
            SW_TELEMETRY: prometheus
        healthcheck:
            test: ["CMD-SHELL", "/skywalking/bin/swctl ch"]
            interval: 30s
            timeout: 10s
            retries: 3
            start_period: 10s
        restart: on-failure
        ports:
        - "11800:11800"
        - "12800:12800"
    skywalking-ui:
        image: apache/skywalking-ui:9.4.0
        container_name: skywalking-ui
        depends_on:
            skywalking-oap:
                condition: service_healthy
        links:
        - skywalking-oap
        ports:
        - "8080:8080"
        environment:
            SW_OAP_ADDRESS: http://124.70.87.134:12800 
            SW_HEALTH_CHECKER: default
            TZ: Asia/Shanghai
        healthcheck:
            test: ["CMD-SHELL", "curl -sf http://localhost:8080 || exit 1"] #⼼跳检测,成功之后不再执⾏后⾯的退出
            interval: 60s #⼼跳检测间隔周期
            timeout: 10s
            retries: 3
            start_period: 60s #⾸次检测延迟时间