zuihou-admin-cloud 1.3 release, multi-tenant mode can be switched freely

Update log:

1. improve the data dictionary associated docking interface
2. reconstruct the data source configuration BaseDbConfiguration
3. tenants of the project becomes free to switch modes (including zuihou-ui supports configuration) (to modify the parameters of the configuration file)
4. solve p6spy Print the sql statement is null
5. configuration file obsolete configuration (logging.path etc.) upgrade to the latest version of the configuration 
6. test for distributed transactions (seata) cancellation of two multi-tenant service configuration and distributed transaction debugging through
7. repair zuihou-admin-ui run error: `Can not read property 'range ' of null`
    solution:" babel-eslint ": downgraded to" 8.0.1 " 
8. unified zuihou-admin-ui interface call returns the value
9. record a more detailed login log (log cause of failure, etc.) 

Summary:


Based on `SpringCloud (Hoxton.SR1)` + `SpringBoot (2.2.2.RELEASE)` the SaaS service micro-scaffold, with user management, resource rights management, unified gateway authentication, Xss anti-cross-site attacks, automatic code generation, multi-storage systems, distributed transactions, and other regular tasks distributed modules, multi-service system to support parallel development, multi-service support parallel development, can be used as scaffolding to develop back-end services. Code is simple and clear structure, is very suitable for learning. The core technology employed Nacos, Fegin, Ribbon, Zuul, Hystrix, JWT Token, Mybatis, SpringBoot, Seata, Nacos, Sentinel, RabbitMQ, FastDFS other main framework and middleware.

Hope and strive to create a set from SaaS basic framework  - distributed micro-services architecture  - Automated deployment  - system monitoring  solutions. The project aims to achieve basic skills, not related to specific operations.
 

Function Point presentation:

Registration and service call:

Service registration and call Eureka implemented based on using Feign in Spring Cloud, we can do it using an HTTP request remote services can call the local method and the same coding experience, developers fully perceive this is not a remote method, more aware this is not a HTTP request.

 Authentication Service:

Permission to schedule the service to enhance the way by JWT verification, to ensure internal security services.

Load Balancing:

The service keeps the rest proxy and gateway control, in addition to the usual frequently used node.js, nginx, Spring Cloud series zuul and rebbion, can help us carry out normal gateway control and load balancing. Which extend and learn from foreign expansion project based on JWT's Zuul limit to limit the current flow plug-respect.

 Fuse mechanism:

Since taking the distribution of services, in order to avoid service calls between the "avalanche", we adopted Hystrix as fuses, to avoid the "avalanche" between services.

monitor:

Use Spring Boot Admin to monitor the operating status of each individual Service; using the turbine to view state and calling frequency interface in real time; to see the call chain between the various services through Zipkin and so on.

data permission:

Based Mybatis DataScopeInterceptor use of interceptors to achieve a simple data permissions

No sense of SaaS solutions:

Use Mybatis interceptors to achieve the interception of all SQL, modify the default Schema, in order to achieve the purpose of multi-tenant data isolation.

Secondary cache:

Using J2Cache cache operation, using a first level cache memory (the Caffeine), second-level cache use Redis. Because a large number of L2 cache reads may result in the bottleneck of the network system, the target is to reduce the number of reads L1 to L2. The frame buffer is mainly used in a clustered environment. It can also be used stand-alone, to avoid the impact of the back-end business application cache after the restart due to a cold start.

Elegant Bean conversion:

Dozer assembly employed to optimize the conversion of the DTO, DO, PO object, etc.

Front and rear end unified form validation:

Strict form validation usually takes the front + back-end and to verify, but the traditional project are only done once before and after the end of each test, the late rule change, they have to end at the same time before and after the modification. Therefore, on the basis of the package on the hibernate-validator zuihou-validator-starter starting-dependent, provides a common interface, access rules can be verified form, then the front end of the rear end of the returned usage rule, if after the rule change, only the rear end modifications.

Anti-cross-site scripting attacks (XSS):

  •      To filter all requests in the form parameter through the filter
  •      To filter all application / json type parameter Json deserializer implemented by

The current user information Injector:

 By injection annotations achieve user identity

Online API:

Since the primary function of certain swagger-ui support friendly enough, so the use of domestic open-source knife4j, and produced a stater, convenient springboot users.

Code generator:

Mybatis-plus-generator based on the custom code generator set, by configuring the annotation database fields, generated automatically enumerated classes, dictionary data annotation, SaveDTO, UpdateDTO, validation rules form annotations, annotation Swagger like.

Timing task scheduler:

Enhancements were based xxl-jobs. (Example: send task specified time, and a scheduler performing combined projects, multiple data sources)

Speaking Eureka registry page:

Please switch branches View

Large file / break / slice Resume:

Front-end webupload.js, the back-end uses NIO to achieve a break after large files fragmented resume, start Eureka, Zuul, File Services, directly open docs / chunkUploadDemo / demo.html can be tested. After testing, the local limit maximum stack memory 128M start File Services, within five minutes can be successfully uploaded 4.6G + large files, the official service will be affected user consuming bandwidth and server bandwidth, long time.

Distributed Transaction:

Ali integrated distributed transaction middleware: seata, with  high efficiency  and business  0 intrusive  way to solve the problems facing distributed transaction scenario of micro-services.

Item code address

project gitee github Remark
Micro Services https://gitee.com/zuihou111/zuihou-admin-cloud https://github.com/zuihou/zuihou-admin-cloud SpringCloud version of the back-end code
Single project https://gitee.com/zuihou111/zuihou-admin-boot https://github.com/zuihou/zuihou-admin-boot SpringBoot version of the back-end code
Tenant Background https://gitee.com/zuihou111/zuihou-ui https://github.com/zuihou/zuihou-ui | To use front-end customer
Development & Operations background https://gitee.com/zuihou111/zuihou-admin-ui https://github.com/zuihou/zuihou-admin-ui The company developed in-house & Operations & operation and maintenance personnel
Code generator   https://github.com/zuihou/zuihou-generator Developers use

Demo (demo account does not have write permissions can only query)

project Demo Address Administrator account Ordinary Account
Tenant Background http://tangyh.top:10000/zuihou-ui zuihou / zuihou test/zuiou
Development & Operations background http://tangyh.top:180/zuihou-admin-ui demoAdmin / zuihou no

Guess you like

Origin www.oschina.net/news/112662/zuihou-admin-cloud-1-3-released