当前位置: 首页 > news >正文

做网站公司不给源代码服务器网站访问慢

做网站公司不给源代码,服务器网站访问慢,河南网站建设运营域名注册公司,介绍做网站的标题一、Linux部署 准备一台Linux机器#xff0c;部署单master rocketmq节点 系统ip角色模式CENTOS10.4.7.126Nameserver,brokerMaster 1. 配置JDK rocketmq运行需要依赖jdk#xff0c;安装步骤略。 2. 下载和配置 从官网下载安装包 https://rocketmq.apache.org/zh/downlo…一、Linux部署 准备一台Linux机器部署单master rocketmq节点 系统ip角色模式CENTOS10.4.7.126Nameserver,brokerMaster 1. 配置JDK rocketmq运行需要依赖jdk安装步骤略。 2. 下载和配置 从官网下载安装包 https://rocketmq.apache.org/zh/download/ 并上传到CENTOS系统中并进行解压 cd /data # 解压 unzip rocketmq-all-5.1.3-bin-release.zip # 创建目录软链接 ln -s rocketmq-all-5.1.3-bin-release rocketmq # 创建目录 # 消息存储及位点目录mkdir -p /data/rocketmq/storemkdir -p /data/rocketmq/store/commitlogmkdir -p /data/rocketmq/store/consumequeuemkdir -p /data/rocketmq/store/index # 创建日志目录mkdir -p /data/rocketmq/logs # 进入配置文件目录并替换日志配置文件中的日志目录的位置 cd /data/rocketmq/conf sed -i s#${user.home}#/data/rocketmq#g *.xml 修改rocketmq启动所需配置文件 # 进入rocketmq自带的配置文件目录 [rootmq-126 conf]# cd /data/rocketmq/conf/ [rootmq-126 conf]# ls # 2master 2slave 异步消息同步配置目录 2m-2s-async # 2master 2slave 同步消息同步配置目录 2m-2s-sync # 2master no slave 配置目录 2m-noslave # 单点配置目录 broker.conf container controller dledger plain_acl.yml # 日志配置文件 rmq.broker.logback.xml rmq.client.logback.xml rmq.controller.logback.xml rmq.namesrv.logback.xml rmq-proxy.json rmq.proxy.logback.xml rmq.tools.logback.xml tools.yml [rootmq-126 conf]# vi broker.conf将下面的配置赋值到broker.conf中 #所属集群名字 brokerClusterNamerocketmq-cluster #broker 名字注意此处不同的配置文件填写的不一样 brokerNamebroker-a #0 表示 Master0 表示 Slave brokerId0 #nameServer 地址分号分割 namesrvAddr127.0.0.1:9876 #在发送消息时自动创建服务器不存在的 topic默认创建的队列数 defaultTopicQueueNums4 #是否允许 Broker 自动创建 Topic建议线下开启线上关闭 autoCreateTopicEnabletrue #是否允许 Broker 自动创建订阅组建议线下开启线上关闭 autoCreateSubscriptionGrouptrue #Broker 对外服务的监听端口 listenPort10911 #删除文件时间点默认凌晨 4 点 deleteWhen04 #文件保留时间默认 48 小时 fileReservedTime120 #commitLog 每个文件的大小默认 1G mapedFileSizeCommitLog1073741824 #ConsumeQueue 每个文件默认存 30W 条根据业务情况调整 mapedFileSizeConsumeQueue300000 #destroyMapedFileIntervalForcibly120000 #redeleteHangedFileInterval120000 #检测物理文件磁盘空间 diskMaxUsedSpaceRatio88 #存储路径 storePathRootDir/data/rocketmq/store #commitLog 存储路径 storePathCommitLog/data/rocketmq/store/commitlog #消费队列存储路径存储路径 storePathConsumeQueue/data/rocketmq/store/consumequeue #消息索引存储路径 storePathIndex/data/rocketmq/store/index #checkpoint 文件存储路径 storeCheckpoint/data/rocketmq/store/checkpoint #abort 文件存储路径 abortFile/data/rocketmq/store/abort #限制的消息大小 maxMessageSize65536 #flushCommitLogLeastPages4 #flushConsumeQueueLeastPages2 #flushCommitLogThoroughInterval10000 #flushConsumeQueueThoroughInterval60000 #Broker 的角色 #- ASYNC_MASTER 异步复制 Master #- SYNC_MASTER 同步双写 Master #- SLAVE brokerRoleASYNC_MASTER #刷盘方式 #- ASYNC_FLUSH 异步刷盘 #- SYNC_FLUSH 同步刷盘 flushDiskTypeASYNC_FLUSH #checkTransactionMessageEnablefalse #发消息线程池数量 #sendMessageThreadPoolNums128 #拉消息线程池数量 #pullMessageThreadPoolNums128修改启动脚本的jvm参数找到对应行进行修改原配置设置的内存太大我的虚拟机是1g内存的会无法正常启动需要改小。 vim /data/rocketmq/bin/runbroker.sh JAVA_OPT${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512mvim /data/rocketmq/bin/runserver.sh JAVA_OPT${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m3. 启动 启动nameserver [rootmq-126 rocketmq]# nohup sh /data/rocketmq/bin/mqnamesrv [rootmq-126 rocketmq]# jps 2617 NamesrvStartup 2654 Jps [rootmq-126 rocketmq]# netstat -ano | grep 9876 tcp6 0 0 :::9876 :::* LISTEN off (0.00/0/0) tcp6 0 0 10.4.7.126:9876 10.4.7.126:53946 ESTABLISHED off (0.00/0/0) tcp6 0 0 10.4.7.126:9876 10.4.7.125:42368 ESTABLISHED off (0.00/0/0) tcp6 0 0 10.4.7.126:53946 10.4.7.126:9876 ESTABLISHED off (0.00/0/0)启动broker [rootmq-126 bin]# nohup sh /data/rocketmq/bin/mqbroker -c /data/rocketmq/conf/broker.conf [2] 2829 [rootmq-126 bin]# jps 2796 NamesrvStartup 2861 BrokerStartup 2893 Jps启动dashboard 启动dashboard最快的方式是通过docker进行启动。 [rootmq-126 bin]# systemctl start docker [rootmq-126 bin]# docker run -d --name rocketmq-dashboard -e JAVA_OPTS-Drocketmq.namesrv.addr10.4.7.126:9876 -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest d55cb8b7ff0e9d19964c2019eaf4bba8301cfc2cf1b8a3eb01bff09df134f90e然后就可以访问dashboard了 如果没有docker环境 在官网下下载源码包使用maven编译后进行启动 https://rocketmq.apache.org/zh/download/ 4. 发送和消费测试代码 Producer package cn.shutdown.mq;import org.apache.rocketmq.client.exception.MQBrokerException; import org.apache.rocketmq.client.exception.MQClientException; import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.common.message.Message; import org.apache.rocketmq.remoting.exception.RemotingException;/*** 消息生产者* author Domino.J* date 2023/8/11*/ public class Producer {public static final String NAMESRV_ADDR 10.4.7.126:9876;public static void main(String[] args)throws MQClientException, MQBrokerException, RemotingException, InterruptedException {DefaultMQProducer producer new DefaultMQProducer(test_quick_producer_name);producer.setNamesrvAddr(NAMESRV_ADDR);producer.start();for (int i 0; i 1000; i) {Message message new Message(test_quick_topic,//主题TagA, //标签KeyA i, //用户自定义的key唯一的标识(Hello RocketMQ i).getBytes());//消息内容//发送消息SendResult sr producer.send(message);System.out.println(消息发送结果 sr);Thread.sleep(1000);}producer.shutdown();} } Consumer package cn.shutdown.mq;import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently; import org.apache.rocketmq.client.exception.MQClientException; import org.apache.rocketmq.common.consumer.ConsumeFromWhere; import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.remoting.common.RemotingHelper;import java.util.List;/*** 消息消费者* author Domino.J* date 2023/8/11*/ public class Consumer {public static final String NAMESRV_ADDR 10.4.7.126:9876;public static void main(String[] args) throws MQClientException {DefaultMQPushConsumer consumer new DefaultMQPushConsumer(test_quick_consumer_name);consumer.setNamesrvAddr(NAMESRV_ADDR);consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET);consumer.subscribe(test_quick_topic, *);consumer.registerMessageListener(new MessageListenerConcurrently() {Overridepublic ConsumeConcurrentlyStatus consumeMessage(ListMessageExt msgs, ConsumeConcurrentlyContext context) {MessageExt me msgs.get(0);try {String topic me.getTopic();String tags me.getTags();String keys me.getKeys();String msgBody new String(me.getBody(), RemotingHelper.DEFAULT_CHARSET);System.err.println(topic: topic ,tags: tags , keys: keys ,body: msgBody);} catch (Exception e) {e.printStackTrace();return ConsumeConcurrentlyStatus.RECONSUME_LATER;}return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;}});consumer.start();System.err.println(consumer start...);} } pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcn.shutdown/groupIdartifactIdrocketmq-demo/artifactIdversion0.0.1-SNAPSHOT/versionnamerocketmq-demo/namedescriptionrocketmq-demo/descriptionpropertiesjava.version1.8/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version2.6.13/spring-boot.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.apache.rocketmq/groupIdartifactIdrocketmq-client-java/artifactIdversion5.0.3/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.apache.rocketmq/groupIdartifactIdrocketmq-client/artifactIdversion5.1.3/version/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfigurationmainClasscn.shutdown.mq.RocketmqDemoApplication/mainClassskiptrue/skip/configurationexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build /project 运行结果 二、Docker Compose部署 1. 拉取镜像 拉取 rocketmq镜像 docker pull apache/rocketmq:5.1.3拉取 rocketmq dashboard镜像 docker pull apacherocketmq/rocketmq-dashboard:latest 2. 创建挂载目录拷贝挂载文件 创建Nameserver需要的挂载目录并拷贝挂载文件 # 日志目录 mkdir /data/opt/rocketmq/nameserver/logs -p # 脚本目录 mkdir /data/opt/rocketmq/nameserver/bin -p设置权限如果不设置会导致NameServer容器内部无法写日志文件 # 777 文件所属者、文件所属组和其他人有读取 写入 执行全部权限。rwxrwxrwx chmod 777 -R /data/opt/rocketmq/nameserver/*正如使用Linux部署一样需要修改JAVA_OPT配置这里需要从rocketmq容器中复制出一份运行文件修改后再挂载到新启动的容器上。另外NameServer启动脚本中有一个自动计算最大堆内存和新生代内存的函数会导致在不同硬件环境下设置最大堆内存和新生代内存环境变量不被应用这里先提前copy一份容器内部启动脚本做挂载如果想自定义内存可以自己调整。 启动临时rocketmq容器 docker run -d \ --privilegedtrue \ --name rmqnamesrv \ apache/rocketmq:5.1.3 sh mqnamesrv复制容器内的文件到挂载目录中 [rootmq-126 bin]# docker cp rmqnamesrv:/home/rocketmq/rocketmq-5.1.3/bin/ /data/opt/rocketmq/nameserver/ [rootmq-126 bin]# ls cachedog.sh mqbroker.numanode0 os.sh cleancache.sh mqbroker.numanode1 play.cmd cleancache.v1.sh mqbroker.numanode2 play.sh controller mqbroker.numanode3 README.md dledger mqcontroller runbroker.cmd docker-entrypoint.sh mqcontroller.cmd runbroker.sh export.sh mqnamesrv runserver.cmd mqadmin mqnamesrv.cmd runserver.sh mqadmin.cmd mqproxy setcache.sh mqbroker mqproxy.cmd startfsrv.sh mqbroker.cmd mqshutdown tools.cmd mqbrokercontainer mqshutdown.cmd tools.sh修改 runserver.sh把 calculate_heap_sizes 这句注释掉 # 注释掉以下这句 # calculate_heap_sizes# Dynamically calculate parameters, for reference.然后停止并删除容器 docker stop rmqnamesrv docker rm rmqnamesrv创建Broker需要挂载的文件夹和文件 # 创建需要的挂载目录 mkdir /data/opt/rocketmq/broker/logs -p mkdir /data/opt/rocketmq/broker/data -p mkdir /data/opt/rocketmq/broker/conf -p mkdir /data/opt/rocketmq/broker/bin -p mkdir /data/opt/rocketmq/broker/store -p给目录赋权限 # 777 文件所属者、文件所属组和其他人有读取 写入 执行全部权限。rwxrwxrwx chmod 777 -R /data/opt/rocketmq/broker/*启动临时容器 docker run -d \ --name rmqbroker \ --privilegedtrue \ apache/rocketmq:5.1.3 \ sh mqbroker拷贝运行文件 [rootmq-126 bin]# docker cp rmqbroker:/home/rocketmq/rocketmq-5.1.3/bin/ /data/opt/rocketmq/broker/ Successfully copied 110kB to /data/opt/rocketmq/broker/ [rootmq-126 bin]# ls cachedog.sh mqbroker.numanode0 os.sh cleancache.sh mqbroker.numanode1 play.cmd cleancache.v1.sh mqbroker.numanode2 play.sh controller mqbroker.numanode3 README.md dledger mqcontroller runbroker.cmd docker-entrypoint.sh mqcontroller.cmd runbroker.sh export.sh mqnamesrv runserver.cmd mqadmin mqnamesrv.cmd runserver.sh mqadmin.cmd mqproxy setcache.sh mqbroker mqproxy.cmd startfsrv.sh mqbroker.cmd mqshutdown tools.cmd mqbrokercontainer mqshutdown.cmd tools.sh修改 runbroker.sh把 calculate_heap_sizes 这句注释掉 # 注释掉以下这句 # calculate_heap_sizes# Dynamically calculate parameters, for reference.拷贝配置文件 [rootmq-126 conf]# docker cp rmqbroker:/home/rocketmq/rocketmq-5.1.3/conf/ /data/opt/rocketmq/broker/ Successfully copied 145kB to /data/opt/rocketmq/broker/ [rootmq-126 conf]# ls 2m-2s-async dledger rmq-proxy.json 2m-2s-sync plain_acl.yml rmq.proxy.logback.xml 2m-noslave rmq.broker.logback.xml rmq.tools.logback.xml broker.conf rmq.client.logback.xml tools.yml container rmq.controller.logback.xml controller rmq.namesrv.logback.xml修改 broker.conf # 集群名称 brokerClusterName DefaultCluster # 节点名称 brokerName broker-a # broker id节点ID 0 表示 master, 其他的正整数表示 slave不能小于0 brokerId 0 # Broker服务地址 String 内部使用填内网ip如果是需要给外部使用填公网ip brokerIP1 10.4.7.125 # Broker角色 brokerRole ASYNC_MASTER # 刷盘方式 flushDiskType ASYNC_FLUSH # 在每天的什么时间删除已经超过文件保留时间的 commit log默认值04 deleteWhen 04 # 以小时计算的文件保留时间 默认值72小时 fileReservedTime 72 # 是否允许Broker 自动创建Topic建议线下开启线上关闭 autoCreateTopicEnabletrue # 是否允许Broker自动创建订阅组建议线下开启线上关闭 autoCreateSubscriptionGrouptrue停止并删除临时的broker容器 docker stop rmqbroker docker rm rmqbroker3. 准备Docker Compose 文件 在/data/opt/rocketmq目录创建docker-compose.yml文件 version: 3.8 services:rmqnamesrv:image: apache/rocketmq:5.1.3container_name: rmqnamesrvports:- 9876:9876restart: alwaysprivileged: truevolumes:- /data/opt/rocketmq/nameserver/logs:/home/rocketmq/logs- /data/opt/rocketmq/nameserver/bin/runserver.sh:/home/rocketmq/rocketmq-5.1.3/bin/runserver.shenvironment:- MAX_HEAP_SIZE256M- HEAP_NEWSIZE128Mcommand: [sh,mqnamesrv]broker:image: apache/rocketmq:5.1.3container_name: rmqbrokerports:- 10909:10909- 10911:10911- 8081:8081restart: alwaysprivileged: truevolumes:- /data/opt/rocketmq/broker/logs:/home/rocketmq/logs- /data/opt/rocketmq/broker/store:/home/rocketmq/store- /data/opt/rocketmq/broker/conf/broker.conf:/home/rocketmq/broker.conf- /data/opt/rocketmq/broker/bin/runbroker.sh:/home/rocketmq/rocketmq-5.1.3/bin/runbroker.shdepends_on:- rmqnamesrvenvironment:- NAMESRV_ADDRrmqnamesrv:9876- MAX_HEAP_SIZE512M- HEAP_NEWSIZE256Mcommand: [sh,mqbroker,-c,/home/rocketmq/broker.conf,--enable-proxy]rmqdashboard:image: apacherocketmq/rocketmq-dashboard:latestcontainer_name: rocketmq-dashboard-latestports:- 8080:8080restart: alwaysprivileged: truedepends_on:- rmqnamesrvenvironment:- JAVA_OPTS -Xmx256M -Xms256M -Xmn128M -Drocketmq.namesrv.addrrmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannelfalse 使用docker compose 命令启动 [rootmq_125 rocketmq]# vi docker-compose.yml [rootmq_125 rocketmq]# docker compose up -d [] Building 0.0s (0/0) [] Running 3/3✔ Container rmqnamesrv Started 0.7s✔ Container rocketmq-dashboard-latest Started 2.6s✔ Container rmqbroker Started4. 发送和消费消息测试 测试代码与linux部署相同
http://www.ho-use.cn/article/10823868.html

