GithubHelp home page GithubHelp logo

hongwenwu / beautiful-leg Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ddloveworld/beautiful-leg

0.0 1.0 0.0 42.63 MB

Beautiful-leg 项目致力于推广并普及 微服务架构**,采用全新的服务网格化系统打造炫酷多人社区博客论坛产品。

License: Apache License 2.0

Java 20.07% JavaScript 7.79% HTML 0.11% Vue 7.79% CSS 1.19% Visual Basic 61.85% PLSQL 0.12% Dockerfile 0.33% Shell 0.76%

beautiful-leg's Introduction

beautiful-leg

LOGO (还没想好 找个牛X点的图镇库吧~)

Born as a demon, so what ?

CircleCI Maven Central Codecov License

概述

beautiful-leg 采用 微服务架构2.0 **(比较流行的服务架构模型,网上类似的开发架构比较多), 服务网格 系统打造有逼格的多人商用博客社交平台。 主体架构上针对国内中顶级开发框架水准,(俺们只想做最好的)如有参加设计意向请联系任意开发者或者在issues中提出宝贵意见*_*。

  • tap: 起初前一周大家先不要忙于提交代码 我建议大家先去网上学习一下微服务开发的相关知识 不然可能会有点懵逼... 微服务并不难而是在于东西比较多
  • 只要大家有个概念就可以快速上手开发应用模块

微服务三层架构:

  • 数据访问层:Dubbo 服务提供者
  • 业务逻辑层:Spring Cloud
  • 视图展示层:MVVM Vue

开发工具

这里列出了我平常用的工具 你们有好用的软件可以追加

工具 地址
Intellij IDEA https://www.jetbrains.com/idea/download (单frontend开发可用Visual Studio)
SwitchHosts https://oldj.github.io/SwitchHosts/
FinalShell http://www.hostbuf.com/ (这玩应看着有bigger 其实有很多bug 有时候疯狂耗内存 我还是建议用xshell)
Postman https://www.getpostman.com/downloads/
SQLyog https://sqlyog.en.softonic.com/
PicPick https://picpick.app/zh/download
亿图图示 https://www.edrawsoft.cn/edrawmax/
亿图导图 https://www.edrawsoft.cn/mindmaster/

商业组件

服务 说明 地址
Aliyun SDK OSS 阿里云对象存储服务 官网

TODO:由于涉及前后端技术点比较多 有些也是起步学习 边学边用 暂时列出下面这些吧...

后端技术

技术 说明 地址
Spring Boot 新一代 JavaEE 开发标准 GitHub
Spring Cloud Alibaba 阿里巴巴基于 Spring Cloud 编程模型的微服务生态 GitHub
Spring Cloud Alibaba Dubbo 与 Spring Cloud Alibaba 生态相结合的高性能 Java RPC 框架 GitHub
Spring Cloud Alibaba RocketMQ 分布式消息系统 GitHub
Spring Security oAuth2 安全认证和授权框架 GitHub
Spring Social 第三方登录接入框架 GitHub
TkMyBatis 基于 MyBatis 二次开发的轻量级框架,用于简化 MyBatis 操作 GitHub
MyBatisGenerator Maven 插件,用于 MyBatis 相关代码生成 官网
MybatisCodeHelper Intellij IDEA 插件,用于 MyBatis 相关代码生成 官网
PageHelper MyBatis 分页插件 GitHub
Swagger API 文档生成工具 GitHub
HikariCP 数据库连接池 GitHub
Docker 容器化引擎 官网
Docker Compose 容器编排工具 官网
Kubernetes 容器编排系统 官网
TiDB 分布式数据库 官网
OKHttp3 轻量级网络框架 GitHub
OpenFeign 声明式 HTTP 客户端 GitHub
UserAgentUtils 用户代理检查工具 GitHub

前端技术

我前段技能比较low... @流浪诗人 有时间可以先看看这个 Vue Element Admin

技术 说明 地址
Vue 前端框架,MVVM 模式的实现者 GitHub
Vue CLI Vue 脚手架,基于 NodeJS GitHub
Vue Router Vue 路由框架 GitHub
Vuex Vue 全局状态管理框架 GitHub
Axios 前端 HTTP 框架 GitHub
Element UI 饿了么 UI 框架 官网
Vue Element Admin 基于 Element UI 的前端后台解决方案 GitHub
Vue Image Crop Upload Vue 图片剪裁上传组件 GitHub

框架集成

集成 完成
Spring Boot
Spring Cloud Alibaba
Spring Cloud Alibaba Dubbo
Spring Cloud Alibaba Sentinel
Spring Security oAuth2
TkMyBatis
HikariCP
OKHttp3
Feign 传递 Token
  • 初始框架集成基本ok 开发者可以尝试应用docker部署服务的方式开发项目 微服务2.0需要大量内存和机器性能支持k8s 有兴趣者可以本地搞一搞(暂时先开发功能 以后大家有兴趣我可以收集资料大家一起学习提升)
  • 注明:由于本人服务器实在太渣渣... 此项目后续如果需要线上展示可能需要众筹购买服务器...看以后发展和大家的积极性兴趣吧

模块介绍

模块 功能介绍
dependencies 统一以来管理模块
commons 通用工具及模型处理模块
configuratio 配置管理模块(微服务的服务配置管理模块)配置一般在配置中心
provider 服务提供者模块
business 业务功能模块 大家开发功能的集中模块 最好一个功能一个模块
gateway 网关服务 对内RPC对外REST 此处即是对外的暴露REST服务
cloud 云服务 用于对接阿里云存储服务文件上传下载等

后台功能清单 (功能清单大家可以根据自己的喜好开发 后续开发可以追加在表格里 可以标记对号也可标注自己的开发者标识(github用户名)防止功能重复开发)

  • 开发时在自己的分支开发即可 代码合并周期为每周的周五下午五点(大家没时间我可以代劳)下面部分功能还未coding 还有些为规划大家也可以提出意见
  • 代码也不用拘泥于设计 想用什么依赖自己引入即可 最好应用设计模式和快速迭代的xp开发模式 敏捷开发极限编程 微服务的意义就在于轻应用 即插即用
  • 编写模块时 不局限于磊代码 复制黏贴 好的代码可以标注一下注释方便大家交流 有问题的代码大家群里讨论优化策略

后台登录

功能 完成
用户注册
用户登录
获取 Token
刷新 Token

个人信息

功能 完成
查看信息
更新信息
更新密码
更新头像

权限管理

角色 菜单
超级管理员 所有菜单权限
运营人员 首页、用户、促销、运营、内容
功能 说明 完成
权限管理 添加权限、删除权限、修改权限、以树形结构返回权限
角色管理 添加角色、删除角色、更新角色、角色列表、获取角色权限、修改角色权限
成员管理 CRUD、为成员分配角色、获取成员角色、权限分配、获取权限列表

前台功能清单

功能 完成
用户注册
用户登录
获取 Token
刷新 Token
头像上传

后台服务规划 (现在没钱搞这个 以后再说 可以单机docker方式开发 服务简单部署暂时不做高可用)

下面列出的是cmcc shop应用的部署方案 大家后期可以参考

数据访问

服务名 端口 说明
provider-admin 随机 管理员服务提供者
provider-admin-login-log 随机 登录日志服务提供者

业务逻辑

服务名 端口 说明
business-reg 9000 注册服务
business-oauth2 9001 认证服务
business-profile 9002 个人信息管理服务

云服务

服务名 端口 说明
cloud-upload 10001 文件上传服务
cloud-message 10002 消息队列服务

消息队列

服务名 端口 说明
message-admin-login-log 20001 管理员登录日志消费者

网关

服务名 端口 说明
gateway 8888 Spring Cloud Gateway

基础设施规划

Docker

