mysql数据库的读写分离

 该章节的实验需要基于http://t.csdnimg.cn/mT4Bs中的实验来进行。

  • 读写分离

    • 实现方法

      • 在代码上实现读写分离,但对于运维者不友好

      • 设置代理

        • 现在大多采用amoeba作为中间代理服务器做读写分离操作。

          • 2008,阿里巴巴前员工,陈思儒基于java1.6的环境开发,因为没有做过大型升级,因此依赖的java环境较老。不支持事务的分离

    • 注意事项

      • 要用与amoeba相比配的jdk环境,1.6或者1.5

    • 实验过程

      • 本实验基于前文的主从复制,在添加一个amoeba服务器与客户端即可。

      • 以jdk1.6的二进制包为例

          • 将该软件执行后移动到常用软件目录下即可一般为/usr/local/jdk,”jdk”是重命名后的目录名

          • 安装后修改变量信息将jdk与amoeba的相关变量都写入/etc/profile中

            • export JAVA_HOME=/usr/local/jdk1.6

            • export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

            • export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$JAVA_HOME/bin

            • export AMOEBA_HOME=/usr/local/amoeba/

            • export PATH=$PATH:$AMOEBA_HOME/bin

          • 然后在系统命令行中执行java -version查看版本信息,出现如下字样表示jdk环境部署成功。

      • 以amoeba-mysql-binary-2.2.0.tar.gz为例

        • 由于解压后该tar包并不会创建一个综合目录,存放所有信息,所以我们需要提前创建一个目录将解压后的数据放到该目录下。

          • mkdir /usr/local/amoeba

            • 创建存放软件目录

          • tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/

            • -C :指定解压目录

        • 修改配置文件参数(/usr/local/amoeba/conf)

          • 有两个文件需要注意

            • amoeba.xml

              • 该文件是对应了amoeba与客户端的连接

                • 有几个单元需要注意

                  • 标识1:该位置定义了服务的名称
                  • 标识2:该位置决定了该服务监听的端口

                    • 通常情况下,一个amoeba只会与一个数据库的某一个库或者表建立连接,当根据不同的需要,要访问不同的库时,基于安全的考虑并不会给予amoeba与数据库的连接的账号过大的权限,因此在同一台服务器上跑多个amoeba程序是一种解决办法。修改监听端口即可实现。

                  • 认证器单元:

                  • 标识1:提供给客户端的访问账号,

                  • 标识2:客户端访问账号的密码

                  • 请求路由单元:

                  • 标识1:定义默认池的名字

                  • 标识2:定义写入池的名字

                  • 标识3:定义读取池的名字

                    • 这是修改后的配置,不是默认的配置

            • dbServers.xml

              • 该文件对应了amoeba与数据库的连接

                • 标识1:amoeba与数据库建立连接的端口
                • 标识2:类似于默认登录到的数据库,要么提前创建一个没用的库,要么指定一个已有的库,要有安全考虑。

                • 标识3:amoeba访问数据库的账号,需要在数据库中授予相应的权限。

                • 标识4:amoeba访问数据路的账号的密码。

                • 在这个单元中,有多少个服务器就可以指定多少个服务器,给每个服务器起名用于区分,并指定IP地址。在这个amoeba中只负责与3306的端口的MySQL数据库建立连接。

                • 标识1:与amoeba.xml默认池的名字要一致

                • 标识2:与amoeba.xml的读取池名字要一致

                • 标识3:可以设置多个读取服务器,分担压力。

        • 解压后因为前面已经添加过系统变量,所以直接执行amoeba 会有相关提示证明部署没有问题。

        • 修改完毕后就可以进行启动测试

          • amoeba start &

            • 因为该程序运行时会占用前端,因此可以放到后端运行。

          • 查看进程后出现该字样标识成功。

        • 之后就可以进行创建数据测试是否读写分离。默认是按照轮询的方式从读取池中的服务区读取信息。

将以上全选复制,粘贴到xmind中可查看到条理性笔记。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/761666.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java面试题--JVM大厂篇之深入了解G1 GC:高并发、响应时间敏感应用的最佳选择

引言: 在现代Java应用的性能优化中,垃圾回收器(GC)的选择至关重要。对于高并发、响应时间敏感的应用而言,G1 GC(Garbage-First Garbage Collector)无疑是一个强大的工具。本文将深入探讨G1 GC适…

XJTUSE-数据结构-homework2

当时写的还挺痛苦的 不过现在看,原老师布置的作业真的有水平 现在来看大二数据结构的作业,真的很锻炼代码能力。有些题目,我现在写也不一定能很快写出来hhhh 当时写的作业感觉还是存在问题的! 任务概述 任务 1 :指定的…

期末考试后,老师如何高效把成绩发给家长

期末考试终于结束了,老师们是不是感觉松了一口气呢?但是,成绩发布这个环节可不能马虎哦!今天,我就来跟大家分享一下如何高效地把成绩发给家长,让这个环节变得既轻松又高效! 先把最高效的方式告诉…

mac英语学习工具:Eudic欧路词典 for Mac 激活版

Eudic欧路词典是一款非常受欢迎的英语学习软件,它提供了丰富的词汇解释、例句、同义词、反义词等功能,帮助用户更好地理解和掌握英语单词。 以下是Eudic欧路词典的一些主要特点: 海量词汇库:Eudic欧路词典拥有庞大的词汇库&#…

树状数组——点修区查与区修点查

树状数组是一种代码量小,维护区间的数据结构 他可以实现: 1.区间修改,单点查询 2.单点修改,区间查询 当然,二者不可兼得,大人全都要的话,请选择线段树 前置知识: lowbit(x)操作…

前端vue项目升级nodejs后无法运行了

问题描述: 运行、打包都正常的vue项目,在将nodejs升级到v20.14.0后,均报错了: Error: error:0308010C:digital envelope routines::unsupported opensslErrorStack: [ error:03000086:digital envelope routines::initializ…

海外仓一件代发功能自动化:海外仓WMS系统配置方法

根据数据显示,2014-2019年短短几年之间,跨境电商销售总额增长了160%以上。这为跨境电商商家和海外仓,国际物流等服务端企业都提供了巨大的发展机遇。 然而,作为海外仓,要想服务好跨境电商,仓库作业的每一个…

Windows Server 2019部署网络负载均衡NLB服务的详细操作步骤

部署前准备 首先需要准备两台Windows Server 2019服务器,虚拟机创建请参考 VMware Workstation安装Windows Server2019系统详细操作步骤_安装windows server 2019操作系统(写出操作过程)-CSDN博客 克隆虚拟机请参考 VMware Workstation克隆虚拟机详细步骤-CSDN博…

【FFmpeg】av_write_frame函数

目录 1.av_write_frame1.1 写入pkt(write_packets_common)1.1.1 检查pkt的信息(check_packet)1.1.2 准备输入的pkt(prepare_input_packet)1.1.3 检查码流(check_bitstream)1.1.4 写入…

leetcode 403周赛 包含所有1的最小矩形面积||「暴力」

3197. 包含所有 1 的最小矩形面积 II 题目描述: 给你一个二维 二进制 数组 grid。你需要找到 3 个 不重叠、面积 非零 、边在水平方向和竖直方向上的矩形,并且满足 grid 中所有的 1 都在这些矩形的内部。 返回这些矩形面积之和的 最小 可能值。 注意…

AI写作革命:AI如何成为你的全能型写作助手

工欲善其事,必先利其器。 随着AI技术与各个行业或细分场景的深度融合,日常工作可使用的AI工具呈现出井喷式发展的趋势,AI工具的类别也从最初的AI文本生成、AI绘画工具,逐渐扩展到AI思维导图工具、AI流程图工具、AI生成PPT工具、AI…

肆拾玖坊的商业模式,49坊新零售奖金制度体系,众筹众创+会员制

肆拾玖坊之所以能够在短时间内成为白酒行业的“现象级”企业,,不仅是依靠独特商业模式,同时也依靠的是坚持用户为核心,围绕用户需求,让用户与产品直接产生连接理念。 坐标:厦门,我是易创客肖琳 深耕社交新零售行业10年,主要提供新零售系统工…

Windows 安装docker详细步骤说明

文章目录 1. 检查系统要求2. 启用硬件虚拟化3. 启用Hyper-V和容器功能4. 下载并安装Docker Desktop5. 配置Docker Desktop6. 安装WSL 27. 验证Docker安装8. 常见问题排查9. 重点说明参考资源 在Windows上安装Docker的详细步骤如下: 1. 检查系统要求 确保您的Window…

【CSAPP]-binarybomb实验

目录 实验目的与要求 实验原理与内容 实验设备与软件环境 实验过程与结果(可贴图) 操作异常问题与解决方案 实验总结 实验目的与要求 1. 增强学生对于程序的机器级表示、汇编语言、调试器和逆向工程等方面原理与技能的掌握。 2. 掌握使用gdb调试器…

Soul社交元宇宙智能连接安全相伴,打造值得用户信赖的社交环境

随着人工智能技术的快速发展,社交平台正在迎来一场革命性的变革。从智能推荐到情感分析,社交平台通过深度学习和数据分析为用户提供更加个性化、智能化的社交体验。与此同时,数字时代人们的安全意识正逐渐增强。为此,一个智能、安全的社交平台成为人们迫切需要。而新型社交平台…

CSRF verification failed. Request aborted.

最近在学习django,遇到这个问题。CSRF verification failed. Request aborted. 解决方案: 1、在Html template中加入csrf_token 2、在view.py中对应的view函数上加上装饰器 再启动运行,报错就解决了。

Zabbix HA高可用集群部署

Zabbix HA高可用集群介绍 关键基础设施通常需要高可用性 (HA),因为这些基础设施几乎不会造成停机。因此,对于任何可能失败的服务,都必须有一个故障转移选项,以便在当前服务失败时接管。 Zabbix 提供了易于设置的本机高可用性解决…

c#学习日志用CLI(命令行窗口)创建c#工程

创建Helloworld.Proj和Program.cs两个文件然后运行即可,一种方法是用记事本创建,写入代码,这种比较费劲,主要代码如下 Program.cs中代码如下 System.Console.WriteLine("Hello World!!"); Helloworld.Proj中的代码如…

提升写作效率:探索AI在现代办公自动化中的应用

工欲善其事,必先利其器。 随着AI技术与各个行业或细分场景的深度融合,日常工作可使用的AI工具呈现出井喷式发展的趋势,AI工具的类别也从最初的AI文本生成、AI绘画工具,逐渐扩展到AI思维导图工具、AI流程图工具、AI生成PPT工具、AI…

DELL:利用大语言模型(LLM)生成评论与解释,革新虚假信息检测

ACL 2024 DELL: Generating Reactions and Explanations for LLM-Based Misinformation Detection https://arxiv.org/abs/2402.10426https://arxiv.org/abs/2402.10426 1.概述 大型语言模型(LLM)虽在诸多领域显示出色性能,但在直接应用于新闻真实性鉴别时,面临两大核心挑…