Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 带有url参数的Kubernetes入口路由_Spring Boot_Kubernetes - Fatal编程技术网

Spring boot 带有url参数的Kubernetes入口路由

Spring boot 带有url参数的Kubernetes入口路由,spring-boot,kubernetes,Spring Boot,Kubernetes,因为明天我将没有wifi,这更像是一种理论上的捏造。我需要在“脱机模式”下准备入口文件 我想从ApplicationA路由到ApplicationB。这些路由有望携带url参数。这两个应用程序都使用spring boot和REST。群集(当前)由minikube设置 例如,我在ServiceA:http://url.com/customerapi/getCustomerById?id=5。此url应符合ApplicationB中定义的方法应用程序B 它和下面的入口一样简单吗?这很直截了当。致以最

因为明天我将没有wifi,这更像是一种理论上的捏造。我需要在“脱机模式”下准备入口文件

我想从
ApplicationA
路由到
ApplicationB
。这些路由有望携带url参数。这两个应用程序都使用
spring boot
REST
。群集(当前)由
minikube
设置

例如,我在
ServiceA
http://url.com/customerapi/getCustomerById?id=5
。此url应符合
ApplicationB
中定义的方法<可以使用
customerservice
和端口31001访问代码>应用程序B

它和下面的入口一样简单吗?这很直截了当。致以最良好的祝愿

我会这样定义一个
kubernetes入口

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: serviceA
spec:
  rules:
  - http:
      paths:
      - path: /customerapi
        backend:
          serviceName: customerservice
          servicePort: 31001

如果我理解正确,您希望根据url将来自web的流量路由到两个后端

您可以通过以下方式设置入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress-nginx
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: url.com
    http:
      paths:
      - path: /test1
        backend:
          serviceName: test1-svc
          servicePort: 80
      - path: /test2
        backend:
          serviceName: test2-svc
          servicePort: 80
这将把所有从
url.com/test1
路由到后端
test1svc
,并将所有从
url.com/test2
路由到后端
test2svc

如果您需要在
Url
中使用参数,我认为以下方法可以工作:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
  annotations:
    ingress.kubernetes.io/query-routing: default/query-routing
spec:
  backend:
    serviceName: default-backend
    servicePort: 80
  rules:
  - host: url.com

---

kind:ConfigMap
apiVersion: v1
metadata:
  name: query-routing
data:
  mapping: |-
    [{
      "field": "getCustomerById",
      "value": "1",
      "path": "customerapi/",
      "service": "customerservice",
      "port": "31001"
    }]
但是请用你的例子来测试一下,因为你的问题中没有足够的细节


有一种方法可以使用
nginx.ingres.kubernetes.io/server snippet
注释从
Header
捕获参数。Shopify正在使用这个特殊的工具,并解释了它的用法。有关更多注释,请检查Kubernetes。

此参数仅在URL中,或者您可以在标头中传递它?仅在URL中传递。我不认为“ingress.Kubernetes.io/query routing”注释是API的一部分