Commit Graph

305 Commits

Author SHA1 Message Date
JianBo He
7b43a23734 fix(schema): fix locking strategy typos 2021-05-29 11:32:29 +08:00
k32
7f2bb9b4ee fix(emqx): Add new shared_subscription_strategy atoms to the schema
Fixes: #4808
2021-05-14 09:47:06 +02:00
Zaiming Shi
7afd4940e7 chore(config): do not expose manual rpc peer port config
when using `manual`, all nodes in the cluster should agree
to the same port number, so there is no need to make peer
port number for clients.
2021-05-10 14:26:14 +02:00
Zaiming Shi
94c8add314 chore(config): default log.single_line=true 2021-05-06 11:03:02 +02:00
Zaiming Shi
81da075b9b chore(config): rename log.use_json_formatter to log.formatter 2021-05-06 11:03:02 +02:00
Zaiming Shi
6b0487d69d feat(logger): merge metadata to log data 2021-05-06 11:03:02 +02:00
Zaiming Shi
79181072e2 feat(logger): add formatter emqx_logger_jsonfmt 2021-05-06 11:03:02 +02:00
Zaiming Shi
c4f070c9c6 feat: make log depth configurable 2021-05-06 11:03:02 +02:00
Zaiming Shi
0f30bdadbb feat(logging): make supervisor progress configurable
by default, when primary log level is set to debug or info
application controller prints supervisor progress info.

this new config make use of logger's built-in filters
for progress report
2021-05-03 21:13:36 +02:00
William Yang
e122ac5716 perf(broker): speedup trans when broker has a big mqueue 2021-04-29 08:52:42 +02:00
William Yang
e7fc75fdf2 perf(broker): Optimization for handling bursty traffic
intro. new lock type: 'spawn' of broker.perf.route_lock_type

mnesia get lock calls are not optimized for selective receive.

hence taking locks would be very expensive while there are tones of
messages in the brokers message queue.

This optimization run the transaction in a separate process to utilize
the selective receive optimization of the compiler.
2021-04-28 15:39:46 +02:00
Zaiming Shi
4bdcdfb9b9 chore(config): Add new configs to emqx.conf 2021-04-28 15:19:53 +02:00
Zaiming Shi
bc6a87946c refactor(emqx_trie): store only prefixes
This commit refactors emqx_trie implementation
with mainly two changes

1. Deleted the edge table.

   In the old implementation, trie consist of nodes and edges.
   e.g. for topic 'a/b/+/d', node 'a' with edge 'b'
   points to node 'a/b' and so on.

   However, edges can be computed at runtime,
   so there is no need to store them in a table.
2021-04-26 14:18:40 +02:00
Zaiming Shi
6be28cecab chore(logging): default to multi-line logging 2021-04-26 11:11:27 +02:00
William Yang
907502fed0
Merge pull request #4645 from qzhuyan/dev/william/fix-issue-2985-c3
fix: issue 2985 attempt 3
2021-04-25 12:39:52 +02:00
Zaiming Shi
87a653470e fix(logging): log sasl to tty when console or foreground 2021-04-23 17:12:02 +02:00
William Yang
9b13bab2c9 perf: new perf toggle broker.perf.route_lock_type 2021-04-23 13:51:42 +02:00
Zaiming Shi
fd69969014 refactor(logging): Log to single line 2021-04-23 06:54:10 +02:00
zhanghongtong
ea4a587f6d chore(listeners): delete the port override by the env 2021-04-15 21:50:14 +08:00
zhanghongtong
446a69c814 fix(ws connection): fix peer_cert_as_username error when ws connect 2021-04-15 09:06:27 +08:00
z8674558
a48e7df4f5 feat(emqx_ws_connection): check http header to know real IP/port 2021-04-14 06:45:39 +00:00
Shawn
f902d880c1 fix(emqx): rename wont_clear_alarm_in to min_alarm_sustain_duration 2021-04-10 12:17:04 +08:00
Shawn
df0e905754 refactor(emqx): the congestion alarm 2021-04-10 12:17:04 +08:00
z8674558
9db5452b6c refactor(emqx.schema): use override_env to support alternative env 2021-04-05 17:04:01 +09:00
Zaiming Shi
6c77fa1bf7 fix(emqx_channel): Receive Maximum spec compliance
According to MQTT 5.0 specification
If the Receive Maximum value is absent then its value defaults to
65,535.
2021-03-29 09:42:07 +02:00
Zaiming Shi
b10a60cddb fix(conninfo): Ensure receive_maximum do not exceed limit 2021-03-29 09:42:07 +02:00
Zaiming Shi
e862ff6b20 chore(config): validate max_inflight range 2021-03-29 09:42:07 +02:00
William Yang
49bdcf1332
Merge pull request #4432 from qzhuyan/fix/emqx-4426-wss-listener-rendering
fix(cuttlefish-schema): parse IP addr for SSL listeners.
2021-03-24 18:16:30 +01:00
William Yang
8f6f649703 fix(cuttlefish-schema): parse IP addr for SSL listeners.
Convert IP addr str to tuple to please ranch.

