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

泽州县住房保障和城乡建设局网站网上营销模式

泽州县住房保障和城乡建设局网站,网上营销模式,网站源码 和网站模板区别,网站开发多长时间原来项目用到的版本比较低了,趁项目升级,计划升级下相关版本。 下载地址 zookeeper 3.9.3 下载地址 kafka 3.9.0 下载地址 nginx 1.17.8 下载地址 Nginx 安装 这部分相比较简单,之前文件章也有描述,Linux的安装过程请参看之前…

原来项目用到的版本比较低了,趁项目升级,计划升级下相关版本。

下载地址

zookeeper 3.9.3 下载地址
kafka 3.9.0 下载地址
nginx 1.17.8 下载地址

Nginx 安装

这部分相比较简单,之前文件章也有描述,Linux的安装过程请参看之前博客内容:https://blog.csdn.net/xuxiannian/article/details/95967766
windows安使用,只需去Nginx官网下载包,解压即可使用。
便于一键安装的脚本已写好,拿去~~

#!/bin/bash
#Nginx版本
NGINX_VERSION="1.20.2"
#安装目录
NGINX_INSTALL_HOME="/data/install"
#中间件目录
NGINX_HOME="/usr/local/nginx"
if [ -d ${NGINX_HOME} ];thenecho "delete old exist Nginx ..."sleep 2rm -rf ${NGINX_HOME}
fi
if [!-d ${NGINX_INSTALL_HOME}]; thenmkdir ${NGINX_INSTALL_HOME}
fitar -zxvf nginx-${NGINX_VERSION}.tar.gzsleep 2
if [ $? -eq 0 ]; then echo "解压命令执行成功"
elseecho "解压命令  tar -zxvf nginx-${NGINX_VERSION}.tar.gz, Nginx源码失败,请检查文件是否完整。"exit 1
fi    echo "解压Nginx源码文件..."mkdir /data/installsleep 2mv nginx-${NGINX_VERSION} /data/installecho "======准备安装依赖组件========="yum install gccecho "已安装编译器GCC..."yum install pcre-devel echo "已安装表达式支持依赖PCRE库..."yum install zlib zlib-devel echo "已安装支持HTTP响应的GZIP压缩组件...."yum install openssl openssl-develecho "已安装支持HTTPS(SSL/TLS 加密)、HTTP/2等安全协议组件主库..."echo "=========安装依赖组件库完毕====="#进入Nginx安装目录cd /data/install/nginx-${NGINX_VERSION}echo "配置Nginx..."#./configure --prefix=${INSTALL_DIR} --with-http_ssl_module --with-http_v2_module./configure --with-http_ssl_module --with-http_v2_module
if [ $? -ne 0 ]; thenecho "配置Nginx失败,请检查依赖是否安装完整。"exit 1
fi# 编译和安装
echo "编译和安装Nginx..."
make
if [ $? -ne 0 ]; thenecho "编译Nginx失败,请检查错误信息。"exit 1
fisudo make install
if [ $? -ne 0 ]; thenecho "安装Nginx失败,请检查权限或目录是否正确。"exit 1
fi#设置环境变量
echo ${NGINX_HOME}echo " ">>/etc/profile
echo "# Nginx ENV">>/etc/profile
echo "NGINX_HOME=${NGINX_HOME}/sbin">>/etc/profile
echo 'PATH=$NGINX_HOME/sbin:$PATH'>>/etc/profile
echo 'export NGINX_HOME'>>/etc/profile
echo 'export CLASSPATH'>>/etc/profile
source /etc/profile# 验证安装
echo "验证安装..."
${NGINX_HOME}/nginx -v
if [ $? -ne 0 ]; thenecho "Nginx安装验证失败,请检查安装过程。"exit 1
fiecho "Nginx安装完成!"

JDK安装

方便JDK安装,可以将下面脚本保存在one-step-install-jdk.sh中。然后把 jdk-8u144-linux-x64.rpm和该脚本放一个路径下,用命令sh one-step-install-jdk.sh 执行即可
一键安装脚本附上~~~

