解决Pulsar部署脚本使用公网流量的问题

This commit is contained in:
ChenYi 2025-11-06 17:27:05 +08:00
parent 9b8adba8f5
commit 47ffada3a9
6 changed files with 60 additions and 37 deletions

View File

@ -5,6 +5,7 @@ SERVER_IP=192.168.111.174
PULSAR_BROKER_PORT=9093
PULSAR_ADMIN_PORT=9094
PULSAR_ZOOKEEPER_PORT=2181
PULSAR_BROKER_EXTERNAL_PORT=26974
# IoTDB配置
IOTDB_PORT=30710

View File

@ -1,6 +1,6 @@
services:
zookeeper:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
container_name: zookeeper
hostname: zookeeper
restart: unless-stopped
@ -29,7 +29,7 @@ services:
start_period: 60s
pulsar-cluster-init:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
container_name: pulsar-cluster-init
hostname: pulsar-cluster-init
command: >
@ -42,7 +42,7 @@ services:
- pulsar-net
bookie:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
container_name: pulsar-bookie
hostname: pulsar-bookie
restart: unless-stopped
@ -60,6 +60,8 @@ services:
- PULSAR_MEM=-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g
- BOOKIE_MEM=-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g
- PULSAR_PREFIX_zkServers=zookeeper:${PULSAR_ZOOKEEPER_PORT}
# Bookie 使用容器名作为 advertisedAddress确保 broker 通过内网连接
- PULSAR_PREFIX_advertisedAddress=pulsar-bookie
depends_on:
zookeeper:
condition: service_healthy
@ -71,7 +73,7 @@ services:
- pulsar-bookkeeper-data:/pulsar/data/bookkeeper
broker:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
container_name: pulsar-broker
hostname: pulsar-broker
restart: unless-stopped
@ -89,9 +91,17 @@ services:
- PULSAR_PREFIX_zookeeperServers=zookeeper:${PULSAR_ZOOKEEPER_PORT}
- PULSAR_PREFIX_configurationStoreServers=zookeeper:${PULSAR_ZOOKEEPER_PORT}
- PULSAR_PREFIX_bookkeeperClientPort=3181
- PULSAR_PREFIX_brokerServicePort=${PULSAR_BROKER_PORT}
- PULSAR_PREFIX_webServicePort=${PULSAR_ADMIN_PORT}
- PULSAR_PREFIX_advertisedAddress=${SERVER_IP}
# Web 管理接口对外通告与绑定
- PULSAR_PREFIX_webServiceBindAddress=0.0.0.0
- PULSAR_PREFIX_webServiceAdvertisedAddress=${SERVER_IP}
# 多监听器配置internal=容器内网(9093)external=公网(单独端口)
# bindAddresses: 为不同监听器绑定不同端口,便于根据端口识别 listenerName
- PULSAR_PREFIX_bindAddresses=internal:pulsar://0.0.0.0:${PULSAR_BROKER_PORT},external:pulsar://0.0.0.0:${PULSAR_BROKER_EXTERNAL_PORT}
# advertisedListeners: internal 通告容器名与内网端口external 通告公网 IP 与外网端口
- PULSAR_PREFIX_advertisedListeners=internal:pulsar://pulsar-broker:${PULSAR_BROKER_PORT},external:pulsar://${SERVER_IP}:${PULSAR_BROKER_EXTERNAL_PORT}
# internalListenerName: 指定内部通信使用的监听器名称
- PULSAR_PREFIX_internalListenerName=internal
- PULSAR_PREFIX_managedLedgerDefaultEnsembleSize=1
- PULSAR_PREFIX_managedLedgerDefaultWriteQuorum=1
- PULSAR_PREFIX_managedLedgerDefaultAckQuorum=1
@ -114,6 +124,7 @@ services:
- PULSAR_PREFIX_nonPersistentTopicsEnabled=true
ports:
- "${PULSAR_BROKER_PORT}:${PULSAR_BROKER_PORT}"
- "${PULSAR_BROKER_EXTERNAL_PORT}:${PULSAR_BROKER_EXTERNAL_PORT}"
- "${PULSAR_ADMIN_PORT}:${PULSAR_ADMIN_PORT}"
depends_on:
zookeeper:
@ -135,7 +146,7 @@ services:
start_period: 60s
pulsar-init:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
container_name: pulsar-init
hostname: pulsar-init
command: >
@ -169,7 +180,7 @@ services:
- pulsar-net
iotdb-standalone-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.4-standalone
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.5-standalone
hostname: iotdb-standalone
container_name: iotdb-standalone
restart: always
@ -253,7 +264,7 @@ services:
- pulsar-net
admin-api-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.admin:2025.0918.1348
image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.admin:2025.1103.1615
container_name: admin-api
hostname: admin-api
restart: always
@ -284,7 +295,7 @@ services:
- pulsar-net
admin-web-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.ui:2025.0918.1348
image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.ui:2025.1030.0949
container_name: admin-web
hostname: admin-web
restart: always
@ -330,4 +341,4 @@ volumes:
driver_opts:
type: none
o: bind
device: ./pulsar/pulsar-data
device: ./pulsar/pulsar-data

