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

企业级集群部署gpmall商城:MyCat+ZooKeeper+Kafka 环境部署与商城应用上线流程

简介

本次围绕企业级分布式系统搭建与应用落地展开,详细记录了从基础中间件集群部署到商城应用上线的全流程操作。内容涵盖四大核心模块,通过 MyCat 构建 MySQL 读写分离集群,配置不同负载均衡策略实现数据库读写压力拆分,提升数据处理效率;其次部署 ZooKeeper 三节点集群,完成分布式协调服务搭建,保障系统高可用;再基于 ZooKeeper 集群部署 Kafka 消息队列,实现分布式消息传递与解耦;最后整合 MyCat、Redis、ZK、Kafka 等中间件,配置 Nginx 反向代理与负载均衡,完成商城应用的环境搭建与系统上线。

1.数据库构建读写分离集群

 [root@node1 conf]# yum install java java-devel -y
 [root@node1 conf]# tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
  chmod -R 777 /usr/local/mycat/
  在/etc/profile系统变量文件中添加mycat服务的系统变量,并生效变量。
 [root@mycat ~]# echo export MYCAT_HOME=/usr/local/mycat/ >> /etc/profile
 [root@mycat ~]# source /etc/profile
 ​
  修改配置文件权限
 修改schema.xml的用户权限,命令如下
 [root@node1 conf]# cd /usr/local/mycat/conf/
 [root@mycat ~]# chown root:root schema.xml
 [root@node1 conf]# vi schema.xml
 <?xml version="1.0"?>
 <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
 <mycat:schema xmlns:mycat="http://io.mycat/">
 <schema name="USERDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1"></schema>
 <dataNode name="dn1" dataHost="localhost1" database="test" />
 <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" dbType="mysql" dbDriver="native" writeType="0" switchType="1"  slaveThreshold="100">
     <heartbeat>select user()</heartbeat>
     <writeHost host="hostM1" url="192.168.30.5:3306" user="root" password="000000">
         <readHost host="hostS1" url="192.168.30.5:3306" user="root" password="000000" />
     </writeHost>
 </dataHost>
 </mycat:schema>
 ---------------------------解释
 sqlMaxLimit:配置默认查询数量
 database:为真实数据库名
 balance="0",不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
 balance="1",全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。
 balance="2",所有读操作都随机的在writeHost、readhost上分发。
 balance="3",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力,注意balance=3只在1.4及其以后版本有,1.3没有。
 writeType="0",所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .
 ----------------------------------------
 [root@node1 conf]# vi server.xml
 #改
 <property name="password">000000</property>
 <property name="schemas">USERDB</property>
 删除95-99
 [root@node1 conf]# /bin/bash /usr/local/mycat/bin/mycat start  或 ./mycat start
 [root@node1 conf]# netstat -ntpl 
 Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
 tcp        0      0 127.0.0.1:32000         0.0.0.0:*               LISTEN      13232/java          
 tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      522/rpcbind         
 tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1194/sshd           
&
http://www.xdnf.cn/news/18907.html

相关文章:

  • Linux SSH 基于密钥交换的自动登录原理简介及配置说明
  • 税务岗位职场能力解析与提升路径规划
  • spring全家桶
  • VMware 中 Ubuntu 右上角网络图标消失的 5 种终极修复方案
  • Android 中使用开源库 ZXing 生成二维码图片
  • Android 播放MP4格式,大视频 几个小时的视频点击快进键视频进度会倒退一秒
  • 基于 Elasticsearch 解决分库分表查询难题
  • MySQL 索引:结构、对比与操作实践指南
  • OpenAI o1:OpenAI最新推出的AI大语言模型,更擅长推理也更贵
  • 使用JDK11标准 实现 图数据结构的增删查改遍历 可视化程序
  • Linux应急响应一般思路(三)
  • Vulkan 学习路线图
  • 【机器学习】(11) --回归树算法
  • 算法题打卡力扣第167题:两数之和——输入有序数组(mid)
  • AMH和cyberpanel等管理软件,哪个里面可以部署AI软件?
  • week4-[二维数组]平面上的点
  • 文件读取结束的判定方法:正确使用feof函数避免文件读取错误
  • 代码随想录算法训练营30天 | ​​01背包理论基础、416. 分割等和子集
  • Pandas 高效数据处理:apply、向量化与分组
  • Android用Coil 3检查媒体资源是否有效,Kotlin
  • LeetCode 面试经典 150_双指针_验证回文串(25_125_C++_简单)(双指针)
  • 基于多通道同步分析的智能听诊系统应用程序
  • k8s数据存储
  • k8s-容器化部署论坛和商城服务(小白的“升级打怪”成长之路)
  • Rust Async 异步编程(六):Pin 和 Unpin
  • Python实现点云投影到直线、平面、柱面和球面
  • ComfyUI AI一键换装工作流无私分享
  • 《分布式系统跨服务数据一致性Bug深度复盘:从现象到本质的排查与破局》
  • 从“数据孤岛”到“业财融合”,外贸订单管理ERP重构一体化逻辑
  • 电气工程及其自动化的课程笔记