Introduction to Unicode Series Open Source Components

Overview

Uncode is a series of enterprise-level open source components based on the Java language, authored by Ye Weijun (open source authors spend a lot of time maintaining open source projects and expect to use them correctly). Mainly include: mobile back-end development framework Uncode-BaaS, general database access component Uncode-DAL and distributed task scheduling component Uncode-Schedule, cluster session sharing component Uncode-Session, two-level cache component Uncode-Cache, lightweight messaging Middleware Uncode-MQ. Its core design goal is to make the development of small and medium-sized enterprises simpler and easier to maintain. At the same time, most of the basic operations of the components are encapsulated, and basic functional modules such as authentication and security control are provided, which can greatly improve the development speed and reduce the development cost.

 

Development Overview

The development of the Unicode project started in late 2014. The author, Ye Weijun, has led the technical team to start a business for many years in the field of mobile Internet. I deeply understand the various technical problems encountered by small and medium-sized companies in the development process, so I initiated the Uncode series of open source projects, hoping to provide reference and direction for the rapid development of small and medium-sized companies. Uncode adopts the GPL-2.0 protocol. Interested parties are welcome to communicate with each other.

Uncode series projects adhere to the following design goals: rapid development, simple code, easy to learn, powerful, lightweight, and easy to expand. While adhering to the above design goals, in line with the principle of not repeating the manufacture of wheels, good application and integration Existing popular frameworks, creating a full-featured mobile application back-end series of components, completely liberates the productivity of small and medium-sized company developers, allows small and medium-sized company developers to devote more energy to specific business implementation, and reduces the company's product development time and manpower cost to bring the product to market quickly.

Through practice, Uncode will gradually form a series of back-end development components of mobile Internet companies, which will be displayed in the Uncode development community.

 

Uncode-BaaS mobile backend development framework

 

Functional Overview

 

Uncode- BaaS mobile back-end development framework, focusing on the development of mobile application back-end services, aims to make mobile back-end development easier. Any enterprise or individual can quickly customize personalized back-end business logic for mobile applications through Uncode -BaaS , which can greatly reduce back-end development time and costs. The Uncode- BaaS framework provides this flexibility, allowing your code to be implemented very simply and run directly on various cloud services. Once you update the code, all mobile applications will be automatically updated immediately, and the release of new features will be easier and more controllable.

 

main features

1. Simple and easy to use

Uncode-BaaS mobile back-end development framework is simple to use and easy to develop. Developers can formulate their own or directly use third-party plug-ins to implement the back-end business logic of mobile applications, allowing developers to quickly complete the formulation of business logic and run it directly, completely saving time and labor costs for back-end development. It enables developers to devote more energy to the mobile application itself and develop more competitive mobile products.

2. Easy to maintain

Uncode- BaaS mobile back-end development framework provides developers with integrated testing functions, which can be tested at any time and run directly without publishing. It has good scalability, and can be expanded without modifying the original business, and multiple services can call each other. It can automatically expand according to the business volume, without any impact on the existing business, with perfect scalability.

3. Personalized customization

Uncode- BaaS mobile back-end development framework can help developers customize personalized business logic for their mobile applications, and can meet the needs of all business scenarios. Developers can quickly customize the required business logic with minimal cost, stand out among many mobile applications, and take the lead. At the same time, developers can quickly retry when the application needs to be adjusted.

4. Low-cost rapid development

The Uncode-BaaS mobile back-end development framework highly encapsulates the mobile back-end business logic and provides a very simple method that enables any developer to customize business logic according to their own business needs. At the same time, we provide very complete help documents and examples Apps and online Q&A to help you customize your business. You can devote a lot of energy to the mobile application itself without the need for back-end developers at all, greatly reducing labor and time costs.

5. Multi-terminal

Uncode- BaaS mobile back-end development framework, based on standard rest protocol, can be applied to all terminals, including IOS, Android, Windows Phone, Html5 , etc. Without any code embedding in the mobile application, all-round statistics and analysis can be performed on the developer's application, which greatly reduces the difficulty and cost of mobile application development, and at the same time ensures the timeliness and accuracy of the data.

6. Safe and reliable