View File

@ -1,6 +1,6 @@
services:
iotdb-standalone:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.4-standalone
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.5-standalone
hostname: iotdb-standalone
container_name: iotdb-standalone
restart: "no"

View File

@ -1,6 +1,6 @@
services:
zookeeper:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
container_name: zookeeper
hostname: zookeeper
restart: unless-stopped
@ -29,7 +29,7 @@ services:
start_period: 60s
bookie:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
container_name: pulsar-bookie
hostname: pulsar-bookie
restart: unless-stopped
@ -46,6 +46,8 @@ services:
- PULSAR_MEM=-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g
- BOOKIE_MEM=-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g
- PULSAR_PREFIX_zkServers=zookeeper:${PULSAR_ZOOKEEPER_PORT}
# Bookie 使用容器名作为 advertisedAddress确保 broker 通过内网连接
- PULSAR_PREFIX_advertisedAddress=pulsar-bookie
depends_on:
zookeeper:
condition: service_healthy
@ -61,7 +63,7 @@ services:
start_period: 60s
broker:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
container_name: pulsar-broker
hostname: pulsar-broker
restart: unless-stopped
@ -79,9 +81,17 @@ services:
- PULSAR_PREFIX_zookeeperServers=zookeeper:${PULSAR_ZOOKEEPER_PORT}
- PULSAR_PREFIX_configurationStoreServers=zookeeper:${PULSAR_ZOOKEEPER_PORT}
- PULSAR_PREFIX_bookkeeperClientPort=3181
- PULSAR_PREFIX_brokerServicePort=${PULSAR_BROKER_PORT}
- PULSAR_PREFIX_webServicePort=${PULSAR_ADMIN_PORT}
- PULSAR_PREFIX_advertisedAddress=${SERVER_IP}
# Web 管理接口对外通告与绑定
- PULSAR_PREFIX_webServiceBindAddress=0.0.0.0
- PULSAR_PREFIX_webServiceAdvertisedAddress=${SERVER_IP}
# 多监听器配置internal=容器内网(9093)external=公网(单独端口)
# bindAddresses: 为不同监听器绑定不同端口,便于根据端口识别 listenerName
- PULSAR_PREFIX_bindAddresses=internal:pulsar://0.0.0.0:${PULSAR_BROKER_PORT},external:pulsar://0.0.0.0:${PULSAR_BROKER_EXTERNAL_PORT}
# advertisedListeners: internal 通告容器名与内网端口external 通告公网 IP 与外网端口
- PULSAR_PREFIX_advertisedListeners=internal:pulsar://pulsar-broker:${PULSAR_BROKER_PORT},external:pulsar://${SERVER_IP}:${PULSAR_BROKER_EXTERNAL_PORT}
# internalListenerName: 指定内部通信使用的监听器名称
- PULSAR_PREFIX_internalListenerName=internal
- PULSAR_PREFIX_managedLedgerDefaultEnsembleSize=1
- PULSAR_PREFIX_managedLedgerDefaultWriteQuorum=1
- PULSAR_PREFIX_managedLedgerDefaultAckQuorum=1
@ -104,6 +114,7 @@ services:
- PULSAR_PREFIX_nonPersistentTopicsEnabled=true
ports:
- "${PULSAR_BROKER_PORT}:${PULSAR_BROKER_PORT}"
- "${PULSAR_BROKER_EXTERNAL_PORT}:${PULSAR_BROKER_EXTERNAL_PORT}"
- "${PULSAR_ADMIN_PORT}:${PULSAR_ADMIN_PORT}"
depends_on:
zookeeper:
@ -123,7 +134,7 @@ services:
start_period: 60s
iotdb-standalone-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.4-standalone
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.5-standalone
hostname: iotdb-standalone
container_name: iotdb-standalone
restart: always
@ -205,7 +216,7 @@ services:
- pulsar-net
admin-api-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.admin:2025.0918.1348
image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.admin:2025.1103.1615
container_name: admin-api
hostname: admin-api
restart: always
@ -235,7 +246,7 @@ services:
- pulsar-net
admin-web-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.ui:2025.0918.1348
image: registry.cn-qingdao.aliyuncs.com/jisheyun/jishe.iot.ui:2025.1030.0949
container_name: admin-web
hostname: admin-web
restart: always

View File

