Commit Graph

1246 Commits

Author SHA1 Message Date
Alex Zhang
dd6ee5e99f
improve: use optimistic locking to avoid concurrency problem in admin PATCH APIs. (#2216)
There is a potential concurrency problem in all admin PATCH APIs when
two patch requests come in simultaneously, in such case, the patched
result of the first applied request will be overridden, also the
probability is tidy, but from the perspective of software's robust,
that's not what we wanna to see.

In this commit, we use the optimistic locking to avoid this problem, for
the example aforementioned, the second PATCH request will failure, and
it's up to the user to retry this PATCH request again.

The optimistic locking mechanism in ETCD v3 APIs is showed by it's
transcation mechanism.

Signed-off-by: tokers <zchao1995@gmail.com>
2020-09-18 17:20:55 +08:00
YuanSheng Wang
973c481ef1
chore: get the complete error stack when sync etcd data, it is very useful when a (#2251)
serious error occurs.

Co-authored-by: Wen Ming <moonbingbing@gmail.com>
2020-09-18 15:44:19 +08:00
YuanSheng Wang
4f900390f9
bugfix: independently check the "disabled" field to avoid schema ve… (#2099)
* bugfix: independently check the "disabled" field to avoid `schema` verification
  with other parameters.
2020-09-17 22:31:02 +08:00
Zhang Qiang
d05071868d
fix: return ok in kafka-logger (#2222) 2020-09-17 15:17:51 +08:00
Shuyang Wu
9d1a210413
chore: bump lua-resty-etcd to version 1.2 (#2242)
fix #2238
2020-09-17 13:15:52 +08:00
YuanSheng Wang
68b1f9cc57
bugfix: clear all cached object when got delete action, and removing (#2168)
stale boolean data in table `self.values` with a safer way.
2020-09-17 09:30:44 +08:00
Alex Zhang
e93cdbd48a
change: check etcd cluster version when init_etcd (#2233) 2020-09-16 17:46:53 +08:00
Wen Ming
455e7df005
change: remove dashboard sub module. (#2231) 2020-09-16 17:07:18 +08:00
seven dickens
d1fe72c0a0
bugfix: fixed wrong zipkin Arguments (#2193)
fix #2191
2020-09-16 16:20:24 +08:00
nic-chen
84ce7ba781
feat: add AK/SK(HMAC) auth plugin. (#2192) 2020-09-16 14:27:56 +08:00
Wen Ming
4c227ade8b
doc: added channel at slack and added new qq group. (#2226) 2020-09-16 11:22:33 +08:00
Shuyang Wu
4722198548
feature: support etcd v3 by mocking v2 API (#2036) 2020-09-16 10:19:04 +08:00
罗泽轩
b6354ec33e
feat: allow to limit client body size to protect the service (#2214) 2020-09-15 21:58:30 +08:00
YuanSheng Wang
12a0b13145
bugfix: use the route's has_domain if it contains any upstream object. (#2211) 2020-09-15 12:12:09 +08:00
kv
2999541c49
fix: change the config file when deploying apisix in k8s #2182 (#2185) 2020-09-14 20:06:16 +08:00
seven dickens
312a97c96f
feat: define env in nginx.conf template (#2174)
Co-authored-by: lixiangyang <lixiangyang@dragonest.com>
2020-09-14 18:12:29 +08:00
罗泽轩
faae61e0de
bugfix: load yaml config in privileged agent (#2218) 2020-09-14 17:31:53 +08:00
agile6v
4b756ec41e
doc: fix formatting (#2210) 2020-09-14 14:37:38 +08:00
琚致远
98da870976
doc: fixed typo in health-check.md (#2200) 2020-09-10 19:15:45 +08:00
nic-chen
087f87a7e4
bugfix: grpc-transcode plugin converts http/json parameters abnormally (#2139)
* fix bug

* optimiz

* update grpc_server_example

* add test cases

* fix: test case

* fix: test case

* return val directly

* fix: test case respond body compare text

* fix test case error

Co-authored-by: Wen Ming <moonbingbing@gmail.com>
2020-09-10 18:02:16 +08:00
罗泽轩
37817e4198
chore: add string utility for simplicity and correctness (#2181)
* chore: add string utility for simplicity and correctness

* localize error

* correct the misuse string.find

Co-authored-by: YuanSheng Wang <membphis@gmail.com>
2020-09-10 16:49:20 +08:00
Alex Zhang
1556cd0d7e
improve: cache parsed certs and pkeys to LRU cache (#2163) 2020-09-10 15:35:55 +08:00
maosy
47d39e7b0e
bugfix: serverless plugin not work in header_filter phase (#2148) 2020-09-09 16:12:32 +08:00
Shuyang Wu
3ece377d3f
test case: optimize output of check-plugins-code (#2173) 2020-09-07 09:41:59 +08:00
mark
d2f622e280
plugin(prometheus): update json file for grafana dashboard (#2143) 2020-09-07 08:58:55 +08:00
gy
a8621fb5a1
bugfix: updated the value of remaining when count changes in limit-count plugin. (#2121) 2020-09-06 21:52:13 +08:00
gy
d4216831e3
fix: log-rotate.t is unstable (#2164)
fix #2138
2020-09-06 12:10:42 +08:00
idbeta
ea7b7dd210
doc: remove useless ) in code-style.(#2145) 2020-09-03 14:27:12 +08:00
idbeta
fbe091b588
doc: fix link in documents (#2147) 2020-09-03 13:51:21 +08:00
Wen Ming
d84e3c762a
license: fixed license issue for ewma.lua. (#2136) 2020-08-31 20:54:08 +08:00
nic-chen
502310bef6
feat: support different modes to pass host to upstream (#2132)
* test: using `httpbin.org` for test cases.
* doc: add doc
* remove golang apt repository and runtime in travis.
* download proto file
Co-authored-by: Yuansheng <membphis@gmail.com>
2020-08-30 22:43:28 +08:00
罗泽轩
ff90202566
chore: restrict the apisix/admin routers (#2130)
1. /stream_routes needs to be ended with '/'
2. /list only needs GET method
2020-08-30 17:07:20 +08:00
redynasc
98bb5933d6
feature: implement ewma balancer for upstream node (#2001)
ewma is a different balancing implementation that will generate a weight for every backend IP based on the last server response time, basically it tries to dispatch more requests to the backends that reply faster, supposing that they are less loaded.

fix #1996
2020-08-29 23:14:16 +08:00
Vinci Xu
a3f865aa4b
fix: wait time is too short it will easy fail in some bad hardware environment (#2127) 2020-08-27 16:47:09 +08:00
YuanSheng Wang
4d5ecc1a40
plugin(fault-injection): use draft7 way to rewrite the JSON Schema. (#2105)
fix #2088
2020-08-27 11:47:04 +08:00
Shuyang Wu
fad789481e
doc: add more companies to power-by page (#2109)
* doc: add more companies to power-by page since #1317
2020-08-26 16:55:26 +08:00
nic-chen
c54aec8f6c
feat: support custom access log format (#2122)
fix #2009
2020-08-26 16:51:44 +08:00
YuanSheng Wang
9070a4fa95
feature: implemented plugin log-rotate, rotate log by interval time. (#2097) 2020-08-26 16:40:36 +08:00
罗泽轩
0bb8f4693a
change: allow users to see warnings by default (#2116)
Previously, with the default configure, people don't have the chance to
ignore the warning message.
2020-08-26 14:19:46 +08:00
Shuyang Wu
cd6d3552d3
doc: fix doc use 4 spaces instead of key (#2108) 2020-08-26 09:37:53 +08:00
Wen Ming
8fdb0c2309
doc: updated the architecture diagram to remove RDS. (#2117) 2020-08-25 15:21:47 +08:00
nic-chen
4f83f09eeb
fix: return response code and msg instead of exit directly in plugins. (#2115) 2020-08-25 09:56:45 +08:00
YuanSheng Wang
1aefe915f1
change: update plugin's schema ip-restriction with draft7 way (#2091) 2020-08-24 09:27:49 +08:00
Alex Zhang
2886b2169b
feature: support multiple certificates(RSA and ECC) for single domain (#2089) 2020-08-24 09:23:06 +08:00
YuanSheng Wang
415f9221e2
change: use draft7 of JSON Schema for limit count pulgin (#2102) 2020-08-24 09:17:31 +08:00
Shuyang Wu
403c1204db
doc: add dashboard link in README to sync (#2107) 2020-08-24 09:12:55 +08:00
Shuyang Wu
2c98dd757e
doc: fixed broken link of CONTRIBUTING.md in README (#2104) 2020-08-23 19:17:12 +08:00
Shuyang Wu
6ffd8b9956
doc: Chinese version of plugins request-id (#2103)
fix #2027
2020-08-23 11:17:18 +08:00
YuanSheng Wang
d974c1871a
change: use draft7 style of JSON Schema. (#2100)
fix #2083.
2020-08-22 21:43:21 +08:00
罗泽轩
36bb0a8d3e
chore: should improve the prometheus metric naming (#2073)
By looking at name like `apisix_bandwidth` or `apisix_http_latency`,
it is hard to guess their units. Also, it is not so clear for where does
the overhead come from for `apisix_http_overhead` at the first glance.
2020-08-18 20:42:05 +08:00