Uncode- BaaS mobile back-end development framework, in order to ensure data security, it can control the permissions of services and data at the same time, and set the access objects and operation permissions of services for services. For the data itself, the permissions at the table or field level can be strictly controlled according to users, roles and user groups, which can ensure the minimum granularity of permission control and perfectly solve the problem of mobile application data security. In addition, the cloud features are used to ensure storage security.

 

Unicode-DAL Generic Data Access Components

 

Functional Overview

Uncode- DAL general data access component, in line with the principle of not repeating the manufacture of wheels, is developed based on ORM frameworks such as Mybatis , Spring JDBC, Hibernate , MongoDB, etc. , and supports read-write separation based on multiple data sources, active-standby switching, failover, automatic Recovery, load balancing, caching, etc. Can greatly improve the development speed.

 

main features

1. Based on ORM frameworks such as Mybatis , Spring JDBC, Hibernate , etc. , the general DAL layer function is realized, and it is fully compatible with existing projects. At the same time, it supports arbitrary switching between ORM frameworks without any changes to the code.

2. Implement a unified DAL layer Cache, and the expiration time can be set freely.

3. Realize read-write separation, active-standby switching, failover, recovery detection and load balancing based on multiple data sources (DataSource).

4. It is recommended to follow the following rules when using this component:

  • When using DTO, the field name is the same as the database table field and is not case-sensitive, or you can use MAP directly without using any DTO class.

  • Concatenated table queries are not supported, mainly single-table operations. If you need to concatenate tables, please use it in conjunction with the native orm framework.

  • The default primary key field for SQL is id, and the default primary key field for NoSql is _id.

Uncode-Schedule distributed task scheduling component

 

Functional Overview

Uncode-Schedule is a distributed task scheduling component based on Zookeeper and Quartz /Spring Task. It is very small and can make Quartz and Spring Task have distributed characteristics without any modification, and ensure that all tasks are executed without duplication and omission in the cluster. .

 

main features

1. Distributed task scheduling component based on popular Zookeeper and Quartz /Spring Task.

2. The cluster task node uses a single JVM as a unit to ensure that each task is not repeated on different nodes in the cluster.

3. When a single task node fails, it will automatically transfer to other task nodes to continue execution.

4. Weakly depend on Zookeeper . When the task node starts, it needs to ensure that Zookeeper is available. During the running period of the task node, when the Zookeeper cluster is unavailable, the task node keeps running in the state before it is available. After Zookeeper is available, it automatically registers the task and returns to normal.

5. Support the dynamic stop and operation of existing tasks.

6. Precautions for use:

  • When a single node fails, the application needs to ensure data integrity or idempotency by itself.

  • The specific usage is the same as Quartz and Spring Task, just add the ZKScheduleManager configuration.

 

Uncode-Session cluster session shared components

 

Functional Overview

A very small cluster session sharing component, with less than a thousand lines of code, avoiding the troubles of using application container plug-ins.

 

main features

1. A very small cluster session shared component, similar to spring-session.

2. The total code does not exceed 1000 lines.

3. Easy to use and expand.

 

Uncode-Cache two-level cache component

 

Functional Overview

A two-level cache component based on redis and ehcache, supports spring-boot, is easy to use, and has a management page.

 

main features

1. Unified annotation support

2. You can set the cache timing automatic update time

3. Cache preheating

4. You can set cache dependency elimination

5. You can add monitoring, use to achieve hit rate, read/write time, etc.

 

Uncode-MQ lightweight java message middleware

Functional Overview

Lightweight java message middleware based on netty.

main features

1. The message storage speed is very fast.

2. It is simple and convenient to use. Currently, only topic mode is supported.

3. Depends on the java environment.

 

User blog recommendation

spring+mybatis+uncode-dal realizes database read-write separation

Distributed timing task framework---Uncode Schedule

uncode-schedule of distributed scheduling

Implement spring+mybatis+uncode dal, the application automatically switches to connect to the database

uncode-schedule-manage customized management system

Uncode-Schedule framework source code analysis

Java manages your cluster timing tasks through redis

 

Thanks to the author of the above blog, thank you! ! !

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326421578&siteId=291194637