Nacos won the GLCC Excellent Community, and at the same time, 2 3 0 BETA was released, welcome to tr

Mondo Digital Updated on 2024-01-31

Author: Nacos Community.

After more than 4 months of substantial contributions from the community, Nacos 23.Version 0 finally entered the beta release phase, after going through 22.After multiple security risk fixes, there is another functional update.

NACOS Antifragility Plugin

2.2.After version 0 added the alpha version of the antifragile plugin, the community has been refactored and modified several times to improve abstraction and stability, and finally released in version 23.The anti-fragility plugin for NACOS was officially announced in version 0It is used to avoid capacity problems caused by a large number of requests and connections in the Nacos cluster, which may lead to larger-scale failures.

For the use of the default antifragile implementation plugin and the development of a custom antifragile plugin, please refer to the document Antifragility Plugin

Nacos configuration change plug-in

As the core function of Nacos, Nacos configuration management has always attracted the attention of developers, O&M personnel, and auditors, and many O&M personnel and auditors have appealed to the community, hoping that Nacos can provide configuration change auditing, change notification and other functionsAt the same time, developers also hope that Nacos provides a certain format verification function to avoid application failures caused by errors when modifying configurations.

Since NACOS configuration management itself is not aware of the configuration content, and the audit and notification systems of each user company are also different, in order to be able to adapt to the demands of each user more broadly, NACOS formulated the topic of configuration change plug-ins in the open source summer last year, hoping to meet the intervention in the configuration change process in the form of plug-ins.

After the long-term efforts of classmates and tutors, the plugin has been successful in 23.0 version released,Users can develop custom plug-ins to connect with the company's audit system and notification system before and after the configuration change, respectively, and perform more verification operations before the changeFor example, format verification, configuration name normalization, etc. At the same time, the Nacos community also provides the implementation of default plug-ins, which can be connected to webhooks for configuration change notification and file name verification for imported configurationsFor more information, see Configuring Plug-ins

Nacos requests parameter validation

2.3.Before version 0, the parameter verification logic of NACOS was scattered, and the verification was carried out separately by the processing methods of various requests, which was difficult to change and maintain, and the parameter verification was often omitted, and the rules of parameter verification were not clearly unifiedAs a result, users often fail to meet expectations or have vulnerabilities due to some special characters, and even cause a large number of pushes, resulting in full bandwidth, excessive memory usage, and application failures.

In 23.0 version,Nacos clarifies the parameter validation rulesA unified parameter verification logic is implemented on the server side, and a parameter verification layer is added to verify the requests sent by the client to the server according to the verification rules. The user can choose to enable the parameter verification function, after which Nacos will verify some parameters in the request sent by the client to the server to ensure the legitimacy of the parameters and avoid unsatisfactory and performance problems caused by incorrect use.

For details, see Parameter Validation Rules

NACOS Capacity Negotiation

With the increasing number of NACOS functions and versions, the compatibility between the client and the server becomes more and more important. Therefore, in the open source summer last year, the NACOS community released a project, by adding the capability negotiation mechanism between the client and the server, when the client connects to the server, let the connecting parties know the functions supported by the other party, and enable the corresponding functions when the corresponding functions are supported. Avoid increasing communication overhead by attempting.

In 23.Version 0, this capability was also integrated for nacos30 supports more optimization functions to provide the foundation.

Other important changes

In addition to the above changes, nacos23.Version 0 also supports: Abnormal Metrics on the client, SSL function for grpc persistent connections, disabling the open source console and other functions, you can check the change list for more details, welcome to try:

