Skip to content

Bobchasm/elm-microservices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

446 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

饿了吧微服务版

原有“饿了吧”项目单体结构微服务化,是原仓库针对“架构驱动的软件开发实践”的分支,主仓库位于 https://gitee.com/dai-mingjing/frontend-comprehension.git


微服务化后的说明

1 目录说明

  • /cloud 几乎可以直接用于云部署的配置文件和镜像包,具体说明见下面的部署

  • /elm_bk 原单体项目后端

  • /elm_cloud 微服务后的后端,每个服务是一个模块,还存在公共模块

  • /elmclient 适用于微服务项目的前端,适用于单体的前端请看原仓库

  • /documents一些文档,还有一些更为详细的说明在 description.md,带*标记的内容只是特定时期的记录

2 技术栈

新添技术栈

  • spring cloud

  • gateway

  • nacos

  • openfeign

  • sentinel

  • 服务治理一系列

使用的服务/中间件

  • redis

  • mysql

  • rabbitmq

  • nacos

  • sentinel

  • jagger (忘记怎么拼了。。)

  • nginx

  • 。。。

3 部署指南

主要描述后端不一样的地方,其他细节参照单体时的部署

所有配置文件存放在/cloud/application/下,其中/common下的文件用于不带nacos配置管理的镜像使用,/shared下的文件用于带配置管理的镜像使用(镜像tar包名带2);/nacos下的配置文件为nacos配置中心的文件

所有镜像存放在/cloud/images/下,目录名意义同配置文件目录

每个服务模块目录下的Dockerfile为带配置管理的镜像构建配置,Dockerfile-com为不带配置管理的

步骤

定义各个服务的前缀为order、food等,路由为gateway

1.上传镜像至服务器 (带/不带配置管理)

若自己构建镜像,则cd的对应服务模块的目录下,一般不带配置管理的镜像版本是1.0.0,带配置管理的镜像版本是2.0.0 (当然看你构建的实际情况)

# 构建镜像
docker build -t elm-micro-<服务前缀> .
# 打包镜像
docker save elm-micro-<服务前缀> -o elm-micro-<服务前缀>.tar

2.加载镜像

docker load -i <镜像包tar在服务器上的路径>

3.创建并运行容器

  • 一般创建一个专门存放这个项目的目录/elm-micro

  • 在这个目录下创建各个服务专属目录如 /order-service等,路由为/gateway

  • 在对应目录上传配置文件以及jar包,带配置管理的需要上传相应的application.yml以及bootstrap,如果是直接使用的/cloud/application中的文件需要去掉文件名的服务前缀;然后jar包需要改名为 elm-<服务前缀>-app.jar

  • 然后对于不支持共享配置的application.yml中会有一些参数client-ip需要改成所部署的服务器ip,对于共享配置的application.yml则是elm.nacos.server需要改

  • 创建并运行容器

    如notification-service,容器名一般为 elm-<服务前缀>-app,注意有些服务的配置(可看配置文件)如果存在sentinel等服务治理相关的可能需要映射更多的端口,还是注意要与配置文件一致

    # 带配置管理
    docker run -d --name elm-notification-app \
    -p 8884:8884 \
    -v $(pwd)/elm-notification-app.jar:/elm-notification-app.jar \
    -v $(pwd)/application.yml:/application.yml \
    -v $(pwd)/bootstrap.yml:/bootstrap.yml \
    elm-micro-notification:2.0.0
    # 不带配置管理
    docker run -d --name elm-notification-app \
    -p 8884:8884 \
    -v $(pwd)/elm-notification-app.jar:/elm-notification-app.jar \
    -v $(pwd)/application.yml:/application.yml \
    elm-micro-notification:1.0.0

还有一些命令,详细的自己查:

# 重启服务
docker restart <容器名>
# 查看容器日志
docker logs -f <容器名> --tail 200

4 一些说明

4.1 提供一些已部署服务信息

一些可访问路径 (路径后跟的是必要的账户密码)

项目访问:http://bobchasm.cn/

nacos:http://bobchasm:8848/nacos nacos 123456

rabbit:http://bobchasm.cn:15672 rabbit rabbit

接口文档:域名+各个服务的端口 (配置文件中有写)

一些测试账户可以直接登录

普通用户:

  • username: bob_user
  • password: Bobuser123

商家用户:

  • username: bob_business
  • password: Bobbusiness123

管理员:

  • username: bob_admin
  • password: Bobadmin123

4.2 联系方式

如有问题或建议,请通过以下方式联系:


原单体架构说明

1 项目结构

后端代码存放目录 /elm_bk

2 项目部署

若自己部署请注意:

以下部署说明主要针对win系统,Linux系统部署方法命令行操作类似

可参考 从0开始在linux服务器上部署SpringBoot和Vue_vue项目linux部署-CSDN博客

  1. 本项目在版本 4eeb319c5eb4eccae252fffdf04004a9eb6daf05 (积分系统开始) 后使用了redis、rabbitmq,当前设置均为服务器的配置信息,如需使用自己本地的中间件,请在本地启动相关服务并修改配置文件

2.1 后端部分

技术栈

  • SpringBoot

  • Maven

  • Mybatis

  • redis

  • rabbitmq

开发环境

JDK 17

SpringBoot 3.4.6

Mybatis 3.0.4

MySQL版本信息:

 Source Server         : localhost
 Source Server Type    : MySQL
 Source Server Version : 80040 (8.0.40)
 Source Host           : localhost:3306
 Source Schema         : elm_v2

 Target Server Type    : MySQL
 Target Server Version : 80040 (8.0.40)
 File Encoding         : 65001
配置
  • 配后端置文件

    /elm_bk/src/main/resources/application.yml
    

    可修改配置:数据库、redis、rabbitmq,若您想尝试使用这些本地服务

  • 数据库

    使用本地数据库服务时,请新建一个名为 elm_v2 的数据库,并运行以下路径中的建表语句:

    /elm_bk/sql/elm_v2.sql
    

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors