Distributed agile development system architecture based on Spring + Spring MVC + Mybatis

This project is not just a development architecture, but strives to create a full range of J2EE enterprise-level development solutions from front-end template-basic framework-distributed architecture-open source project-continuous integration-automated deployment-system monitoring-seamless upgrade .

Project Introduction

Based on the Spring+SpringMVC+Mybatis distributed agile development system architecture, it provides a complete set of public microservice service modules: content management, payment center, user management (including third parties), WeChat platform, storage system, configuration center, log analysis, tasks and notifications To support service governance, monitoring and tracking, and strive to create a comprehensive J2EE enterprise-level development solution for small and medium enterprises.

Organizational structure

 

zheng
├── zheng-common - SSM framework common module
├── zheng-admin - background management template
├── zheng-ui - front thymeleaf template [port:1000]
├── zheng-config - configuration center [Port:1001]
├── zheng-upms - user authority management system
| ├── zheng-upms-common - upms system common module
| ├── zheng-upms-dao - code generation module, no development
| ├── zheng-upms-client - Integrate upms dependency package, provide single point of authentication, authorization, unified session management
| ├── zheng-upms-rpc-api - rpc interface package
| ├── zheng-upms-rpc -service - rpc service provider
| └── zheng-upms-server - user authority system and SSO server [Port:1111]
├── zheng-cms - content management system
| ├── zheng-cms- common - cms system public module
| ├── zheng-cms-dao - code generation module, no development needed
| ├── zheng-cms-rpc-api - rpc interface package
| ├── zheng-cms-rpc- service - rpc service provider
| ├── zheng-cms-search - search service [Port:2221]
| ├── zheng-cms-admin - background management [Port: 2222]
| ├── zheng-cms-job - message queue, task scheduling, etc. [Port: 2223]
| └── zheng-cms-web-
-Website front desk [Port:2224] ├── zheng-pay - payment system
| ├── zheng-pay-common - pay system public module
| ├── zheng-pay-dao - code generation module, no development required
| ├── zheng-pay-rpc-api - rpc interface package
| ├── zheng-pay-rpc-service - rpc service provider
| ├── zheng-pay-sdk - development kit
| ├─ ─ zheng-pay-admin - background management [port:3331]
| └── zheng-pay-web - demo example [port:3332]
├── zheng-ucenter - user system (including third-party login)
| ├── zheng-ucenter-common - ucenter system common module
| ├── zheng-ucenter-dao - code generation module, no development needed
| ├── zheng-ucenter-rpc-api - rpc interface package
| ├─ ─ zheng-ucenter-rpc-service - rpc service provider
| └── zheng-ucenter-web - website front desk [Port: 4441]
├── zheng-wechat - Wechat system
| ├── zheng-wechat-mp - Wechat official account management system
| | ├── zheng-wechat-mp-dao - Code generation module, no development required
| | ├─ ─ zheng-wechat-mp-service - business logic
| | └── zheng-wechat-mp-admin - background management [port: 5551]
| └── zheng-ucenter-app - Wechat applet background
├─ ─ zheng-api - API interface bus system
| ├── zheng-api-common - api system common module
| ├── zheng-api-rpc-api - rpc interface package
| ├── zheng-api-rpc -service - rpc service provider
| └── zheng-api-server - api system server [Port: 6666]
├── zheng-oss - object storage system
| ├── zheng-oss-sdk - Development kit
| ├── zheng-oss-web - front-end interface [port:7771]
| └── zheng-oss-admin - back-end management [port:7772]
├── zheng-message - real-time notification system
| ├── zheng-message-sdk - development kit
| ├── zheng-message-server - server [port: 8881, SocketIO port: 8882]
| └── zheng-message-client - client
├── zheng-shop - e-commerce
system└── zheng-demo - sample module (including some sample codes, etc.)
     ├── zheng-demo-rpc-api - rpc interface package
     ├── zheng-demo-rpc-service - rpc service provider└──
     zheng- demo-web - Demo example [Port:9999]

Technical selection

Back-end technology:

image

image

image

Front-end technology:

image

image

Architecture diagram

image

Module dependency

image

Module introduction

zheng-common

Spring+SpringMVC+Mybatis framework integrates public modules, including public configuration, MybatisGenerator extension plug-ins, general BaseService, tool classes, etc.

zheng-admin

A general back-end management system based on the responsive Material Design style implemented by bootstrap. zhengAll back-end systems of the project use this module interface as a front-end display.

zheng-ui

The front-end thymeleaf template and front-end resource module of each subsystem use nginx proxy to achieve dynamic separation.

zheng-upms

This system is a general platform based on RBAC authorization and fine-grained authority control based on user authorization, and provides single sign-on, session management and log management. The connected system can freely define organization, roles, permissions, resources, etc. User authority = collection of all role permissions + user plus permissions-user reduced permissions, priority: user reduced permissions> user plus permissions> role permissions

zheng-oss

File storage system provides four solutions:

  • Alibaba Cloud OSS

  • Tencent Cloud COS

  • Qiniu Cloud

  • Local distributed storage

image

zheng-api

Service gateway, which exposes unified and standardized interfaces and packaging response results, including interactive interfaces of various subsystems, open interfaces, development encryption interfaces, interface documents and other services. This module can support signature verification, authentication, routing, and current limiting. , Monitoring, fault tolerance, log and other functions. sample graph:

image

zheng-cms

Content management system: Supports content management of multiple tags, multiple categories, and powerful comments, with basic single-page display, menu management, system settings and other functions.

zheng-pay

  • One-stop payment solution, unified order interface, supports multiple payment methods such as Alipay, WeChat, and online banking. A pure payment platform that does not involve business.

  • Unified order (unified order interface, unified scan code), order management, data analysis, financial statements, merchant management, channel management, reconciliation system, system monitoring.

image

zheng-ucenter

The universal user management system realizes the most commonly used user registration, login, data management, personal center, third-party login and other basic requirements, and supports extended secondary development.

zheng-wechat-mp

The WeChat official account management platform, in addition to the basic functions of the official website background automatic reply, menu management, material management, user management, and mass messaging, also has QR code promotion, marketing activities, microsites, membership cards, coupons, etc.

zheng-wechat-app

WeChat applet background

zheng-message

Real-time push system of SocketIO based on Netty. Support functions such as namespace, binary data, SSL, ACK, etc.

Environment setup

development tools:

  • MySql: database

  • jetty: development server

  • Tomcat: application server

  • SVN|Git: version management

  • Nginx: reverse proxy server

  • Varnish: HTTP accelerator

  • IntelliJ IDEA: Development IDE

  • PowerDesigner: Modeling tool

  • Navicat for MySQL: database client

Development environment:

  • Jdk7 +

  • Mysql5.5+

  • Redis

  • Zookeeper

  • ActiveMQ

  • Dubbo-admin

  • Dubbo-monitor

Project demo

preview

imageimageimage image image

Data model

image

Topology

image

Guess you like

Origin blog.csdn.net/baidu_39322753/article/details/110956062