#安装jdk
if [ -e /usr/java ];thenecho "delete old exist jdk ..."sleep 2rm -rf /usr/javarpm -e jdk1.8.0_144-1.8.0_144-fcs.x86_64echo "install new jdk ..."mkdir /usr/javasleep 2rpm -ivh jdk-8u144-linux-x64.rpm
elsemkdir /usr/javarpm -ivh jdk-8u144-linux-x64.rpm
fiJDKPATH="jdk1.8.0_144"
echo ${JDKPATH}echo " ">>/etc/profile
echo "# JDK ENV">>/etc/profile
echo "JAVA_HOME=/usr/java/${JDKPATH}">>/etc/profile
echo 'PATH=$JAVA_HOME/bin:$PATH'>>/etc/profile
echo 'CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar'>>/etc/profile
echo 'export JAVA_HOME'>>/etc/profile
echo 'export PATH'>>/etc/profile
echo 'export CLASSPATH'>>/etc/profile
source /etc/profile

Zookeeper 安装

  • 解压缩:tar -xvf kafka_2.12-2.0.0.tgz
  • 复制配制文件:进入conf目录,cp zoo_sample.cfg zoo.cfg
  • 修改配置文件:修改datadir、server.1…
dataDir=/data/zookeeper 
#修改日志文件路径
#修改log4l.properties文件
zookeeper.log.dir=/data/zookeeper/log
#修改bin/zkEnv.sh
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
#日志输出路径 不需mkdir zookeeper启动时自动创建ZOO_LOG_DIR="/data/zookeeper/log"
fi
# 默认2888端口用于同步数据;3888用于选举
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2889:3889

zookeeper 端口说明

2888端口主要用于ZooKeeper集群内部服务器之间的数据同步和通信。在ZooKeeper集群环境中,各个服务器节点(包括Leader和Follower)之间需要频繁地进行数据同步和状态更新,以确保集群的一致性和稳定性。这个过程中,2888端口就作为服务器之间通信的桥梁,承载着数据同步和状态更新的重要任务。具体来说,Leader服务器会监听2888端口,接收来自Follower服务器的数据同步请求,并将最新的数据同步给Follower服务器。3888端口则用于ZooKeeper集群中的Leader选举过程。在ZooKeeper集群中,如果Leader服务器因为某种原因宕机或失去联系,集群就需要进行Leader选举,以选出一个新的Leader服务器来继续提供服务。这个过程中,3888端口就作为集群内部服务器之间进行投票和通信的通道。服务器节点会通过3888端口向其他节点发送投票信息,并接收其他节点的投票结果,最终根据投票结果来确定新的Leader服务器。
  • 创建myid文件
分别在不同节点上创建myid文件
echo 1 > /data/zookeeper/myid
echo 2 > /data/zookeeper/myid
echo 3 > /data/zookeeper/myid
  • 启动
bin/zkServer.sh start 
  • 也可配成服务启停:systemctl start zookeeper.service
    vi /systemd/system/zookeeper.service或者目录为 /usr/lib/systemd/system/zookeeper.service
[Unit]Description=Startup script for the ZooKeeper daemonDocumentation=http://zookeeper.apache.org/After=network.target remote-fs.target nss-lookup.target[Service]Type=forkingExecStart=/opt/zookeeper-3.4.11/bin/zkServer.sh startExecReload=/bin/kill -HUP $MAINPIDExecStop=/opt/zookeeper-3.4.11/bin/zkServer.sh stopPrivateTmp=true[Install]WantedBy=multi-user.target

Kafka安装

  • 解压缩包:tar -xzf kafka_2.11-2.0.0.tgz
  • 修改config/server.properties
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
#kafka的集群就是起多个borker,注意每个borker.id不能一样。如果是在同一个机器上,使用不用的配置文件,其中id,端口号,log目录不能一样。
config/server-1.properties:
broker.id=1    
listeners=PLAINTEXT://:9093    
log.dir=/tmp/kafka-logs-1 
config/server-2.properties:    
broker.id=2    
listeners=PLAINTEXT://:9094    
log.dir=/tmp/kafka-logs-2
  • 启动kafka
启动kafka
nohup bin/kafka-server-start.sh config/server.properties  1>/dev/null 2>&1 &
停止kafka
bin/kafka-server-stop.sh
 小Tip:1>/dev/null 2>&1 &这个组合指令的意思是:将命令的标准输出和标准错误都重定向到/dev/null(即丢弃所有输出),并将该命令置于后台执行。这通常用于运行不需要任何输出且不希望干扰当前终端会话的长时间运行任务。

