webchat中间件的搭建过程

47 阅读3分钟

我目前推荐docker-compose来构建中间件服务

宝塔维护我的阿里云机器,我先试一下,后续看看要不要用

www.bt.cn/new/downloa… linux 机器直接安装,然后开放22632端口

blog.csdn.net/sinat_36891…, jdk 安装教程

外网ipv4面板地址: https://XX:22632/39ff9e3b

username: k4rml4bw

password: f1b0b658

redis和mysql

version: '3.8'

# 定义网络
networks:
  webchat-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.28.0.0/16

# 定义数据卷
volumes:
  mysql_data:
  mysql_config:
  redis_data:
  minio_data:
  elasticsearch_data:
  mongodb_data:
  milvus_data:
  n8n_data:
  prometheus_data:
  grafana_data:
  rocketmq_data:

services:
  # ===================== MySQL 8.0 =====================
  mysql80:
    image: mysql:8.0  # 固定8.0版本
    container_name: mysql80-webchat
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-MysqlRoot@123456}
      MYSQL_DATABASE: nacos_config
      MYSQL_USER: webchat
      MYSQL_PASSWORD: ${MYSQL_APP_PASSWORD:-Webchat@123456}
      TZ: Asia/Shanghai
      MYSQL_INNODB_BUFFER_POOL_SIZE: 256M  # 优化InnoDB缓冲池
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      - webchat-network
    ports:
      - "3308:3306"
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 60s
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '1.0'
        reservations:
          memory: 512M
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
      - --default-authentication-plugin=mysql_native_password
      - --max_connections=1000

  # ===================== Redis 6.0 =====================
  redis-webchat:
    container_name: redis-webchat
    image: redis:6.2
    restart: always
    command: redis-server /etc/redis/redis.conf
    volumes:
      - redis_data:/data
      - ./config/redis.conf:/etc/redis/redis.conf:ro
    ports:
      - "6380:6379"
    networks:
      - webchat-network

nacos的构建

我参考的www.cnblogs.com/yangyxd/p/1…

在构建nacos服务的时候,我是部署在linux上面的,要开通多个端口,8848, 9848,9849,我也不太明白,后边我看看源码

image.png

项目中的整合

image.png

image.png

mongodb的搭建

docker run -d --name mongo -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=dyw862749167 -v mongo_data:/data/db --restart=unless-stopped mongo:5.0.5

springboot配置, 参考的编程不良人

spring.data.mongodb.host=8.136.60.157
spring.data.mongodb.port=27017
spring.data.mongodb.database=baizhi
spring.data.mongodb.username=root
spring.data.mongodb.password=dyw862749167
spring.data.mongodb.authentication-database=admin

rocketmq 安装 我参考的这个: juejin.cn/post/746903…

broker.conf的配置

brokerClusterName=DefaultCluster  
brokerName=Broker-A
brokerId=0

deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
brokerIP1=8.136.60.157
namesrvAddr=8.136.60.157:9876

docker-compose的配置

version: '3.8'  

    services:  
      namesrv:
        image: apache/rocketmq:5.3.1
        container_name: rmqnamesrv
        ports:
          - 9876:9876
        networks:
          - rocketmq
        command: sh mqnamesrv

      broker:
        image: apache/rocketmq:5.3.1  
        container_name: rmqbroker
        ports:
          - 10909:10909
          - 10911:10911
        environment:
          - NAMESRV_ADDR=namesrv:9876
          - JAVA_OPT_EXT=-server -Xms512m -Xmx512m -Duser.home=/home/rocketmq
        volumes:
          - ./config/broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf
        depends_on:
          - namesrv
        networks:
          - rocketmq
        command: sh mqbroker -c ../conf/broker.conf

      console:
        image: pangliang/rocketmq-console-ng
        container_name: rmqconsole
        ports:
          - 9080:8080
        environment:
          - JAVA_OPTS=-Dserver.port=8080 -Drocketmq.config.namesrvAddr=namesrv:9876
        depends_on:
          - namesrv
        networks:
          - rocketmq
        restart: always
        deploy:
          resources:
            limits:
              cpus: '0.3'
              memory: 256M

    networks:
      rocketmq:
        driver: bridge
        ipam:
          config:
            - subnet: 172.28.0.0/16

es的搭建

docker pull elasticsearch:7.14.0

docker volume create es_data
docker volume create es_config
docker volume create es_plugin


docker network create es_network

docker run -d --name elasticsearch --network es_network --privileged=true --ulimit memlock=-1:-1 --ulimit nofile=65535:65535 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -v es_data:/usr/share/elasticsearch/data -v es_config:/usr/share/elasticsearch/config -v es_plugin:/usr/share/elasticsearch/plugins elasticsearch:7.14.0

# 下载分词器
下载页面: https://release.infinilabs.com/analysis-ik/stable/
scp elasticsearch-analysis-ik-7.14.0.zip root@47.100.70.6:/root/

docker cp elasticsearch-analysis-ik-7.14.0.zip  elasticsearch:/usr/share/elasticsearch/plugins/

docker exec -it elasticsearch /bin/bash
cd /usr/share/elasticsearch/plugins/

mkdir ik && cd ik
mv ....
unzip elasticsearch-analysis-ik-7.14.0.zip
rm -f elasticsearch-analysis-ik-7.14.0.zip

验证http://xx:9200/_cat/plugins?v

kibana 的搭建

docker pull kibana:7.14.0

docker run -d --name kibana -p 5601:5601 kibana:7.14.0


docker run -d -v ./config/kibana.yml:/usr/share/kibana/config/kibana.yml --name kibana -p 5601:5601 kibana:7.14.0

docker cp 

docker cp c967129b74f9:/usr/share/kibana/config/kibana.yml .

docker run -d -v ./config/kibana.yml:/usr/share/kibana/config/kibana.yml --name kibana -p 5601:5601 kibana:7.14.0

minio的搭建

 docker pull minio/minio
 
 
 
docker run --name minio -p 9000:9000 -p 9001:9001   -e MINIO_ROOT_USER=minioadmin -e MINIO_ROOT_PASSWORD=minioadmin -d -v minio_data:/data minio/minio:latest server /data --console-address ":9001" 

http://localhost:9001/browser

我参考的这个,但是他不太对 weibaohang.blog.csdn.net/article/det… 我再看看如何添加accessKey