feat(zookeeper): support zookeeper service discovery#6751
Conversation
| $ git clone https://github.com/api7/apisix-seed.git | ||
| $ go build |
There was a problem hiding this comment.
| $ git clone https://github.com/api7/apisix-seed.git | |
| $ go build | |
| git clone https://github.com/api7/apisix-seed.git | |
| go build |
| 2. Start the Zookeeper service | ||
|
|
||
| ```bash | ||
| $ docker run -itd --rm --name=dev-zookeeper -p 2181:2181 zookeeper:3.7.0 |
There was a problem hiding this comment.
| $ docker run -itd --rm --name=dev-zookeeper -p 2181:2181 zookeeper:3.7.0 | |
| docker run -itd --rm --name=dev-zookeeper -p 2181:2181 zookeeper:3.7.0 |
|
|
||
| ### How apisix-seed works | ||
|
|
||
|  |
There was a problem hiding this comment.
I think explaining the architecture diagram can help users understand.
There was a problem hiding this comment.
Sure. And better to avoid adding an uneditable PNG image.
| 3. Start `apisix-seed` to monitor service changes | ||
|
|
||
| ```bash | ||
| $ ./apisix-seed |
There was a problem hiding this comment.
| $ ./apisix-seed | |
| ./apisix-seed |
| is `APISIX-ZK`. | ||
|
|
||
| ```shell | ||
| $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d ' |
There was a problem hiding this comment.
| $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d ' | |
| curl http://127.0.0.1:9080/apisix/admin/routes/1 \ | |
| -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d ' |
| }' | ||
| ``` | ||
|
|
||
| ### Register service and verify request |
| ```bash | ||
| $ docker exec -it ${ContainerID} /bin/bash | ||
| oot@ae2f093337c1:/apache-zookeeper-3.7.0-bin# ./bin/zkCli.sh | ||
| [zk: localhost:2181(CONNECTED) 0] create /zookeeper/APISIX-ZK '{"host":"127.0.0.1:1980","weight":100}' | ||
| Created /zookeeper/APISIX-ZK | ||
| ``` |
There was a problem hiding this comment.
I don't think it's a good idea to put the command and return in the same block of code.
| 1. Service registration using Zookeeper CLI | ||
|
|
||
| ```bash | ||
| $ docker exec -it ${ContainerID} /bin/bash |
There was a problem hiding this comment.
| $ docker exec -it ${ContainerID} /bin/bash | |
| docker exec -it ${ContainerID} /bin/bash |
| curl -i http://127.0.0.1:9080/zk/hello | ||
| HTTP/1.1 200 OK | ||
| Connection: keep-alive | ||
| Content-Type: text/html; charset=utf-8 | ||
| Date: Tue, 29 Mar 2022 08:51:28 GMT | ||
| Server: APISIX/2.12.0 | ||
| Transfer-Encoding: chunked | ||
|
|
||
| hello |
| ```bash | ||
| $ vim conf/conf.yaml | ||
| etcd: # APISIX ETCD Configure | ||
| host: | ||
| - "http://127.0.0.1:2379" | ||
| prefix: /apisix | ||
| timeout: 30 | ||
|
|
||
| discovery: | ||
| zookeeper: # Zookeeper Service Discovery | ||
| hosts: | ||
| - "127.0.0.1:2181" | ||
| prefix: /zookeeper | ||
| weight: 100 # default weight for node | ||
| timeout: 10 # default 10s | ||
| ``` |
There was a problem hiding this comment.
I don't think it's a good idea to put the command and return in the same block of code.
|
@hf400159 all updated, please review |
| @@ -0,0 +1,144 @@ | |||
| --- | |||
| title: nacos | |||
|
|
||
|  | ||
|
|
||
| `apisix-seed` completes data exchange by watch the changes of `etcd` and `zookeeper` at the same time. |
There was a problem hiding this comment.
| `apisix-seed` completes data exchange by watch the changes of `etcd` and `zookeeper` at the same time. | |
| `apisix-seed` completes data exchange by watching the changes of `etcd` and `zookeeper` at the same time. |
|
|
||
| The process is as follows: | ||
|
|
||
| 1. `APISIX` registers a route and specifies the service discovery type as `zookeeper` to `etcd`. |
| The process is as follows: | ||
|
|
||
| 1. `APISIX` registers a route and specifies the service discovery type as `zookeeper` to `etcd`. | ||
| 2. `apisix-seed` watch the resource changes of `APISIX` in `etcd` and filters the discovery type and obtains the service name. |
There was a problem hiding this comment.
| 2. `apisix-seed` watch the resource changes of `APISIX` in `etcd` and filters the discovery type and obtains the service name. | |
| 2. `apisix-seed` watches the resource changes of `APISIX` in `etcd` and filters the discovery type and obtains the service name. |
There was a problem hiding this comment.
Hi @shuaijinchao, to avoid typos, we could use https://www.grammarly.com/ to check our content :)
| @@ -0,0 +1,3 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |||
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="833px" height="322px" viewBox="-0.5 -0.5 833 322" content="<mxfile host="Electron" modified="2022-04-03T05:49:18.486Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.2.4 Chrome/96.0.4664.174 Electron/16.1.0 Safari/537.36" etag="wXR8hLJQ5RhEoX-8Eujk" version="17.2.4" type="device"><diagram id="229I2xH1ZpOIAD6xua3H" name="第 1 页">5Vpbc5s4FP41zHQf3EESYPzoOE6b3exMp8lOk7zJIANbQBTkxO6vr2TETWDHFxxnkhcbHV0sne87n46ENTSJll9SnPj/UpeEGtTdpYYuNQjBCCH+JSyr3GKPYG7w0sCVjSrDbfCbSKMurYvAJVmjIaM0ZEHSNDo0jonDGjacpvS52WxOw+avJtgjLcOtg8O29UfgMl+uAg4r+1cSeH7xy8Aa5TURLhrLlWQ+dulzzYSmGpqklLL8KVpOSCicV/gl73e1obacWEpitkuH77/w47Xxz+UUPd7rd3+TH3GEBsXknnC4kCsef7u+vb4f3E6nl3LibFV4I6WL2CViQKChi2c/YOQ2wY6ofeb4c5vPolBWZyylP0uv8fVezGnMrnAUhIIMd9inERbWIAwnNKTp+jeQaxLbNcr+tRobzpBl8Ro5Z5IystzoDVD6mJOT0IiwdMWbyA7IkCuXvASWLD9XKAMkbX4NYVPasCSWVw5d+Z4/SPfvAwVquZu4nIuySFPmU4/GOJxW1osKEJ2XqjY3lCYShv8JYysZWHjBaBMksgzYfe35QQz12ZSly6UceV1YFYWYr7fsJAq1XqJYdVuXin7d8LdpkvtBLH47uNxXdJE6ZJtTC83AqUfYtoawmy4pCTELnpoz6cJ+3XWcpnhVa5DQIGZZbeRvwlCx0EJNFhqmEsNq++Fx7ZFhKjzNZ1yxtlz6EUQGGzTlPHKCiT13uuTEcmwym/cjJyZQgEHnlhNkn1NOKgl5qNW8ICc1BXloCMjbkRO4q5xsoMvOcnIU9obVisChNkWarWs2+E7mKcl8kaKQiMpfU2lyg2c8kWtAi8PAi/mzw71GeAhdiIAJeKY0lhVR4Lo5i0gW/Maz9XgCKKmCfHDzQjMvN0K3MQ5lcieHrFKqOoRbgmBj1A70zzAXxD11vhLaogmdzzPOCBW5PuQUtsCc3k3OlJudRUwRPLeYQqOFQTtsYncsDhwiREKcZYHTdHlTWw/NoXYFrluIS+3tFOKzCKXeTYUa1OYWpA8N24JplsI0oDAoX6jstSXRMmzlODFSBsod0RqoN5EwWwR9pJwoJOFS/X6VApj2W1OKYe9KUUTyHie0nVXiwNSrT6XQd1UK85xKgZCpBPjwMKWAykAIKAOdWCmM484F4MhzwSHXDLr25q8Z7CNJfNprBgDVawNzK0fV9q9zbWC3lHNyc/2BNq83cGfQziJ62rz2uV48dvMCL+hDn3Fv7hr3Z01zoa2mSdZhmxdS0lwIlIFOvXl1ncOskAnWJDhuMNX6tRCvVtbkGWTrjWnMGwCYLPnXmgf6DDs/vTVjB04e5KJJ6s0+QbFP8sXyeerQGFXPpv5XNTZ/8sS3Wd6ufBGXAHpG0qeAMwfqjo9jj2TFLPmq84nm/Tq34vdy97Jhq6vuXnSAmrwcgF7ormRqsNn/dDc1qPfcf38p3C9VOuS6tk/53Dn3h+eUTwONFNUbHSafpj5s6vBry2d7f7dK5fovcTETkkWY475rYRq+JExwNLSawmT0sw+/mhKNWkCD2gsAL8gEWnw9dCEgV7Dmnmang1kcDvPtuJaiFyl2TGOi5OOFaT927J6Gt96RDjvScNChLvBUaXjx14QaerBE74qHp3h54waZQ/nCxUrYKhGBi2O3kXvEOPro4JrKSRZ2nLGg8argtt+Oo67QrGAMhUnktuSJyH3h4wIK9JcBBfarAgpbgBpdgFLxsSg22RLeD43mwIRN7R11oDnsB01erP5sl2+01V8W0fQP</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs><style type="text/css">@import url(https://fonts.googleapis.com/css?family=Nanum+Gothic);
</style></defs><g><rect x="392" y="1" width="130" height="50" rx="7.5" ry="7.5" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 26px; margin-left: 393px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">APISIX-SEED</div></div></div></foreignObject><text x="457" y="30" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">APISIX-SEED</text></switch></g><path d="M 692 296 L 682 296 L 682 291 L 722 291 L 722 186 L 700.24 186" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 694.24 186 L 702.24 182 L 700.24 186 L 702.24 190 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="562" y="271" width="130" height="50" rx="7.5" ry="7.5" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 296px; margin-left: 563px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">APISIX</div></div></div></foreignObject><text x="627" y="300" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">APISIX</text></switch></g><path d="M 627 211 L 627 262.76" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 627 268.76 L 623 260.76 L 627 262.76 L 631 260.76 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 235px; margin-left: 628px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">7、Refresh memory</div></div></div></foreignObject><text x="628" y="238" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="11px" text-anchor="middle">7、Refresh memory</text></switch></g><rect x="562" y="161" width="130" height="50" rx="7.5" ry="7.5" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 186px; margin-left: 563px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ETCD</div></div></div></foreignObject><text x="627" y="190" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">ETCD</text></switch></g><path d="M 627 161 L 527.06 32.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 523.37 27.76 L 531.44 31.62 L 527.06 32.5 L 525.13 36.54 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="210" y="161" width="130" height="50" rx="7.5" ry="7.5" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 186px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Zookeeper</div></div></div></foreignObject><text x="275" y="190" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">Zookeeper</text></switch></g><path d="M 392 26 L 280.39 154.78" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 276.46 159.31 L 278.68 150.65 L 280.39 154.78 L 284.73 155.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 210 296 L 182 296 Q 172 296 172 286 L 172 196 Q 172 186 182 186 L 201.76 186" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 207.76 186 L 199.76 190 L 201.76 186 L 199.76 182 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="210" y="271" width="130" height="50" rx="7.5" ry="7.5" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 296px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CLI</div></div></div></foreignObject><text x="275" y="300" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">CLI</text></switch></g><path d="M 340 186 L 451.61 57.22" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 455.54 52.69 L 453.32 61.35 L 451.61 57.22 L 447.27 56.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 133px; margin-left: 404px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; background-color: rgb(248 , 249 , 250)">5、Get service changes</span></div></div></div></foreignObject><text x="404" y="136" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="11px" text-anchor="middle">5、Get service changes</text></switch></g><path d="M 457 51 L 556.94 179.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 560.63 184.24 L 552.56 180.38 L 556.94 179.5 L 558.87 175.46 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 101px; margin-left: 493px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">6、Update etcd</div></div></div></foreignObject><text x="493" y="105" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="11px" text-anchor="middle">6、Update etcd</text></switch></g><rect x="722" y="211" width="110" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 221px; margin-left: 777px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">1、Register route</div></div></div></foreignObject><text x="777" y="225" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">1、Register route</text></switch></g><rect x="572" y="71" width="240" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 81px; margin-left: 692px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">2、Fetch discovery type and service name</div></div></div></foreignObject><text x="692" y="85" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">2、Fetch discovery type and service name</text></switch></g><rect x="152" y="71" width="180" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 81px; margin-left: 242px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">3、Register service listen event</div></div></div></foreignObject><text x="242" y="85" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">3、Register service listen event</text></switch></g><rect x="0" y="231" width="170" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 241px; margin-left: 85px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">4、Register or update service</div></div></div></foreignObject><text x="85" y="245" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">4、Register or update service</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> | |||
There was a problem hiding this comment.
Some arrows are pointing in the wrong direction, like zookeeper gets service from seed...
| @@ -0,0 +1,3 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |||
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="686px" height="322px" viewBox="-0.5 -0.5 686 322" content="<mxfile host="Electron" modified="2022-04-06T02:22:41.679Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.2.4 Chrome/96.0.4664.174 Electron/16.1.0 Safari/537.36" etag="euXTh_QUrkwchpiIlyS1" version="17.2.4" type="device"><diagram id="229I2xH1ZpOIAD6xua3H" name="第 1 页">7Vpbc5s4FP41zHQf3AEJMH50HKebbnam06TTJG8yyMAGEAXZsffXVwJxEWDHDr5kvPtio6MbR+fTdy62Aifh6kuCYu9v4uBAAaqzUuC1AoCmqSb74pJ1LrFGIBe4ie+IQZXg3v8XC6EqpAvfwak0kBISUD+WhTaJImxTSYaShLzKw+YkkHeNkYtbgnsbBW3pT9+hntACDCv5n9h3vWJnzRzlPSEqBgtNUg855LUmglMFThJCaP4UriY44IdXnEs+72ZDb/liCY7oLhO+/0LPt/pf11P4/Kg+fMU/oxAOipdbomAhNB5/u72/fRzcT6fX4sXpujiNhCwiB/MFNQVevXo+xfcxsnnvK7M/k3k0DER3ShPyUp4a0/dqTiJ6g0I/4GB4QB4JEZf6QTAhAUmyPaBjYMvRy/m1HgvMoGmynrbq4jSWOKF4VROJo/iCSYhpsmZDRC/UheYCl5op2q+VlTUoZF7NwoaQIQEst1y6Onv2II5/H1PA1nFjh2FRNElCPeKSCAXTSnpVGURlrWrMHSGxMMM/mNK1uFhoQYlsJLzy6WPt+Ykv9dkQreuVWDlrrItGxPQtJ/FGbRZvVtOyVjGv2/xtmGw0b0oWiY23nWFBEShxMd02ULAQP+GtcElwgKi/lNmgy/bZ1HGSoHVtQEz8iKa1lb9xQYVCE8oo1I3GHW6OH/YbD3WjgdP8jSvUlqrvBOSX59l0Oban7hrd3MVw/OPZigajFqUowAwoN3WMIgnh5q8Fp78MGYO5gMZY4axkojDOsAAhJwOaw6Up5kOzz2yFNEM5n6+BeFX2zZD94mY3ZWDnbMKHJO7sE9CtbDOmqAr0UfVsqH9Ub8eeXP6tKVOoWKpiad+x66cUJ3wZsqC4UJCdV65jPqHzQt+hGfOR0iVEge9G7NlmgGeLwivOYz5zQmPREfqOk993zHREs2w9rp0AGFvcuFKM63LPFhGWHlJMrvxS/Z5tIaaNTKp+Zs7akGA2EFvud3la6B3JE8h8nrJL3eTZ/RC7lTZaXvA8DhBha253OUDTtvBsfhgHaGgNKoHndoDQOqcDrJzeU63nDQdY83lPkss7mwMEuzpA7dAOsJftdbN1A4c1tp0z3vN4UI1DInY7Ma12m25HBi2QvTMrb7y1A8a2Rj9yPQGdgpYxpw+TM2UTZyFTCM5NpgVKajZ4JuwAcMyjlos1hGZYH80Qw45wuMlfkTPmtQrOVQFKU9+Wj1x2cqXH2iNl29Vo7/VsPTyWuqvHMnb0WDVTG1ss3TM4hVCOebXRUF4i11zM2pKjgcZCUGsslJ9Ma6FDpWtd+LyIdA12pWspTpY+AyRQAy7i+uElB+1FZ3DDt4IKTTc1CYUD/SC3pKS/40cder/0QeuZPrynfqYqH61+Zh2ajI9bP9NAsx4m1bfeHH+SelgR/F8cwepdBEv4xyJ2EK+KVXR7weyaE8+W+piqqXJU2rM8doIMro3Zyd3tfyhv+ADVsIPnDfvnAPu5p/dU0k6RN4APlTfocCQhjSUO78sbDHXYyBvMY+UN3bTXrjCYpUP4UTgATG3nHDTfr15X3L2D1OtGQ/MYoTU4QmDdGb/AQxNRr5L7nr85b4qOG2xwktrF2ShHlaNeAzSc1q6UU/zcXHrJYWOhI5cq9A4kXkQkbZTEecMI05PqFLaHIhenlxJCb6aYrRG0AWQO/UghdKdKbe948PCt13933lXgPTFrgv9Z8wBIbP+0eiGsCVqs6fipTRgxcZTQdczpE0WORKcRCi+mHLGZeLYFpKo1lMkUHuS+NFBeEGAfpmXN6v+x+fDqX8Zw+hs=</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="299" y="1" width="130" height="50" rx="7.5" ry="7.5" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 26px; margin-left: 300px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">APISIX-SEED</div></div></div></foreignObject><text x="364" y="30" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">APISIX-SEED</text></switch></g><path d="M 599 296 L 589 296 L 589 291 L 629 291 L 629 186 L 607.24 186" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 601.24 186 L 609.24 182 L 607.24 186 L 609.24 190 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 232px; margin-left: 640px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-family: "tahoma" ; font-size: 12px ; background-color: rgb(248 , 249 , 250)">1、Register route</span></div></div></div></foreignObject><text x="640" y="235" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">1、Register route</text></switch></g><rect x="469" y="271" width="130" height="50" rx="7.5" ry="7.5" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 296px; margin-left: 470px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">APISIX</div></div></div></foreignObject><text x="534" y="300" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">APISIX</text></switch></g><path d="M 534 211 L 534 262.76" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 534 268.76 L 530 260.76 L 534 262.76 L 538 260.76 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 235px; margin-left: 535px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">7、Refresh memory</div></div></div></foreignObject><text x="535" y="238" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="11px" text-anchor="middle">7、Refresh memory</text></switch></g><rect x="469" y="161" width="130" height="50" rx="7.5" ry="7.5" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 186px; margin-left: 470px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ETCD</div></div></div></foreignObject><text x="534" y="190" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">ETCD</text></switch></g><rect x="117" y="161" width="130" height="50" rx="7.5" ry="7.5" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 186px; margin-left: 118px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Zookeeper</div></div></div></foreignObject><text x="182" y="190" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">Zookeeper</text></switch></g><path d="M 299 26 L 187.39 154.78" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 183.46 159.31 L 185.68 150.65 L 187.39 154.78 L 191.73 155.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 81px; margin-left: 220px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-family: "tahoma" ; font-size: 12px ; background-color: rgb(248 , 249 , 250)">3、Register service listen event</span></div></div></div></foreignObject><text x="220" y="85" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">3、Register service listen event</text></switch></g><path d="M 117 296 L 89 296 Q 79 296 79 286 L 79 196 Q 79 186 89 186 L 108.76 186" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 114.76 186 L 106.76 190 L 108.76 186 L 106.76 182 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 241px; margin-left: 79px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-family: "tahoma" ; font-size: 12px ; background-color: rgb(248 , 249 , 250)">4、Register or update service</span></div></div></div></foreignObject><text x="79" y="244" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">4、Register or update service</text></switch></g><rect x="117" y="271" width="130" height="50" rx="7.5" ry="7.5" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 296px; margin-left: 118px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CLI</div></div></div></foreignObject><text x="182" y="300" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="12px" text-anchor="middle">CLI</text></switch></g><path d="M 364 51 L 463.94 179.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 467.63 184.24 L 459.56 180.38 L 463.94 179.5 L 465.87 175.46 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 101px; margin-left: 400px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Tahoma; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">6、Update etcd</div></div></div></foreignObject><text x="400" y="105" fill="rgb(0, 0, 0)" font-family="Tahoma" font-size="11px" text-anchor="middle">6、Update etcd</text></switch></g><path d="M 364 51 L 252.39 179.78" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 248.46 184.31 L 250.68 175.65 L 252.39 179.78 L 256.73 180.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 120px; margin-left: 304px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-family: "tahoma" ; font-size: 12px ; background-color: rgb(248 , 249 , 250)">5、Fetch service changes</span></div></div></div></foreignObject><text x="304" y="123" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">5、Fetch service changes</text></switch></g><path d="M 429 26 L 528.94 154.5" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 532.63 159.24 L 524.56 155.38 L 528.94 154.5 L 530.87 150.46 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 81px; margin-left: 530px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-family: "tahoma" ; font-size: 12px ; background-color: rgb(248 , 249 , 250)">2、Fetch discovery type and service name</span></div></div></div></foreignObject><text x="530" y="85" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">2、Fetch discovery type and service name</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> | |||
There was a problem hiding this comment.
A tiny issue: etcd doesn't refresh memory of APISIX
Description
support zookeeper service discovery
Checklist