Other types of listeners seem me to be happy with the tuple format as well.

Closes: #4426
2021-03-24 16:29:03 +01:00
Zaiming Shi
a4b30ea77c feat(emqx): Add backtrace_depth configuration 2021-03-23 21:30:49 +01:00
zhanghongtong
2232bca150 chore(config): update enum for config item
The tcp listener's peer_cert_as_clientid and peer_cert_as_username can only be set to cn
2021-03-17 16:30:34 +08:00
zhanghongtong
237603cee6 revert: fix(config): delete peer_cert_as_username and peer_cert_as_clientid in tcp listener
This reverts commit: 4bf0ad1baf
2021-03-17 16:30:34 +08:00
zhanghongtong
4bf0ad1baf fix(config): delete peer_cert_as_username and peer_cert_as_clientid in tcp listener 2021-03-16 19:32:17 +08:00
Zaiming Shi
6b2949e2c1 chore(config): Change default log_to config
By default log to file.
When start from console or forgreground, only log to console.
Only log to file for package builds.
2021-03-02 14:05:04 +01:00
Zaiming Shi
3dfa9f45c4
Merge pull request #4183 from zmstone/merge-e4.2.4-to-dev-4.3.0
Merge e4.2.4 to dev 4.3.0
2021-02-19 10:26:47 +01:00
Zaiming Shi
98b319a0c0
Merge pull request #4190 from zmstone/refactor-assing-names-to-listeners
feat(listeners): Add identifier to listeners
2021-02-19 07:50:27 +01:00
Benjamin Große
28f9b4d519 feat(peer_cert_as_clientid): peer_cert_as_clientid = cn | dn | crt | pem | md5
pem is base64 encoded instead of binary crt

peer_cert_as_username=crt breaks exhook proto utf8 parsing of username

crt cannot be used in a topic name due to being invalid utf8
pem cannot be used in a topic name due to having slashes

peer_cert_as_clientid = md5 allows to e.g. subscribe to "t/%c" with ACL

existing peer_cert_as_username combinations are unaffected.
2021-02-19 10:53:11 +08:00
z8674558
74b7ea34d9 feat(bin): let cuttlefish read env var 2021-02-19 01:09:06 +09:00
Zaiming Shi
153977609e feat(listeners): Add identifier to listeners
Listeners are internally identifiered by the listen-on tuple
which is not UI friendly when we have to find a listener by this
'signature'.

The listeners are actually named in configs, but the names are
discarded in the parsing functions.

This commit is to keep the name and provide an API to find
listener by name (identifier).
2021-02-14 18:12:40 +01:00
Zaiming Shi
9b82112b7c Merge remote-tracking branch 'origin/dev/e4.3.0' into merge-e4.2.4-to-dev-4.3.0 2021-02-13 11:10:08 +01:00
Zaiming Shi
507759b9f1 Revert "refactor(emqx_modules): Move modules config to app dir"
This reverts commit 9cae8784c0.
Because the reverted change broke compatibility with 4.2.x
configuration.
2021-02-11 16:44:12 +01:00
Zaiming Shi
9cae8784c0 refactor(emqx_modules): Move modules config to app dir 2021-02-10 00:02:52 +01:00
Zaiming Shi
5ebf94a50a chore(config): One config
emqx.conf was split into small files for enterprise
which leads to merge difficulties

This commit merges back config into the same file.
2021-02-09 21:34:46 +01:00
tigercl
5878950dc3
feat(websocket): support for checking subprotocols (#4099) 2021-01-28 20:42:57 +08:00
ayodele.akingbule
5794a708ed feat(emqx_ws_connection): Prevent EMQX from CSWSH Cross-Site Web-Socket Hijack 2021-01-15 14:28:22 +01:00
JianBo He
17e0409c09 feat(ssl): supports configuration of keyfile password 2020-12-14 11:24:07 +08:00
Shawn
d00ea48752 feature(tcp): alarm when tcp connection congested 2020-12-07 14:35:38 +08:00
zhanghongtong
ef19e8a08b feat(listener): add depth for ssl listener 2020-12-05 17:01:24 +08:00
zhanghongtong
a3cdae3b42 feat(listener): add depth for ssl listener 2020-11-30 18:51:02 +08:00
Shawn
cc69225b6d feature(tcp): alarm when tcp connection congested (#3818) 2020-11-10 23:36:11 +08:00