最后两天:提高程序效率
一、MySql主从
MySQL 默认支持主(master)从(slave)功能:配置完主从备份后效果:在“主”数据库中操作时,“从”同步进行变化;主从本质:主数据的操作写入到日志中,从数据库从日志中读取,进行操作
配置步骤
1、默认 MySQL 没有开启日志功能
2、每个数据库需要有一个 server_id,主 server_id 值小于从server_id
3、每个 mysql 都有一个 uuid,由于虚拟机直接进行克隆,需要修改uuid 的值.
4、必须要在主数据库中有一个用户具有被从数据库操作的权限.
二、MyCat
利用 mySQL 主从备份功能实现读写分离:增加,删除,修改,都操作主数据库,查询到从数据库中查询
具备功能:分库(建议使用)和分表(业务复杂)
MyCat中默认tableRule要求至少3个database
几个概念
1、逻辑库: 一个包含了所有数据库的逻辑上的数据库(MyCaat的逻辑库)
2、逻辑表: 一个包含了所有表的逻辑上的表(MyCat的逻辑表)
3、数据主机:数据库软件安装到哪个服务器上(MySql)
4、数据节点:数据库软件中的 database(MySql中的库)
5、分片规则: 默认每个表中数据都一样的
6、读主机:哪个数据库做为读操作
7、写主机:哪个数据库做为写操作
三、部署dubbo
maven打包插件Assembly使用步骤
1、在war项目的pom文件下添加以下
<!-- 指定项目的打包插件信息 -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- 指定打包描述文件的位置:相对项目根目录的路径 -->
<!-- assembly打包的描述文件 -->
<descriptor>assembly/assembly.xml</descriptor>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
2、在根目录下新建assembly文件夹

3、在assembly文件夹中新建assembly.xml
<?xml version='1.0' encoding='UTF-8'?>
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<!-- 该字符会添加到最终tar.gz包的名称后面,作为后缀 -->
<id>assembly</id>
<!-- 指定打包的格式为tar.gz,该类型压缩包在linux中比较常见 -->
<formats>
<format>tar.gz</format>
</formats>
<!-- 在tar.gz压缩包中是否包含根文件夹,该根文件夹名称和tar.gz去掉id后缀一致 -->
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<!-- 将项目根路径下assembly/bin路径中的内容打包到压缩包中的根目录下的bin目录中 -->
<fileSet>
<!-- 相对项目根路径的相对路径 -->
<directory>assembly/bin</directory>
<outputDirectory>bin</outputDirectory>
<!-- 设置最终tar.gz中该文件夹下的权限,跟linux权限写法一致 -->
<fileMode>0755</fileMode>
</fileSet>
<!-- 将项目根路径下assembly/conf路径中的内容打包到压缩包中的根目录下的conf目录中 -->
<fileSet>
<directory>assembly/conf</directory>
<outputDirectory>conf</outputDirectory>
<!-- 设置其linux权限 -->
<fileMode>0644</fileMode>
</fileSet>
</fileSets>
<!-- 将所有依赖的jar包打包到压缩包中的根目录下的lib目录中 -->
<!-- 此lib目录中包含自己开发的项目jar包以及demo_service.jar,还有第三方的jar包 -->
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
4、解压下载的dubbo-monitor-simple-2.5.4-assembly.tar.gz(去dubbo-monitor-simple官网下载对应版本即可,注意:需要下载的是与jdk版本对应的那个版本)压缩包,把解压后的bin和conf粘贴到项目下assembly文件夹中.然后清空conf/dubbo.properties中内容(因为可能在xml里已经进行过了配置)
5、右键项目--> maven install,发现在target下出现: 项目名-版本-assembly.tar.gz压缩包
6、解压压缩包,可以发现有两个格式的start文件:window中使用start.bat启动,关闭命令窗口关闭服务、linux中使用start.sh启动使用stop.sh关闭.
7、如果在linux环境下,可以设置自启动(如果是设置redis自启动,注意在启动redis之前要先配置jdk的设置)
配置Nginx
配置链接:https://www.jianshu.com/p/b1cd3fbb166d
附件
mysql主从配置和mycat配置:https://www.jianshu.com/p/300cf7bacd75