相关文章:

  • 中国沙漠建设 志愿者 兵团官方网站那个网站做视频能挣钱
  • 怎样做班级网站个人公司网站怎么做
  • 平板做网站服务器呼和浩特网站建设哪家好
  • pc wap 装修公司网站源码计算机软件开发专业学什么
  • 浙江专业网站seo一对一直播交友app开发
  • 商田科技网站淮南百姓网
  • 化学试剂购买网站建个网站多少钱app
  • 网站图片要求网络营销与直播电商专业介绍
  • 网站蜘蛛爬行统计长沙公司网站制作
  • 刚开今天新开传奇网站上传网站程序后又怎么做
  • 在家做网站建设邯郸网络技术公司
  • 企业网站建设宣贯软件工程月薪一般多少
  • 企业网站个人可以备案吗网站服务器维护内容
  • 怎么做网站系统商城和营销型网站建设
  • 做网站找哪家公司好珠海做网站优化的公司
  • 手机版网站建设报价wordpress4.7下载
  • 印度做网站怎么注册公司企业微信
  • 江苏网站建设的案例展示苏州网站开发公司兴田德润怎么联系
  • 做网站公司需要什么资质wordpress充值中心
  • 安庆网站开发做100个网站挂广告联盟
  • 广西建设工程质检安全网站最新站群系统
  • 自建站平台如何修改上线网站
  • 宁波慈溪网站建设个体工商网上年检
  • iis7发布静态网站兴义市网站建设
  • 瑞安做微网站保定网站公司
  • 互联网传媒 网站代驾软件开发流程
  • 佛山专门做网站设计怎样做模板网站购买
  • 陕西煤炭建设公司网站遵义建立公司网站的步骤
  • 阳江网站开发英文网站建设注意什么
  • 偃师网站建设国外网站设计理念