Cloud Platform Project Introduction
Cloud Platform is the first microservice development platform based on Spring Cloud in China. It has a unified authorization and authentication backend management system, which includes multiple modules such as user management, resource permission management, gateway API management, etc. It supports parallel development of multiple business systems and can serve as a development scaffold for backend services.
The core technology adopts Spring Boot 2.4.1, Spring Cloud (2020.0.0), and relevant core components of Spring Cloud Alibaba 2.2.4. It uses Nacos registration and configuration center, integrates traffic guard Sentinel, uses vue element admin component in the front-end, and integrates Elastic Search by itself
Architecture diagram
Architecture diagram
Architecture Introduction
Mid platform front-end
Integrate d2admin middleware front-end, optimize front-end architecture and functional layout, and support middleware service-oriented application development
JWT authentication
Using JWT for user authentication and information transmission ensures stateless communication between services
Monitoring
Use Spring Boot Admin to monitor the running status of each independent service; Use Hystrix Dashboard to view the real-time running status and call frequency of interfaces
Load balancing
Proxy and gateway control the reserved rest of the service. In addition to commonly used Node.js and nginx, Spring Cloud series zuul and ribbon can help us with normal gateway control and load balancing. The extension and reference of foreign projects are based on JWT’s Zuul current limiting plugin, which is used for current limiting
Service registration and invocation
Based on Nacos for service registration and invocation, using Feign in Spring Cloud, we can achieve the same coding experience as calling local methods when using HTTP to request remote services. Developers are completely unaware that this is a remote method, let alone an HTTP request
Circuit breaker and flow control
Integrate Alibaba Sentinel for interface traffic control, avoiding service call “avalanche” through circuit breaker and downgrade processing
Function screenshot
Project Structure
ace-security
Ace API----------------- Cross service invocation of generic dto data objects
Ace modules------------- Public service module (basic system and JWT authentication, search, OSS)
Ace dev base------------------ Universal Scaffolding (Basic JWTSDK, Common Development Tool Class)
Ace gate---------------- Gateway Load Center
Ace architecture-------------- Operations Center (Monitoring, Link, Naco Registration Center, Sentinel Circuit Flow Control)
UI project launch
Environment setup (node version>8)
nodeVersion:v9. 4. 0
npmVersion: 6. 10. 2
Dependency download slow
~ nrm -V
1.0.2
➜ ~ nrm ls
npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
* taobao - https://registry.npm.taobao.org/
nj ----- https://registry.nodejitsu.com/
rednpm - http://registry.mirror.cqupt.edu.cn/
npmMirror https://skimdb.npmjs.com/registry/
edunpm - http://registry.enpmjs.org/
Development (in UI directory)
# Installing dependencies
npm install
# Local Development Enable Service
npm run dev
Publish
# Build a generative environment
npm run build:prod