You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2022/12/29 07:24:46 UTC

[GitHub] [apisix] ronething opened a new pull request, #8583: feat: stream subsystem support eureka service discovery

ronething opened a new pull request, #8583:
URL: https://github.com/apache/apisix/pull/8583

   ### Description
   
   <!-- Please include a summary of the change and which issue is fixed. -->
   <!-- Please also include relevant motivation and context. -->
   
   Fixes #7779
   
   now i only add eureka service discovery. and i will create other PRs for other service discovery.
   
   ### Checklist
   
   - [x] I have explained the need for this PR and the problem it solves
   - [x] I have explained the changes or the new features added to this PR
   - [x] I have added tests corresponding to this change
   - [ ] I have updated the documentation to reflect this change
   - [x] I have verified that this change is backward compatible (If not, please discuss on the [APISIX mailing list](https://github.com/apache/apisix/tree/master#community) first)
   
   <!--
   
   Note
   
   1. Mark the PR as draft until it's ready to be reviewed.
   2. Always add/update tests for any changes unless you have a good reason.
   3. Always update the documentation to reflect the changes made in the PR.
   4. Make a new commit to resolve conversations instead of `push -f`.
   5. To resolve merge conflicts, merge master instead of rebasing.
   6. Use "request review" to notify the reviewer after making changes.
   7. Only a reviewer can mark a conversation as resolved.
   
   -->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] ronething commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
ronething commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1059255960


##########
docs/en/latest/discovery.md:
##########
@@ -182,6 +182,8 @@ discovery:
 
 ## Upstream setting
 
+### routes

Review Comment:
   sorry, i will change it later.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] tokers commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
tokers commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1059230391


##########
docs/en/latest/discovery.md:
##########
@@ -243,6 +245,35 @@ Suppose both A-SERVICE and B-SERVICE provide a `/test` API. The above configurat
 
 **Notice**:When configuring `upstream.service_name`,  `upstream.nodes` will no longer take effect, but will be replaced by 'nodes' obtained from the registry.
 
+### stream_routes
+
+Eureka service discovery also supports use in `stream_routes`, the configuration method is similar to `routes`.
+
+```shell
+$ curl http://127.0.0.1:9180/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
+{
+    "remote_addr": "127.0.0.1",
+    "upstream": {
+        "discovery_type": "eureka",
+        "service_name": "APISIX-EUREKA",
+        "type": "roundrobin"
+    }
+}'
+HTTP/1.1 200 OK
+Date: Fri, 30 Dec 2022 03:06:50 GMT
+Content-Type: application/json
+Transfer-Encoding: chunked
+Connection: keep-alive
+Server: APISIX/3.0.0
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Credentials: true
+Access-Control-Expose-Headers: *
+Access-Control-Max-Age: 3600
+X-API-VERSION: v3
+
+{"key":"\/apisix\/stream_routes\/1","value":{"update_time":1672369610,"id":"1","remote_addr":"127.0.0.1","create_time":1672106762,"upstream":{"discovery_type":"eureka","service_name":"APISIX-EUREKA","pass_host":"pass","scheme":"http","type":"roundrobin","hash_on":"vars"}}}

Review Comment:
   I think this example is not so good because in the stream proxy, why we will have an upstream which schema is `http`?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] ronething commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
ronething commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1059258787


##########
docs/en/latest/discovery.md:
##########
@@ -243,6 +245,35 @@ Suppose both A-SERVICE and B-SERVICE provide a `/test` API. The above configurat
 
 **Notice**:When configuring `upstream.service_name`,  `upstream.nodes` will no longer take effect, but will be replaced by 'nodes' obtained from the registry.
 
+### stream_routes
+
+Eureka service discovery also supports use in `stream_routes`, the configuration method is similar to `routes`.
+
+```shell
+$ curl http://127.0.0.1:9180/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
+{
+    "remote_addr": "127.0.0.1",
+    "upstream": {
+        "discovery_type": "eureka",
+        "service_name": "APISIX-EUREKA",
+        "type": "roundrobin"
+    }
+}'
+HTTP/1.1 200 OK
+Date: Fri, 30 Dec 2022 03:06:50 GMT
+Content-Type: application/json
+Transfer-Encoding: chunked
+Connection: keep-alive
+Server: APISIX/3.0.0
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Credentials: true
+Access-Control-Expose-Headers: *
+Access-Control-Max-Age: 3600
+X-API-VERSION: v3
+
+{"key":"\/apisix\/stream_routes\/1","value":{"update_time":1672369610,"id":"1","remote_addr":"127.0.0.1","create_time":1672106762,"upstream":{"discovery_type":"eureka","service_name":"APISIX-EUREKA","pass_host":"pass","scheme":"http","type":"roundrobin","hash_on":"vars"}}}

