You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes环境下暴露ActiveMQ供SpringBoot与Angular应用使用的相关咨询

ActiveMQ端口暴露与访问配置解答

所需暴露端口说明

基于apache-activemq-5.16.3的默认配置,两类访问场景对应的端口如下:

  • SpringBoot应用访问端口:默认61616,采用OpenWire协议,是Java生态ActiveMQ客户端的默认通信端口。如果调用ActiveMQ的SpringBoot Pod部署在同一K8s集群内,不需要对外暴露该端口,直接通过集群内部Service域名访问即可;如果是跨集群外部调用才需要对外暴露。
  • Angular前端访问端口:根据使用场景二选一,两个都需要也可以同时暴露:
    • 仅需访问ActiveMQ自带的Web管理控制台:使用默认Web端口8161,默认控制台路径为/admin
    • 需要通过WebSocket实时接收MQ消息:使用默认STOMP over WebSocket端口61614

Angular访问的DNS配置要求

是否需要配置DNS取决于你的暴露方式:

  • 如果你通过Nginx Ingress用域名方式暴露Web相关端口(8161/61614),必须配置DNS记录,将你Ingress规则中指定的域名解析到Nginx Ingress Controller的对外入口IP,用户浏览器才能正常解析访问。
  • 如果你直接用NodePort/LoadBalancer的IP+端口方式暴露,不需要配置DNS,但生产环境不推荐该方案,域名方式更便于维护。

Nginx Ingress暴露注意事项

Nginx Ingress默认仅处理HTTP/HTTPS协议的流量,如果你需要对外暴露TCP协议的61616端口,需要额外修改Nginx Ingress Controller的tcp-services ConfigMap添加端口映射,示例配置如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-ingress-tcp-services
  namespace: ingress-nginx
data:
  "61616": "your-activemq-namespace/your-activemq-service-name:61616"

Web相关端口的Ingress规则配置示例(需开启WebSocket支持):

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: activemq-web-ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
spec:
  rules:
  - host: activemq.your-domain.com
    http:
      paths:
      - path: /admin
        pathType: Prefix
        backend:
          service:
            name: your-activemq-service-name
            port:
              number: 8161
      - path: /stomp
        pathType: Prefix
        backend:
          service:
            name: your-activemq-service-name
            port:
              number: 61614

内容的提问来源于stack exchange,提问作者niranjan pb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:24:02