处理服务器跨多个pod发送的事件

yvfmudvl  于 2021-06-10  发布在  Redis
关注(0)|答案(1)|浏览(423)

我正在开发一个基于nodejs的服务器 /events 端点,通过sse向客户端发送事件。除了这个端点之外,我还有多个用于请求后处理的路由。
我正在试图找出如何设置所有这些在一个多吊舱工作的方式。现在,我有负载均衡器设置来保持用户和pod之间的连接,直到客户端断开连接,但是当客户端发出post请求时,这些请求可以路由到不同的pod。
我需要确保每个pod都能发出一条带有用户id的消息,并且这个事件被与用户有打开连接的正确pod捕获并发送到客户端。
我考虑过redis,但是我想知道nodejs或者kubernetes是否暴露了一些不需要它的东西。

fjaof16o

fjaof16o1#

您应该可以使用服务或通过负载平衡器来完成。
通过服务,您可以使用会话关联:

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
  sessionAffinity: ClientIP

使用loadbalancer粘滞会话:
https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/

相关问题