Review Comment:
   done.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] spacewander commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
spacewander commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1059252388


##########
t/stream-node/discovery/eureka.t:
##########
@@ -0,0 +1,91 @@
+#

Review Comment:
   Please move the test case under t/discovery/stream. So we don't need to move the `t/stream-node` into the first CI group and also keep the alphabetical order.



##########
t/stream-node/discovery/eureka.t:
##########
@@ -0,0 +1,91 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+use t::APISIX 'no_plan';
+
+repeat_each(1);
+log_level('info');
+no_root_location();
+no_shuffle();
+
+our $yaml_config = <<_EOC_;
+apisix:
+  node_listen: 1984
+deployment:
+  role: data_plane
+  role_data_plane:
+    config_provider: yaml
+discovery:
+  eureka:
+    host:
+      - "http://127.0.0.1:8761"
+    prefix: "/eureka/"
+    fetch_interval: 10
+    weight: 80
+    timeout:
+      connect: 1500
+      send: 1500
+      read: 1500
+_EOC_
+
+run_tests();
+
+__DATA__
+
+=== TEST 1: get APISIX-EUREKA info from EUREKA
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_request eval
+"\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a"
+--- stream_response_like
+.*<name>APISIX-EUREKA</name>.*
+--- error_log
+use config_provider: yaml
+default_weight:80.
+fetch_interval:10.
+eureka uri:http://127.0.0.1:8761/eureka/.
+connect_timeout:1500, send_timeout:1500, read_timeout:1500.
+
+
+
+=== TEST 2: error service_name name
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA-DEMO
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_enable

Review Comment:
   As your first test, we can omit `--- stream_enable`



##########
docs/en/latest/discovery.md:
##########
@@ -182,6 +182,8 @@ discovery:
 
 ## Upstream setting
 
+### routes

Review Comment:
   We should use L4 and L7 instead of routes, as the configuration actually takes effect in the upstream



##########
t/stream-node/discovery/eureka.t:
##########
@@ -0,0 +1,91 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+use t::APISIX 'no_plan';
+
+repeat_each(1);
+log_level('info');
+no_root_location();
+no_shuffle();
+
+our $yaml_config = <<_EOC_;
+apisix:
+  node_listen: 1984
+deployment:
+  role: data_plane
+  role_data_plane:
+    config_provider: yaml
+discovery:
+  eureka:
+    host:
+      - "http://127.0.0.1:8761"
+    prefix: "/eureka/"
+    fetch_interval: 10
+    weight: 80
+    timeout:
+      connect: 1500
+      send: 1500
+      read: 1500
+_EOC_
+
+run_tests();
+
+__DATA__
+
+=== TEST 1: get APISIX-EUREKA info from EUREKA
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_request eval
+"\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a"

Review Comment:
   Would be better to use "GET ...." directly for plaintext requests so other people can understand what's sent.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] spacewander merged pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
spacewander merged PR #8583:
URL: https://github.com/apache/apisix/pull/8583


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] ronething commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
ronething commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1059255960


##########
docs/en/latest/discovery.md:
##########
@@ -182,6 +182,8 @@ discovery:
 
 ## Upstream setting
 
+### routes

Review Comment:
   sorry, i will change it.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] ronething commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
ronething commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1060297325


##########
t/discovery/stream/eureka.t:
##########
@@ -0,0 +1,90 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+use t::APISIX 'no_plan';
+
+repeat_each(1);
+log_level('info');
+no_root_location();
+no_shuffle();
+
+our $yaml_config = <<_EOC_;
+apisix:
+  node_listen: 1984
+deployment:
+  role: data_plane
+  role_data_plane:
+    config_provider: yaml
+discovery:
+  eureka:
+    host:
+      - "http://127.0.0.1:8761"
+    prefix: "/eureka/"
+    fetch_interval: 10
+    weight: 80
+    timeout:
+      connect: 1500
+      send: 1500
+      read: 1500
+_EOC_
+
+run_tests();
+
+__DATA__
+
+=== TEST 1: get APISIX-EUREKA info from EUREKA
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_request eval
+"\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a"

Review Comment:
   i  had a try, but it seem not work. can you help me? 
   
   <img width="876" alt="image" src="https://user-images.githubusercontent.com/28869910/210306708-30fa2444-655d-4566-800d-fa8402a9d4d1.png">



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] ronething commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
ronething commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1059231421


