电商项目总结-第十三四天

最后两天:提高程序效率

一、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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容