kafka、Zookeeper 一步安装脚本

便于安装又没用容器化部署,下面脚本可以微调下IP、路径可直接用

#安装jdk
#!/bin/bash
# 配置区域(根据实际情况修改)
############################################################
JAVA_VERSION="8"                          # Java版本
ZOOKEEPER_VERSION="3.9.3"                  # ZooKeeper版本
KAFKA_VERSION="3.9.0"                      # Kafka版本
SCALA_VERSION="2.12"                       # Scala版本
INSTALL_DIR="/data/install"                         # 安装目录
CLUSTER_NODES=("192.168.1.152" "192.168.1.115" "192.168.1.168")    # 集群节点列表(hostname或IP)
ZOOKEEPER_PORT_BASE=2181                   # ZooKeeper端口基准
KAFKA_PORT=9092                            # Kafka端口基准
USER="appuser"                          # 运行服务的用户
LOCAL_IP="1192.168.1.115"
ZOOKEEPER_HOME="/data/server/zookeeper3.9.3"
KAFKA_HOME="/data/server/kafka2.12-3.9.0"
############################################################# 配置zookeepersetup_zookeeper(){echo "正在部署Zookeeper集群..."tar -xvf /data/software/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz -C $INSTALL_DIRmkdir -p $ZOOKEEPER_HOMEln -s $INSTALL_DIR/apache-zookeeper-${ZOOKEEPER_VERSION}-bin $ZOOKEEPER_HOMEecho "解压缩Zookeeper源码文件.."#生成集群配置mkdir -p $ZOOKEEPER_HOME/{data,logs}chown -R $USER:$USER $ZOOKEEPER_HOME#定义配置文件为本地变量local zk_cfg="$INSTALL_DIR/apache-zookeeper-${ZOOKEEPER_VERSION}-bin/conf/zoo.cfg"cp $INSTALL_DIR/apache-zookeeper-${ZOOKEEPER_VERSION}-bin/conf/zoo_sample.cfg $zk_cfg#直接修改配置文件的LOG路径sed -i "s|dataDir=/tmp/zookeeper|dataDir=${ZOOKEEPER_HOME}/data|" $zk_cfgecho "dataLogDir=$ZOOKEEPER_HOME/logs" >> $zk_cfg# 添加集群节点配置echo "集群节点配置:"for i in "${!CLUSTER_NODES[@]}"; dolocal node_id=$((i+1))#echo "server.$node_id=${CLUSTER_NODES[i]}:$((2888)):$((3888))" >> $zk_cfgecho "server.$node_id=${CLUSTER_NODES[i]}:2888:3888" >> $zk_cfg# 生成myid文件(如果是当前节点)if [[ "${CLUSTER_NODES[i]}" == "$(hostname)" ]] || [[ "${CLUSTER_NODES[i]}" == "$LOCAL_IP" ]]; thenecho $node_id > $ZOOKEEPER_HOME/data/myidfidone# 配置环境变量echo "export ZOOKEEPER_HOME1=$INSTALL_DIR/apache-zookeeper-${ZOOKEEPER_VERSION}-bin" >> /etc/profileecho 'export PATH=$PATH:${ZOOKEEPER_HOME1}/bin' >> /etc/profile
}# 配置Kafka集群
setup_kafka() {echo "正在部署Kafka集群..."tar -xzf /data/software/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz -C $INSTALL_DIRmkdir -p $KAFKA_HOMEln -s $INSTALL_DIR/kafka_${SCALA_VERSION}-${KAFKA_VERSION} $KAFKA_HOME# 生成集群配置mkdir -p $KAFKA_HOME/logschown -R $USER:$USER $KAFKA_HOMElocal kafka_cfg="$INSTALL_DIR/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/config/server.properties"local broker_id=$(hostname | grep -oE '[0-9]+' || echo "1"I)#cp $INSTALL_DIR/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/conf/server.properties $kafka_cfgsed -i "s|broker.id=0|broker.id=${broker_id}|" $kafka_cfgsed -i "s|log.dirs=/tmp/kafka-logs|log.dirs=$KAFKA_HOME/logs|" $kafka_cfgsed -i "s|^#listeners=PLAINTEXT://:9092|listeners=PLAINTEXT://$LOCAL_IP:$KAFKA_PORT|" $kafka_cfg# 配置ZooKeeper连接local zk_connect=$(IFS=,; echo "${CLUSTER_NODES[*]}:${ZOOKEEPER_PORT_BASE}")sed -i "s|localhost:2181|$zk_connect|" $kafka_cfg# 配置副本参数echo "default.replication.factor=3" >> $kafka_cfgecho "min.insync.replicas=2" >> $kafka_cfg# 配置环境变量echo "export KAFKA_HOME1=$INSTALL_DIR/kafka_${SCALA_VERSION}-${KAFKA_VERSION}" >> /etc/profileecho 'export PATH=$PATH:${KAFKA_HOME1}/bin' >> /etc/profile
}# 创建系统服务文件
create_service() {echo "正在创建系统服务..."# ZooKeeper服务cat > /etc/systemd/system/zookeeper.service <<EOF
[Unit]
Description=ZooKeeper Service
After=network.target[Service]
User=$USER
Type=forking
Environment="JAVA_HOME=$JAVA_HOME"
ExecStart=$INSTALL_DIR/apache-zookeeper-${ZOOKEEPER_VERSION}-bin/bin/zkServer.sh start
ExecStop=$INSTALL_DIR/apache-zookeeper-${ZOOKEEPER_VERSION}-bin/bin/zkServer.sh stop
Restart=always[Install]
WantedBy=multi-user.target
EOF# Kafka服务cat > /etc/systemd/system/kafka.service <<EOF
[Unit]
Description=Kafka Service
After=network.target zookeeper.service[Service]
User=$USER
Type=simple
Environment="JAVA_HOME=$JAVA_HOME"
ExecStart=$INSTALL_DIR/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/bin/kafka-server-start.sh $INSTALL_DIR/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/config/server.properties
ExecStop=$INSTALL_DIR/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/bin/kafka-server-stop.sh
Restart=on-failure[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
}# 启动服务
start_services() {echo "正在启动集群服务..."systemctl enable --now zookeeper.servicesystemctl enable --now kafka.servicesleep 5systemctl status zookeeper.service kafka.service
}# 验证安装
verify_installation() {echo -e "\n验证部署结果:"# 检查ZooKeeper状态echo "[ZooKeeper状态]"$INSTALL_DIR/apache-zookeeper-${ZOOKEEPER_VERSION}-bin/bin/zkServer.sh status 2>/dev/null# 创建测试Topicecho -e "\n[Kafka测试]"local test_topic="test-cluster-topic"$INSTALL_DIR/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/bin/kafka-topics.sh --create \--bootstrap-server $LOCAL_IP:$KAFKA_PORT \--replication-factor 3 \--partitions 1 \--topic $test_topic# 列出Topic$INSTALL_DIR/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/bin/kafka-topics.sh --list \--bootstrap-server $LOCAL_IP:$KAFKA_PORTecho -e "\n部署完成!"
}main() {mkdir -p /data/installsetup_zookeepersetup_kafkacreate_servicestart_servicesverify_installation
}main

Zookeeper、Kafka鉴权配置

Kafka 和 ZooKeeper 的鉴权配置是保障分布式系统安全的重要环节。以下是基于 SASL/PLAIN 机制的开通鉴权详细步骤,涵盖 ZooKeeper 与 Kafka 的配置及验证方法:


一、ZooKeeper 鉴权配置

  1. 修改 ZooKeeper 配置文件
    zoo.cfg 中添加以下参数,启用 SASL 认证:

    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthScheme=sasl
    jaasLoginRenew=3600000
    
  2. 创建 JAAS 认证文件
    conf 目录下新建 zk_server_jaas.conf,内容示例如下:

    Server {org.apache.zookeeper.server.auth.DigestLoginModule requireduser_kafka="kafka_password";
    };
    
    • user_kafka 表示用户名为 kafka,密码为 kafka_password
  3. 修改启动脚本
    编辑 zkServer.sh,在第一行添加 JVM 参数加载 JAAS 文件:

    export JVMFLAGS="-Djava.security.auth.login.config=/path/to/zk_server_jaas.conf"
    
  4. 启动 ZooKeeper

    ./zkServer.sh start
    

二、Kafka 鉴权配置

  1. 修改 Kafka 配置文件
    server.properties 中启用 SASL 认证并配置监听地址:

    listeners=SASL_PLAINTEXT://0.0.0.0:9092
    security.inter.broker.protocol=SASL_PLAINTEXT
    sasl.enabled.mechanisms=PLAIN
    sasl.mechanism.inter.broker.protocol=PLAIN
    zookeeper.set.acl=true  # 确保 Kafka 与 ZooKeeper 的通信启用 ACL
    
  2. 创建 Kafka JAAS 文件
    config 目录下新建 kafka_server_jaas.conf,内容示例如下:

    KafkaServer {org.apache.kafka.common.security.plain.PlainLoginModule requiredusername="admin"password="admin_password"user_admin="admin_password";
    };
    Client {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="kafka"password="kafka_password";
    };
    
    • Client 部分需与 ZooKeeper 的 zk_server_jaas.conf 用户一致。
  3. 修改 Kafka 启动脚本
    kafka-server-start.sh 中添加 JVM 参数:

    export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_server_jaas.conf"
    
  4. 启动 Kafka

    ./kafka-server-start.sh -daemon config/server.properties
    

三、客户端鉴权配置

  1. 生产者与消费者配置
    在客户端配置文件(如 producer.propertiesconsumer.properties)中添加:

    security.protocol=SASL_PLAINTEXT
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin_password";
    
  2. 命令行测试示例

    • 生产者
      ./kafka-console-producer.sh --broker-list localhost:9092 --topic test --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN
      
    • 消费者
      ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN
      

四、高级配置选项

  1. 动态用户管理(SCRAM)
    若需动态添加用户,推荐使用 SASL/SCRAM 认证,通过 kafka-configs.sh 创建用户,无需重启集群:

    ./kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[password=user1_pwd]' --entity-type users --entity-name user1
    
  2. SSL/TLS 加密
    结合 SSL 加密通信(如 listeners=SSL://...),需生成证书并配置 server.properties 中的 ssl.keystore.locationssl.truststore.location 参数。


五、验证与监控

  1. ZooKeeper ACL 验证
    通过 zkCli.sh 登录并检查节点权限:

    ./zkCli.sh -server localhost:2181
    getAcl /brokers/topics
    
  2. Kafka Eagle 监控工具
    配置 Kafka Eagle 的 system-config.properties 文件,启用 SASL 鉴权参数以监控安全集群。


通过上述步骤,即可为 Kafka 和 ZooKeeper 开通鉴权,保障系统安全。若需更复杂的权限控制(如基于 Kerberos 或 Ranger),可参考相关扩展配置。

如何配置Kafka域名访问

http://www.dtcms.com/wzjs/471079.html

相关文章:

  • 成都三日游最佳路线安排seo优化是怎么回事呢
  • 建设一个b2c网站的费用在线客服系统
  • 中卫网站推广服务如何去做网络推广
  • 工业设计是什么青岛网络优化代理
  • ps企业站网站做多大的购买友情链接网站
  • 竞价页面网站做优化网页制作网站
  • 个人备案网站可以做商城吗杭州专业seo公司
  • 深圳龙华大浪做网站公司外贸商城建站
  • 做网站需要跟客户了解什么软件东莞免费建站公司
  • 三水网站设计深圳搜索引擎
  • 建立免费空间网站网页设计制作网站代码
  • 做废钢推广网站微营销
  • 顺义成都网站建设青岛seo关键词优化排名
  • 启迪网站建设说说seo论坛
  • 网站速度优化方案培训机构管理系统
  • 网站备案代码生成百度关键词优化多少钱一年
  • 手机端网站优化怎么创建网站快捷方式到桌面
  • 公司变更流程百度推广的优化软件
  • 大学生可做的网站主题专业网络推广外包
  • 厦门做网站多少钱hao123网址大全浏览器设为主页
  • 网站为什么做301营销策划方案怎么写?
  • wordpress自带下载插件旺道seo推广效果怎么样
  • 北京东城做网站网络推广员上班靠谱吗
  • 如何做微信个人网站网页设计制作软件
  • php网站开发门槛高吗如何做网站关键词优化
  • wordpress缩略图延时加载seo和sem的关系
  • 网站收录更新属于seo网站优化
  • 邯郸做网站询安联网络seo推广排名
  • 网站广告怎么做百度检索入口
  • 网站建设的未来友链交换不限内容