##########
docs/en/latest/discovery.md:
##########
@@ -243,6 +245,35 @@ Suppose both A-SERVICE and B-SERVICE provide a `/test` API. The above configurat
 
 **Notice**:When configuring `upstream.service_name`,  `upstream.nodes` will no longer take effect, but will be replaced by 'nodes' obtained from the registry.
 
+### stream_routes
+
+Eureka service discovery also supports use in `stream_routes`, the configuration method is similar to `routes`.
+
+```shell
+$ curl http://127.0.0.1:9180/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
+{
+    "remote_addr": "127.0.0.1",
+    "upstream": {
+        "discovery_type": "eureka",
+        "service_name": "APISIX-EUREKA",
+        "type": "roundrobin"
+    }
+}'
+HTTP/1.1 200 OK
+Date: Fri, 30 Dec 2022 03:06:50 GMT
+Content-Type: application/json
+Transfer-Encoding: chunked
+Connection: keep-alive
+Server: APISIX/3.0.0
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Credentials: true
+Access-Control-Expose-Headers: *
+Access-Control-Max-Age: 3600
+X-API-VERSION: v3
+
+{"key":"\/apisix\/stream_routes\/1","value":{"update_time":1672369610,"id":"1","remote_addr":"127.0.0.1","create_time":1672106762,"upstream":{"discovery_type":"eureka","service_name":"APISIX-EUREKA","pass_host":"pass","scheme":"http","type":"roundrobin","hash_on":"vars"}}}

Review Comment:
   i will add `"scheme": "tcp"` to request body.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] ronething commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
ronething commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1059258675


##########
t/stream-node/discovery/eureka.t:
##########
@@ -0,0 +1,91 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+use t::APISIX 'no_plan';
+
+repeat_each(1);
+log_level('info');
+no_root_location();
+no_shuffle();
+
+our $yaml_config = <<_EOC_;
+apisix:
+  node_listen: 1984
+deployment:
+  role: data_plane
+  role_data_plane:
+    config_provider: yaml
+discovery:
+  eureka:
+    host:
+      - "http://127.0.0.1:8761"
+    prefix: "/eureka/"
+    fetch_interval: 10
+    weight: 80
+    timeout:
+      connect: 1500
+      send: 1500
+      read: 1500
+_EOC_
+
+run_tests();
+
+__DATA__
+
+=== TEST 1: get APISIX-EUREKA info from EUREKA
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_request eval
+"\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a"
+--- stream_response_like
+.*<name>APISIX-EUREKA</name>.*
+--- error_log
+use config_provider: yaml
+default_weight:80.
+fetch_interval:10.
+eureka uri:http://127.0.0.1:8761/eureka/.
+connect_timeout:1500, send_timeout:1500, read_timeout:1500.
+
+
+
+=== TEST 2: error service_name name
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA-DEMO
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_enable

Review Comment:
   done.



##########
t/stream-node/discovery/eureka.t:
##########
@@ -0,0 +1,91 @@
+#

Review Comment:
   done.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] ronething commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
ronething commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1059255833


##########
t/stream-node/discovery/eureka.t:
##########
@@ -0,0 +1,91 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+use t::APISIX 'no_plan';
+
+repeat_each(1);
+log_level('info');
+no_root_location();
+no_shuffle();
+
+our $yaml_config = <<_EOC_;
+apisix:
+  node_listen: 1984
+deployment:
+  role: data_plane
+  role_data_plane:
+    config_provider: yaml
+discovery:
+  eureka:
+    host:
+      - "http://127.0.0.1:8761"
+    prefix: "/eureka/"
+    fetch_interval: 10
+    weight: 80
+    timeout:
+      connect: 1500
+      send: 1500
+      read: 1500
+_EOC_
+
+run_tests();
+
+__DATA__
+
+=== TEST 1: get APISIX-EUREKA info from EUREKA
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_request eval
+"\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a"

Review Comment:
   i need to send
   
   ```
   GET /eureka/apps/APISIX-EUREKA HTTP/1.1
   Host: 127.0.0.1:1985
   Connection: close
   
   
   ```
   
   which include "\r\n", can you tell me how to send plaintext requests, thanks.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] ronething commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
ronething commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1060305314


##########
t/discovery/stream/eureka.t:
##########
@@ -0,0 +1,90 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+use t::APISIX 'no_plan';
+
+repeat_each(1);
+log_level('info');
+no_root_location();
+no_shuffle();
+
+our $yaml_config = <<_EOC_;
+apisix:
+  node_listen: 1984
+deployment:
+  role: data_plane
+  role_data_plane:
+    config_provider: yaml
+discovery:
+  eureka:
+    host:
+      - "http://127.0.0.1:8761"
+    prefix: "/eureka/"
+    fetch_interval: 10
+    weight: 80
+    timeout:
+      connect: 1500
+      send: 1500
+      read: 1500
+_EOC_
+
+run_tests();
+
+__DATA__
+
+=== TEST 1: get APISIX-EUREKA info from EUREKA
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_request eval
+"\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a"

Review Comment:
   i use code like below and add comment. so maybe other people can understand what's sent.
   
   ```
   add_block_preprocessor(sub {
       my ($block) = @_;
   
       if (!$block->stream_request) {
           # GET /eureka/apps/APISIX-EUREKA HTTP/1.1\r\nHost: 127.0.0.1:1985\r\nConnection: close\r\n
           $block->set_value("stream_request", "\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a");
       }
   
   });
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] soulbird commented on pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
soulbird commented on PR #8583:
URL: https://github.com/apache/apisix/pull/8583#issuecomment-1367693112

   We need to describe in the document that nacos service discovery is available at layer 4.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] ronething commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
