Skip to content

其他说明

gaoyf edited this page Nov 22, 2019 · 18 revisions
  1. 关于rocketmq.zip

    版本为4.4.0,建议使用4.x版本。下载来源https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zip

    其中做的修改如下:

    1. rocketmq/conf下的四个日志配置文件:logback_*.xml

      将${user.home}修改为了${ROCKETMQ_HOME},原因:默认RocketMQ往用户目录下打日志,而用户目录一般在根目录,往往分区比较小,所以改成了rocketmq所在目录。
      
    2. rocketmq/bin下的runserver.sh,runbroker.sh

      gc日志目录由/dev/shm改为了${BASE_DIR}/logs
      
    3. os.sh

      echo 'deadline' > /sys/block/${DISK}/queue/scheduler
      echo "---------------------------------------------------------------"
      sysctl vm.extra_free_kbytes
      sysctl vm.min_free_kbytes
      sysctl vm.overcommit_memory
      sysctl vm.drop_caches
      sysctl vm.zone_reclaim_mode
      sysctl vm.max_map_count
      sysctl vm.dirty_background_ratio
      sysctl vm.dirty_ratio
      sysctl vm.dirty_writeback_centisecs
      sysctl vm.page-cluster
      sysctl vm.swappiness
      su - admin -c 'ulimit -n'
      cat /sys/block/$DISK/queue/scheduler
      修改为:
      if [ ! $DISK ]; then
          echo 'deadline' > /sys/block/${DISK}/queue/scheduler
      fi
      if [ ! $DISK ]; then
          cat /sys/block/$DISK/queue/scheduler
      fi
      echo "`date +%Y%m%d-%H%M%S`" >> /opt/mqcloud/.mq_cloud_inited
      
  2. 关于nmon.zip

    用于收集和监控服务器状况,来自于http://nmon.sourceforge.net

  3. 模块介绍及编译

    1. 模块介绍

      1. mq-client-common-open与mq-client-open为客户端模块,它封装了rocketmq-client,客户端需要依赖它才能和MQCloud进行交互。
      2. mq-cloud-common与mq-cloud为MQCloud的web端,实现管理监控等一系列功能。
    2. 编译(maven需要在3.2.2及以上)

      1. mq-client-common-open与mq-client-open最低依赖jdk1.7。

      2. mq-cloud依赖jdk1.8,其采用spring-boot实现。

      3. 编译:

        1. 在sohu-tv-mq/下,执行mvn clean install -pl "!mq-cloud"(linux系统请将"!mq-cloud"改成'!mq-cloud'执行),将编译并install mq-client-common-open,mq-client-open,mq-cloud-common模块

        2. 在sohu-tv-mq/mq-cloud/下,执行mvn clean package,将编译并打包mq-cloud.war

    因为mq-client-*相关模块会提供给业务端使用,所以如果涉及到mq-client-*中的代码修改,需要在父pom中修改version,然后执行mvn -N versions:update-child-modules ,这样所有的子模块的版本均会更新(com.sohu.tv.mq.util.Version中的版本号也会自动修改)。

  4. 邮件预警实现

    可以到管理后台中的通用配置模块进行mail开头相关选项的配置,便可以直接使用邮件预警机制。

  5. 登录实现

    默认的登录采用用户名密码:com.sohu.tv.mq.cloud.service.impl.DefaultLoginService。

    当然注册和登录都没有进行太多安全性考虑,主要是基于MQCloud要部署到内网使用。

    另外还支持sso登录,可以自行实现类似如下类:

        public class SSOLoginService extends AbstractLoginService {
       
            @Override
            protected void auth(HttpServletRequest request, HttpServletResponse response) {
                // 跳到sso去登录认证
            }
       
            @Override
            protected String getEmail(String ticketKey) {
                // sso回调并携带ticket,这里调用sso进行校验ticket,获取登录id(email)
                return null;
            }
       
            @Override
            public void init() {
                
            }
        }
    

    如果采用sso认证登录,auth和getEmail方法的作用参考如下: sso