## feature[#5698] support nacos control plugin.[#8458] support ability negotiations between server and clients.[#8460] support config change hook plugin.[#10117] support metrics for nacos client request server exception.[#10150] support ssl for grpc connection.[#10223] support auto build instance id when client request instance id is null.[#10288] support get more module state and switches in console.[#10734] support validate most of request parameters.[#10774] support toml format for configuration in console ui.[#10831] support batch deregister instances for service.[#10971] support disable console ui and support add guide information.## enhancement&refactor[#6819] add page size selector in service details page.[####10176] enhance hint when console ui session expired for default auth plugin.[#9085] add the reachability metadata required by native-image.[#9821] enhance datasource plugin to make more datasource implementation easier.[#9881] enhance configuration page to supports folding when editing configuration.[#10067] enhance windows compatibility for configuration snapshot.[#10155] enhance hints for grpc request when request timeout.[#10343] use cms as default gc when jdk less 9.[#10361] refactor module switches to make only load specified module but not only close in console ui.[#10520] validate for namespace show name when create new namespace.[#10521] enhance the hints for `no datasourceset` error by validate datasource after construction.[#10539] enhance logs when opeation configuration failed.[#10730] link to v2 document for console ui.[#10811] enhance compatibility for colorful service healthy status in console ui.[#10891] support setting maximum number of push retries.[#10930] forward compatible old version secretkey for default auth plugin.[#11129] remove the namespace information from the node list page.[#11231] optimize the handlespringbinder method in propertiesutil.## bugfix[#10056] fix loss revision of client for distro sync.[#10128] fix wrong judgement in raft statemachine.[#10149] fix dead lock on sending connection reset request on server over limit.[#10271] fix nacos-client failover switch file path.[#10318] fix import configuration problem.[#10347] fix only admin role user can register service into default namespace when enabled default auth plugin.[#10406] fix jraft install leader snapshot error after disconnection.[#10427] fix nacos client no response when handle server request with exception.[#10464] fix npe when concurrent operations for client.[#10470] fix some missed i18n for console ui.[#10509] fix out data connection not be disconnect problem.[#10548] fix switch domain might not load snapshot after restart.[#10556] fix index loss for client and service in extreme scenarios.[#10583] fix some new api loss auth check.[#10585] fix selectinstances and selectonehealthyinstance methods will not subscribe service problem.[#10593] fix invalid create `file:` dir under `nacos.home`.[#10598] fix nacos-client not random get server address when using address.[#10606] fix memory leak for nacos client when user create and shutdown client frequently.[#10657] fix npe when using derby datasource for cluster mode.[#10935] fix startswith judgement wrong when ignorecase is true.[#11056] fix batch register count size wrong, when batch register sereval time.[#11059] fix rpc_client_tls_protocols setting error.[#11192] fix batchregisterinstance not recalculate revision prblem.[#11197] fix frequent do query service when hit protect empty.## dependency[#7698] remove httpasyncclient version dependency management to **oid version conflicts.[#10416] upgrade console yaml editor.[#10648] optimize gu**a dependency.[#10893] upgrade spring boot to 2.7.15.[#11199] upgrade grpc version to 1.57.2.
After the summer of hard work, this year's open source summer of NACOS is also coming to an end, and the progress of various projects is progressing steadily, and no small progress has been made.

Open Source Summer OSPP 2023

NACOS in the Open Source Summer of 2023, 9 projects were released, of which 6 projects were successfully matched with classmates and basically completed the project topics, including a large number of new features and optimizations expected by the community, which will be added in subsequent versions.

List of Selected Projects:

The client subscriber merge and data selection functions are nacos-spring-boot-starter, which supports adaptation of Spring Boot 3Configmap to Nacos Configuration Center, automatic synchronization tool, client observability indicator construction, supports the fuzzy subscription capability of NACOS registry, and realizes other parts of the XDS protocol.

NACOS won the Outstanding Community of the GLCC 2023 Coding Summer Camp

Nacos' Summer Camp for Coding in 2023A nacos3One of the most popular features in 0 is the issue of support for distributed locking. At present, with the joint efforts of tutors and students, the function has been preliminarily completed, and it is expected to be released in nacos30 was announced in the community in alpha release.

Thanks to the efforts of tutors and classmates,The Nacos community won the Outstanding Community Award for the Open Source Programming Summer Camp from CCF GitlinkThanks to the organizer Gitlink for providing the platform and activities for the community.

2.x Follow-up plan

From March 2, 20210.0 official version released so far, 2The X version has been gone for almost 2 years and is now 23.Version 0 was released, and most of the functions were completed in the plug-in refinement, in the next 23.In the X version, the problems of the current version will be mainly fixed, and a small range of functional optimizations will be made. At the same time, for 24.version 0, will be used as a nacos30, optimize and refactor a large number of **, improve stability and robustness, improve ease of use and observability, and move towards nacos30 version smoothly transitioned.

3.0 plan

The NACOS community also started the introduction of NACOS30, Nacos will further evolve the functions and architecture of Nacos from the direction of unified control plane, support for localization, separation of storage and computing, etc., and welcome the community to actively participate in the construction of the new version.

Nacos is dedicated to helping you discover, configure, and manage microservices. Nacos provides a set of easy-to-use features to help you quickly implement dynamic service discovery, service configuration, service metadata, and traffic management.

Nacos helps you build, deliver and manage microservices platforms more agile and easily. NACOS is a service infrastructure that builds a modern application architecture centered on "services" (such as microservice paradigm and cloud native paradigm).

Finally, everyone is welcome to join the nacos DingTalk community group (group number: 12810027056).

Related Links:

1] Antifragile plugin.

2] Configure the change plugin.

3] Parameter validation rules.

4] The Summer of Open Source.

5] Coding Summer Camps.

Related Pages