服务 主机名 IP/端口 CPU/MEM 说明
GitLab docker-gitlab 192.168.160.200:80 2 核 2G 代码管理
Nexus docker-nexus 192.168.160.201:80 2 核 2G 依赖管理
Harbor docker-harbor 192.168.160.202:80 2 核 2G 镜像管理
ZenTao docker-zentao 192.168.160.203:80 2 核 2G 项目管理

Kubernetes

主机名 IP 角色 CPU/MEM 磁盘
kubernetes-master 192.168.160.110 Master 2 核 2G 20G
kubernetes-node-01 192.168.160.120 Node 2 核 4G 20G + 40G
kubernetes-node-02 192.168.160.121 Node 2 核 4G 20G + 40G
kubernetes-node-03 192.168.160.122 Node 2 核 4G 20G + 40G
kubernetes-node-04 192.168.160.123 Node 2 核 8G 20G + 40G
kubernetes-volumes 192.168.160.130 NFS 2 核 2G 按需扩容

容器部署配置

企业级应用方案必要服务如下(单体开发时不需要):

GItLab

version: '3'
services:
    web:
      image: 'twang2218/gitlab-ce-zh'
      restart: always
      hostname: '192.168.160.200'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://192.168.160.200'
          gitlab_rails['gitlab_shell_ssh_port'] = 2222
          unicorn['port'] = 8888
          nginx['listen_port'] = 80
      ports:
        - '80:80'
        - '443:443'
        - '2222:22'
      volumes:
        - ./config:/etc/gitlab
        - ./data:/var/opt/gitlab
        - ./logs:/var/log/gitlab

Nexus

  • 账号: admin
  • 密码: cat /var/lib/docker/volumes/nexus_data/_data/admin.password
version: '3.1'
services:
  nexus:
    restart: always
    image: sonatype/nexus3
    container_name: nexus
    ports:
      - 80:8081
    volumes:
      - data:/nexus-data

volumes:
  data:

Harbor

官方 GitHub 上下载最新离线安装版(我已经下载并放置在群分享的 Linux 目录下)并上传至服务器

  • 账号: admin
  • 密码: Harbor12345
# 解压
tar -zxvf harbor-offline-installer-v1.8.0.tgz

# 修改
cd harbor
vi harbor.yml
hostname: 192.168.160.202

# 安装
./install.sh

禅道

version: '3.1'
services:
  zendao:
    build: build
    restart: always
    container_name: zendao
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    ports:
      - 80:80
    volumes:
      - ./app:/app/zentaopms
      - ./data:/var/lib/mysql

说明:开发时单实例方式的项目启动说明

参与开发人员介绍(无先后顺序)

  • 后端:

@liudongyang@有梦想的咸鱼

自我介绍:最可悲的不过无知,最厌恶的不过人心

@hualidong@DDLoveWorld

自我介绍:初不识,终不认。

@kumangcao@kumangcao

自我介绍:这家伙有点懒,啥也没写...

@lxc66@lianxiaochuang

自我介绍:我可以不吃饭不睡觉,但不可以不想你

@yuhongzhao@yuhongzhao

自我介绍:做自己最好!

@shirleyliuchn@shirleyliuchn

自我介绍:这妹纸有点懒,啥也没写...

@xiaozw10086@xiaozw10086

自我介绍:修心


  • 前端:

@llsr@流浪诗人

自我介绍:TO BE A BETTER MAN

@make-dream@make-dream

自我介绍:逃得过初一,逃不过十五


  • 测试:

@YingXuanXU@YingxuanXU

自我介绍:孤立无援的时候,你要自成宇宙


  • UI设计:

img@锦华

自我介绍:慎独

最后还希望这个项目能一直做下去,文档不定期更新,代码中存在许多缺陷和问题有待完善,可以watch一下,希望参与的每一个人积极贡献代码,都能有所收获吧。

beautiful-leg's People

Contributors

gitldy1013 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.