Commit Graph

549 Commits

Author SHA1 Message Date
Sunrisea
a76f0771e7
For #10734,fix the param check rule (#10858) 2023-07-28 09:33:07 +08:00
Sunrisea
65ad408d03
For #10734,fix the param check rule (#10826) 2023-07-25 09:33:44 +08:00
Sunrisea
8adca685f6
[ISSUE #10734] Refactor the ParamChecker and ParamExtractor (#10775)
* For #10734,refactor the paramextractor and ParamChecker

* For #10734,alter the rules of ParamCheck

* For #10734,alter the rules of ParamCheck

* For #10734,fix bug

* For #10734,fix bug and alter the ParamCheckRules.java

* For #10734,fix code style

* For #10734,fix the param check rules

* For #10734,implement the server param check config

* For #10734,optimize the logic

* For #10734,optimize the logic

* For #10734,optimize the logic
2023-07-19 16:34:03 +08:00
blake.qiu
156cd62261
fix(#10427): When the execution of handleServerRequest() encounters an exception, record the log and throw an exception, then quickly response to the server errResponse (#10770) 2023-07-13 11:11:05 +08:00
Sunrisea
ba8e0e2dff
[ISSUE #10734] Implemented the parameter validation utility class (#10737)
* For #10734,Refactor the AbstractConfigRequest ,move common properties from its subclasses to the parent class,to reduce the number of corresponding parameter extractors by .

* For #10734,add ParamCheckRules,ParamCheckUtils, add  ParamExtractor interface and the abstract classes HttpParamExtractor and RpcParamExtractor, implement the corresponding Manager.

* For #10734,fix codestyle

* For #10734,fix codestyle , move extractor and extractorManager to core directory

* For #10734,fix codestyle

* For #10734,fix dependency of common module

* For #10734,fix codestyle and copyright

* For #10734,fix pom codestyle and copyright

* For #10734,fix pom codestyle and copyright

* For #10734,fix  copyright

* For #10734,fix  copyright

* For #10734,fix bug caused by refactor of AbstractConfigRequest ,add ut test of ParamExtractorManager

* For #10734,fix bug caused by refactor of AbstractConfigRequest

---------

Co-authored-by: zhuoguang <sunrisea@B-Q6UQMD6R-0222.local>
2023-07-07 11:06:00 +08:00
blake.qiu
9116aee82f
fix(#10717): com.alibaba.nacos.common.http.client.request.JdkHttpClientRequest.execute, when the body instanceof String, no longer call com.alibaba.nacos.common.utils.JacksonUtils.toJson to parse body. (#10718) 2023-07-02 00:02:57 +08:00
nov.lzf
83ee4c8e2c
1. notify thread change to one thread to avoid potential ClassLoader switch exception (#10555)
2. optimize current notify ,add receiveNotifyChanged flag
3. add notify block log for over 60s
4. add notify error & block stack trace
5. fix shutdown client worker memory leak  of server list change subscriber
6. use multi thread for different  task id  for sync with server to speed up config sync.
7. fix exception when request with 0 or negative timeouts.
8. simply local snapshot path  when env name over 50 chars
9. add a random sleep in health check for avoid health check syntony.
2023-05-26 17:01:06 +08:00
nov.lzf
505c90b96d
uniform config lastmodified ts & refactor config disk storage. (#10533)
* uniform cache timestamp

* uniform cache timestamp

* uniform cache timestamp

* uniform cache timestamp

* checkstyle & pmd

* revert application properties

* remove duplicate code

* checkstyle and pmd

* bug fix
2023-05-26 09:53:25 +08:00
Karson
6b0df825df
[Optimization] Code optimization for MapUtil (#10461)
* maputil enhancement

* optimization
2023-05-11 11:51:58 +08:00
杨翊 SionYang
0e0a73e025
Revert "[issue #10148]Replace sync forward request with async request (#10158)" (#10358)
This reverts commit a273705b8d.
2023-04-20 20:12:33 +08:00
Zhaohui Yu
a273705b8d
[issue #10148]Replace sync forward request with async request (#10158)
* Replace sync forward request with async request in DistroFilter. issue #10148

* extract method for config default headers

* add env switch for async distro forward.

* Fixed code review problems:
1. Move async forward switch from sys module to naming module.
2. use nacos code style to format code.

* Fixed nacos code checkstyle:
1. one import per Class
2. add javadoc

* In order to avoid additional overhead, move switch from GlobalConfig to ClientConfig and cache the env switch.

* Move switch from ClientConfig to DistroConfig.

* Removed unused import.

* Add test for async forward for DistroFilter

* Add license

* rename test method name

* Should enable async forward

* fixed test

* set async forward request switch to true in test

* fixed test: create and set property with MockEnvironment

* fixed check style

* move MockEnvironment init to BeforeClass

* add setter for asyncForwardRequest switch
2023-04-20 20:10:26 +08:00
杨翊 SionYang
b3b5236cd4
Develop synced from 2.2.2 (#10307)
* Fix dynamic change token to illegal value will use old token.

* Add description in pom for release.

* Upgrade to 2.2.2

* Upgrade to 2.3.0-SNAPSHOT
2023-04-11 17:34:06 +08:00
nov.lzf
c519922280
取消默认openssl (#10276)
* 取消默认openssl

* 连接上下文标签中添加tls.enable

* test fix

* checkstyle
2023-04-07 14:56:13 +08:00
varyuan
2dde125a51
clean code (#10180)
* clean code

* clean code

* clean code

* clean code
2023-03-29 14:25:22 +08:00
chenyiqin
e002cefb6e
Fix fs char (#10101)
* Add PathEncoder for OS to encode if dataId, ns, group contains illegal char for file system

* Add copyright

* Fix checkstyle

* Fix pmd

* fix PathEncoderManager as singleton

* fix ut

* fix checkstyle
2023-03-27 15:04:20 +08:00
nov.lzf
c39ba4a35c
ssl context reload spi (#10150) 2023-03-21 15:27:57 +08:00
云野
6bcae29cc5
add unit tests for AbstractObjectUtils. (#10138)
add unit tests for AbstractAssert.
add unit tests for GrpcUtils.
2023-03-21 13:48:21 +08:00
githubcheng2978
214e0c9077
nacos grpc connection supports TLS Encryption (#9980)
support tls encryption on grpc transport on client and server side

---------

Co-authored-by: githubcheng2978 <yeliang.cheng@freemud.com>
2023-03-15 09:41:25 +08:00
t8g
74b81be92c
fix:Utility classes should not have public constructors (#10019) 2023-03-06 09:39:43 +08:00
WangLiang/王良
a397c10a54
Optimize the nacos-client/pom.xml for exclude google/**/*.proto (#9982)
* Optimize the pom.xml of the nacos-client

* optimize pom

* exclude `google/**/*.proto`

* tab

* Remove dependency `io.grpc:protoc-gen-grpc-java:${version}:pom`

* revert indent

* revert native-image
2023-03-01 09:42:15 +08:00
胡俊
579571ceb3
[ISSUE #9860] abstract the nacos logback configurator to solve the problem between different version (#9934)
* logback update

* update comment

* ident update

* comment update

* judge version

* remove logback-adapter
2023-02-22 11:20:46 +08:00
t8g
90bfe0af9e
Fixed some minor bugs in CollectionUtils.java (#9989)
* fix:CollectionUtils下for循环中的字符串拼接改用StringBuilder

* fix:The LinkedHashSet in CollectionUtils.java lacks a generic

* docs:a is used before a consonant; an is used before a vowel
2023-02-22 11:17:36 +08:00
ZhangShenao
815197cdf1
[ISSUE #9930] fix word spelling error in com.alibaba.nacos.common.http.AbstractHttpClientFactory#ASYNC_IO_REACTOR_NAME (#9931)
* code optimization for `ConfigChangeHandler`

* [ISSUE #9930] fix word spelling error in com.alibaba.nacos.common.http.AbstractHttpClientFactory#ASYNC_IO_REACTOR_NAME
2023-02-13 09:45:59 +08:00
xzxiaoshan
41f03fea0f
[ISSUE#9730] 对多数据源插件代码进行调整(向前兼容) (#9784)
* Upgrade to 2.2.1-RC (#9741)

* 补充处理所有 tenantId

* 补充处理 tenantId

* 处理tenantid,内部类引用的变量不能被修改,换个变量名

* 新增支持:nacos 默认的 tenant/namespaceId 为空字符串,自 nacos 2.2.0 版本起开始支持多数据源插件,为空的 ID 会在 oracle 数据库适配中出现问题 ( where tenantid = '' ),本次修改对以往程序不产生影响。

* 固定填充的ID为public,完全自定义没有太大意义,目的是在保证默认id不为空,可选填充,不配置默认照旧

* fix bug

* 将通用的SQL提取到Mapper接口中,这样能很大的降低不同数据库需要重写的SQL的量,同时避免了大量的重复代码问题。

* 将原来sql中固定写死的 tenant_id = ''  修改为 tenant_id =  NamespaceUtil.getNamespaceDefaultId() 。暂时没深究为什么不用问号动参而是固定写死。

* 方法提取到 mapper 接口中,顺便解决了多余 paramList 定义的(虽然这个方法好像已经弃用)

* 方法迁移到接口默认实现中

* 恢复 publci id 默认值为空值 "",等以后决策好使用默认值为 "public" 时,再设置 NAMESPACE_PUBLIC_ID_DEFAULT="public" 即可。

* 回滚 Controller 层对 tenant_id 的处理,另起PR讨论和修改。

* code style

* 变量名称和注释未通过 checkStyle 检查,按规范调整。

* nacos check style 修改,无代码变动

* fix code

* fix checkstyle

* fix checkstyle 去除多余的 return

* fix pmd

* fix test unit bug

* 因为将sql提取到 mapper 接口中,一些不影响sql语句运行的sql,有空格等差异,出现了test用例差异问题,逐个处理。比如(where a =? 和 where a= ?)

Co-authored-by: 杨翊 SionYang <xiweng.yy@alibaba-inc.com>
2023-01-16 16:14:29 +08:00
云野
732e7012ab
Provide more configuration items to allow users to customize their grpc services to better optimize network performance. (#9806) 2023-01-11 09:47:15 +08:00
gongzhongqiang
708387c277
fix:replace nacos website url to https. (#9797) 2023-01-10 09:47:52 +08:00
zz630
20145fd256
enhancement: CloseableHttpAsyncClient does not clean up expired and i… (#9727)
* enhancement: CloseableHttpAsyncClient does not clean up expired and invalid connections (#9708)

* enhancement: CloseableHttpAsyncClient does not clean up expired and invalid connections (#9708)

* style:satisfy style/NacosCheckStyle.xml

* add unit test(#9708)

* Revert "add unit test(#9708)"

This reverts commit 939905cb56f30af4d0ec35543d6d630f0777eb98.

* add unit test
2023-01-05 10:04:27 +08:00
nov.lzf
69047073c6
修改长连接request response 类注册逻辑,由类扫描改成手动注册 (#9738)
* 修改request response 类加载逻辑,有类扫描改成手动注册

* 优化注册方式,直接SPI注册payload
2022-12-21 19:56:21 +08:00
nov.lzf
acc8ab46cf
Refactor connection limit module to plugin (#9653)
* 限流插件提交

* 限流插件提交

* 限流插件提交

* 限流插件重构提交

* connection control test case submit

* tps control test case submit

* tps control test case submit

* tps control test case submit

* exact model has higher priority

* exact model has higher priority

* tpsreporter

* tpsreporter

* tpsreporter

* check style

* log optimize

* interceptor

* checkstyle

* tps check

* configController query http

* rename component

* 优化参数命名

* 优化参数命名

* 优化参数命名

* 优化参数命名

* optimize connection manager

* optimize connection manager

* optimize connection manager

* optimize connection manager

* interceptor to mse

* Monitor Model

* Monitor Model

* revert opensource tps ability

* revert opensource tps ability

* revert opensource tps ability

* revert opensource tps ability

* revert opensource tps ability

* revert opensource tps ability

* opensource submit

* opensource submit

* check style

* check style

* pmd ,rat

* update db params

* test case fix

* 简化开源反脆弱实现

* test case

* test  case fix

* 修复单测

* 修复单测

* 修复单测
2022-12-06 16:15:51 +08:00
elsez
e23ec89892
perf: Code optimization points (#9552)
* perf: Replace the dead loop with while

* perf: Jump statements should not be redundant

* Update CredentialWatcher.java

Co-authored-by: elsez <67528597+zhantiao@users.noreply.github.com>
2022-11-22 15:29:07 +08:00
Bharati Kulkarni
66c3899ecb
[ISSUE #9643] Fixed Possible JSON Ordering Permutations Problem in Tests (#9505)
* Fixed Flaky Test

* Fix Updated
2022-11-17 11:40:36 +08:00
Weizhan Yun
506bc26f4d
[ISSUE #9393] 设置线程为守护线程,保证在main线程推出时应用程序能过正常关闭。 (#9396)
* 设置线程为守护线程,保证在main线程退出时应用程序能过正常关闭。

* graceful shutdown naming executetask engine.
2022-11-03 13:44:00 +08:00
KomachiSion
f56dedc7fe Fix sync connection client not removed. 2022-10-27 12:11:06 +08:00
KomachiSion
8410fbccf3 Merge remote-tracking branch 'upstream/2.2.0' into asoc2022_issue#8461
# Conflicts:
#	config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java
2022-10-25 14:52:32 +08:00
Liu Yixiao
03345fd923
[ISSUE #8461] Enhance Nacos monitor observability system (#9038)
* Enhance MetricsMonitor with several new metrics

* Add config read and write rt

* Add ServiceEvent publisher queue size

* Add fuzzy search count

* Add naming subscriber and publisher count with v1 or v2 version tag

* Add config subscriber count with v1 or v2 version tag

* Add pending push task count and empty push count metrics

* collect pending push task count by scheduled task

* add unit test for increment metrics in NacosMonitorPushResultHook

* Add topn counter container and topn config change

* Create private MeterRegistry for config change

* Add scheduled clear for config change count, add removeAll for TopnCounterMetricsContainer

* Add topn service change

* Reconstruct metrics monitor with NacosMeterRegistryCenter.

* divide globalRegistry to different modules' CompositeMeterRegistry

* Add dynamic meters refresh service for config and naming module

* fix unit test

* Add try catch when init NacosMeterRegistryCenter
2022-10-25 11:31:29 +08:00
KomachiSion
696d489423 Merge remote-tracking branch 'upstream/2.2.0' into 2.2.0-summer#8312
# Conflicts:
#	plugin/pom.xml
2022-10-24 15:37:47 +08:00
BoyuLi4
68811a7ad9
Update JacksonUtilsTest.java (#9340) 2022-10-21 09:43:54 +08:00
胡俊
0bd589cb6d
[ISSUE#8857] collect client info (#9202)
* collect client info #8857

* collect client info #8857

* collect client info #8857

* collect client info #8857

* collect client info #8857

* collect client info #8857
2022-10-19 09:40:34 +08:00
杨翊 SionYang
b1ac88be78
[ISSUE#8481] Add Trace Event SPI for Naming. (#9336)
* Add Trace plugin spi.

* Add NacosCombinedTraceSubscriber

* Subscribe NamingTraceEvent when start up cluster.

* Fix test error.
2022-10-18 09:30:37 +08:00
杨翊 SionYang
ee3ae0034f
Fix #9269, RpcClient support parse ipv6 address. (#9312) 2022-10-13 09:45:22 +08:00
ruansheng
71d7d36951
[ISSUE #9227] fix subscriber scopeMatches (#9233) 2022-09-28 16:21:09 +08:00
杨翊 SionYang
45165f7c06
[ISSUE#8650] Make cluster/report both receive and send metadata. (#9228)
* cluster/report api return self information.

* Update metadata when received report response.

* Add UT for handle report member info response.

* For checkstyle.
2022-09-28 14:43:14 +08:00
Pixy Yuan
04fe7eab2f
Support client hash revision for DISTRO (#9214)
* [ISSUE #9210] Using hash as ephemeral clients' revision for DISTRO verification.

* [ISSUE #9210] Improve performance of ephemeral client hash calc.

* [ISSUE #9210] Remove calculation for ephemeral client's subscribers.

* [ISSUE #9210] Persist and sync revision for clients.

* [ISSUE #9210] Improve hash of ephemeral client.

* [ISSUE #9210] Improve performance of hash calc for clients.

* [ISSUE #9210] Make distro verification compatible with zero revision from old servers.

* [ISSUE #9210] Log clientId when VERIFY-FAILED.

* [ISSUE #9210] Fix long class cast exception to REVISION.

* [ISSUE #9210] Just renew clients when verify v2 clients on v1 mode.

* [ISSUE #9210] Add UTs for ephemeral client verification.

* [ISSUE #9210] Fix codestyle.

* [ISSUE #9210] Fix IpPortBasedClientTest.

* [ISSUE #9210] Fix codestyle.

* [ISSUE #9210] Fix license.

* [ISSUE #9210] Fix ConcurrentHashSetTest cases to verify concurrent modification properly.

* [ISSUE #9210] Fix codestyle.
2022-09-28 13:56:33 +08:00
KomachiSion
a2b997f6a7 Fix print logs for NamingTraceEvent. 2022-09-22 13:58:18 +08:00
KomachiSion
b7f25e07d2 For checkstyle. 2022-09-07 11:57:31 +08:00
KomachiSion
1e9b18cd75 only load grpc config from system one time. 2022-09-07 11:53:15 +08:00
KomachiSion
3d7bda84f7 Rename DefaultClientConfig > DefaultGrpcClientConfig 2022-09-07 10:21:36 +08:00
KomachiSion
fb71b4ccd9 Refactor DefaultClientConfig for readability. 2022-09-07 09:59:34 +08:00
Karson
b36e6a50ab
[ISSUE #9013] Enhance Rpc config related to one RpcClientConfig (#9093)
* enhance rpc config related to one RpcClientConfig

* modify rpcclient unit test

* modify rpcclient unit test

* modify rpcclient unit test

* add RpcClient constructor with properties.

* modify some unit test
2022-09-07 09:43:45 +08:00
阿魁
b8bd1cb90d
Fix the actual number of health check retries less than the set one. (#9080)
* Fix the actual number of health check retries less than the set one.

* update testHealthCheck.
2022-09-06 09:53:06 +08:00