部署Solace服务的方法

使用Docker部署Solace PubSub+标准版
确保已安装Docker,运行以下命令拉取并启动Solace容器:

docker run -d -p 8080:8080 -p 55555:55555 --shm-size=1g --env username_admin_globalaccesslevel=admin --env username_admin_password=admin --name=solace solace/solace-pubsub-standard
  • -p 8080:8080:暴露Web管理界面端口。
  • -p 55555:55555:暴露消息传输端口。
  • --shm-size=1g:分配共享内存,建议不低于1GB。

通过Kubernetes部署
创建solace.yaml文件,配置以下内容:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: solace
spec:
  replicas: 1
  selector:
    matchLabels:
      app: solace
  template:
    metadata:
      labels:
        app: solace
    spec:
      containers:
      - name: solace
        image: solace/solace-pubsub-standard
        ports:
        - containerPort: 8080
        - containerPort: 55555
        env:
        - name: username_admin_password
          value: "admin"
        resources:
          limits:
            memory: "2Gi"

应用配置:

kubectl apply -f solace.yaml

云平台部署(以AWS为例)

  1. 登录AWS Marketplace,搜索“Solace PubSub+ Standard”。
  2. 选择EC2实例类型(建议至少4核8GB内存)。
  3. 配置安全组,开放端口8080(管理)和55555(消息)。
  4. 启动实例后,通过SSH登录并验证服务状态:
systemctl status solace

初始配置步骤

  1. 访问Web管理界面:http://<服务器IP>:8080,使用默认账号admin/admin登录。
  2. 创建消息VPN:导航至“Message VPNs” → “Add”,填写名称并启用所需协议(如MQTT、AMQP)。
  3. 配置客户端权限:在“Client Usernames”中创建用户,分配VPN访问权限。

验证服务

发送测试消息:

curl -X POST -u "admin:admin" http://localhost:8080/SEMP/v2/config/msgVpns/default/queues -H "Content-Type:application/json" -d '{"queueName":"test_queue"}'

使用SDK(如Python)发布消息:

import solace.messaging.messaging_service as messaging
service = messaging.MessagingService.builder().from_properties({"host": "tcp://localhost:55555", "vpn": "default", "username": "admin", "password": "admin"}).build()
service.connect()
sender = service.create_direct_message_publisher_builder().build()
sender.start()
sender.send("hello world", destination="test_queue")

注意事项

  • 生产环境需替换默认密码,启用TLS加密。
  • 高可用部署需配置冗余节点和镜像队列。
  • 资源限制(CPU/内存)根据消息吞吐量调整。

以上方法适用于快速验证或小型生产环境,大规模部署建议参考官方文档调整参数。