ronething commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1060305314


##########
t/discovery/stream/eureka.t:
##########
@@ -0,0 +1,90 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+use t::APISIX 'no_plan';
+
+repeat_each(1);
+log_level('info');
+no_root_location();
+no_shuffle();
+
+our $yaml_config = <<_EOC_;
+apisix:
+  node_listen: 1984
+deployment:
+  role: data_plane
+  role_data_plane:
+    config_provider: yaml
+discovery:
+  eureka:
+    host:
+      - "http://127.0.0.1:8761"
+    prefix: "/eureka/"
+    fetch_interval: 10
+    weight: 80
+    timeout:
+      connect: 1500
+      send: 1500
+      read: 1500
+_EOC_
+
+run_tests();
+
+__DATA__
+
+=== TEST 1: get APISIX-EUREKA info from EUREKA
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_request eval
+"\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a"

Review Comment:
   i use code like below and add comment. so maybe other people can understand what's sent.
   
   ```
   add_block_preprocessor(sub {
       my ($block) = @_;
   
       if (!$block->stream_request) {
           # GET /eureka/apps/APISIX-EUREKA HTTP/1.1\r\nHost: 127.0.0.1:1985\r\nConnection: close\r\n\r\n
           $block->set_value("stream_request", "\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a");
       }
   
   });
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [apisix] spacewander commented on a diff in pull request #8583: feat: stream subsystem support eureka service discovery

Posted by GitBox <gi...@apache.org>.
spacewander commented on code in PR #8583:
URL: https://github.com/apache/apisix/pull/8583#discussion_r1060290345


##########
t/discovery/stream/eureka.t:
##########
@@ -0,0 +1,90 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+use t::APISIX 'no_plan';
+
+repeat_each(1);
+log_level('info');
+no_root_location();
+no_shuffle();
+
+our $yaml_config = <<_EOC_;
+apisix:
+  node_listen: 1984
+deployment:
+  role: data_plane
+  role_data_plane:
+    config_provider: yaml
+discovery:
+  eureka:
+    host:
+      - "http://127.0.0.1:8761"
+    prefix: "/eureka/"
+    fetch_interval: 10
+    weight: 80
+    timeout:
+      connect: 1500
+      send: 1500
+      read: 1500
+_EOC_
+
+run_tests();
+
+__DATA__
+
+=== TEST 1: get APISIX-EUREKA info from EUREKA
+--- yaml_config eval: $::yaml_config
+--- apisix_yaml
+stream_routes:
+  -
+    id: 1
+    server_port: 1985
+    upstream:
+      service_name: APISIX-EUREKA
+      discovery_type: eureka
+      type: roundrobin
+
+#END
+--- stream_request eval
+"\x47\x45\x54\x20\x2f\x65\x75\x72\x65\x6b\x61\x2f\x61\x70\x70\x73\x2f\x41\x50\x49\x53\x49\x58\x2d\x45\x55\x52\x45\x4b\x41\x20\x48\x54\x54\x50\x2f\x31\x2e\x31\x0d\x0a\x48\x6f\x73\x74\x3a\x20\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31\x3a\x31\x39\x38\x35\x0d\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a"

Review Comment:
   Maybe you can write `\r\n` directly in the string?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org