@ -174,13 +174,13 @@ echo ""
echo "🎉 Pulsar 基本认证集群启动完成!"
echo ""
echo "📋 连接信息:"
echo " Pulsar Broker: ${SERVER_IP}:$PULSAR_BROKER_PORT}"
echo " Pulsar Admin: http://${SERVER_IP}:$PULSAR_ADMIN_PORT}"
echo " Pulsar Broker: ${SERVER_IP}:${PULSAR_BROKER_PORT}"
echo " Pulsar Admin: http://${SERVER_IP}:${PULSAR_ADMIN_PORT}"
echo " IoTDB: ${SERVER_IP}:${IOTDB_PORT} (root/${IOTDB_ROOT_PASSWORD})"
echo " Redis: ${SERVER_IP}:6379"
echo " MySQL: ${SERVER_IP}:$MYSQL_PORT}"
echo " Admin API: http://${SERVER_IP}:$ADMIN_API_PORT}"
echo " Admin UI: http://${SERVER_IP}:$ADMIN_WEB_PORT}"
echo " MySQL: ${SERVER_IP}:${MYSQL_PORT}"
echo " Admin API: http://${SERVER_IP}:${ADMIN_API_PORT}"
echo " Admin UI: http://${SERVER_IP}:${ADMIN_WEB_PORT}"
echo " 用户名: ${PULSAR_ADMIN_USER}"
echo " 密码: ${PULSAR_ADMIN_PASSWORD}"
echo ""
@ -190,7 +190,7 @@ echo " 查看日志: docker compose logs -f"
echo " 停止服务: docker compose down"
echo ""
echo "🧪 测试连接:"
echo " Pulsar: curl -u $PULSAR_ADMIN_USER}:$PULSAR_ADMIN_PASSWORD} http://$SERVER_IP}:$PULSAR_ADMIN_PORT}/admin/v2/clusters"
echo " Pulsar: curl -u ${PULSAR_ADMIN_USER}:${PULSAR_ADMIN_PASSWORD} http://${SERVER_IP}:${PULSAR_ADMIN_PORT}/admin/v2/clusters"
echo " Redis: redis-cli -h ${SERVER_IP} -p 6379 ping"
echo " MySQL: mysql -h ${SERVER_IP} -P ${MYSQL_PORT} -uroot -p${MYSQL_ROOT_PASSWORD} -e 'SELECT 1'"
echo " IoTDB: docker exec -it iotdb-standalone ./start-cli.sh -h iotdb-standalone -u root -p Lixiao@1980"

View File

@ -4,19 +4,19 @@
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://10.10.90.3:4200"
},
"ConnectionStrings": {
"Default": "Data Source=192.168.111.174;Port=13306;Database=JiSheIoTProDB2;uid=root;pwd=JiShe!aqG#5kGgh&0;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true;TreatTinyAsBoolean=false;SslMode=None;Pooling=true;"
"Default": "Data Source=47.110.53.196;Port=13306;Database=JiSheIoTProDB;uid=root;pwd=JiShe!aqG#5kGgh&0;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true;TreatTinyAsBoolean=false;SslMode=None;Pooling=true;"
},
"Hangfire": {
"Redis": {
"Host": "192.168.111.174:30712,password=1q3J@BGf!yhTaD46nS#",
"Host": "47.110.53.196:30712,password=1q3J@BGf!yhTaD46nS#",
"DB": "2"
}
},
"Redis": {
"Configuration": "192.168.111.174:30712,password=1q3J@BGf!yhTaD46nS#,defaultdatabase=5"
"Configuration": "47.110.53.196:30712,password=1q3J@BGf!yhTaD46nS#,defaultdatabase=5"
},
"Kafka": {
"BootstrapServers": "47.110.62.104:9094,192.168.111.174:9094,47.110.60.222:9094",
"BootstrapServers": "47.110.62.104:9094,47.110.53.196:9094,47.110.60.222:9094",
"EnableFilter": true,
"EnableAuthorization": false,
"SaslUserName": "lixiao",
@ -26,8 +26,8 @@
"TaskThreadCount": -1
},
"Pulsar": {
"ServiceUrl": "pulsar://192.168.111.174:9093",
"WebUrl": "http://192.168.111.174:9094",
"ServiceUrl": "pulsar://47.110.53.196:9093",
"WebUrl": "http://47.110.53.196:9094",
"UserName": "admin",
"TenantName": "1YMVZZkAkRArjxSD8457",
"Namespace": "OneNET",
@ -56,10 +56,10 @@
"IoTDBOptions": {
"UserName": "root",
"Password": "Lixiao@1980",
//"TreeModelClusterList": [ "192.168.111.174:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
//"TableModelClusterList": [ "192.168.111.174:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
"TreeModelClusterList": [ "192.168.111.174:30710" ],
"TableModelClusterList": [ "192.168.111.174:30710" ],
//"TreeModelClusterList": [ "47.110.53.196:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
//"TableModelClusterList": [ "47.110.53.196:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
"TreeModelClusterList": [ "47.110.53.196:30710" ],
"TableModelClusterList": [ "47.110.53.196:30710" ],
"PoolSize": 32,
"DataBaseName": "jisheiotdata",
"OpenDebugMode": false,
@ -95,7 +95,7 @@
}
},
"FreeRedisOptions": {
"ConnectionString": "192.168.111.174:30712,password=1q3J@BGf!yhTaD46nS#,abortConnect=false,connectTimeout=30000,allowAdmin=true,maxPoolSize=500,defaultdatabase=14",
"ConnectionString": "47.110.53.196:30712,password=1q3J@BGf!yhTaD46nS#,abortConnect=false,connectTimeout=30000,allowAdmin=true,maxPoolSize=500,defaultdatabase=14",
"UseDistributedCache": true
},
"FreeSqlProviderOptions": {