mycat

目录

1.什么是mycat

2.为什么使用mycat

3.使用mycat

3.1.克隆一台虚拟机并且修改端口号

3. 2.上传并解压mycat

3.3.修改配置文件

 3.3.1.schema.xml配置文件

3.3.2.server.xml配置文件

3.3.3.启动mycat

3.3.4.登录mycat

4.测试

4.1.新建一个spring-boot的项目--省略

4.2.添加依赖

4.3.配置文件

4.4.实体类

4.5.mapper类

4.6.测试类

5.实现主从分离

5.1.修改schema.xml配置文件

5.2.测试


1.什么是mycat

Mycat数据库中间件,所谓中间件,是一类连接软件组件和应用的计算机软件,以便软件各部件之间的通信。

        例如 tomcat,web的中间件。而数据库中间件是连接Java应用程序和数据库中间的软件。

 2.为什么使用mycat

1.Java与数据库的紧耦合

2.高访问量高并发对数据库的压力

3.读写请求数据不一致

 我们现在普遍的Java应用程序都是直接连接了MySQL软件进行读写操作,也就是我们在Java中的配置文件等定义了mysql的数据源,直接连接到了我们的mysql软件,但是当某些情况下我们可能需要用到了多个数据库,这个时候我们可能就需要配多个数据源去连接我们的多个数据库,这个时候我们进行sql操作的时候就会很麻烦,因为Java与数据库有了一个紧密的耦合度,但是如果我们在Java应用程序与mysql中间使用了mycat,我们只需要访问mycat就可以了,至于数据源等问题,mycat会直接帮我们搞定。

        再来说一下高访问量高并发,我们都知道mysql数据库实际上在数据查询上是有一个瓶颈的,当我们的数据太多的时候,已经互联网上有高并发的请求的时候,这个时候对我们mysql的压力是非常大的,当访问量一大,就可能会出现查不出数据,响应的时间太长等,这个时候我们可能需要有多个服务器对数据库进行读写分离,以及对数据库进行集群,这个时候我们的sql语句要进行分类,哪个sql语句要访问哪个数据库,这个时候只要交给mycat就可以了。

3.使用mycat

3.1.克隆一台虚拟机并且修改端口号

修改端口号之后重启一下

3. 2.上传并解压mycat

tar -zxvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz --解压

 

 3.3.修改配置文件

进入conf配置文件中

 3.3.1.schema.xml配置文件

3.3.2.server.xml配置文件

 3.3.3.启动mycat

 3.3.4.登录mycat

复制一下回话输入

mysql -umycat -p1234 -P 8066 -h 192.168.74.156

mycat的端口号是8066

注意一定要把防火墙关闭

4.测试

4.1.新建一个spring-boot的项目--省略

4.2.添加依赖

  <properties>
        <java.version>1.8</java.version>
        <mysql.version>5.1.4</mysql.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

4.3.配置文件

server.port=8080
spring.datasource.url=jdbc:mysql://192.168.74.156:8066/testdb?serverTimezone=Asia/Shanghai
spring.datasource.username=mycat
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

4.4.实体类

@Data
public class User {
    @TableId(type = IdType.AUTO)
    private  Long id;
    private String name;
}

4.5.mapper类

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

4.6.测试类

  @Test
    void contextLoads() {
        User user=new User();
        user.setName("hhhhh");
        int insert = userMapper.insert(user);
        System.out.println(insert);
    }

我们发现可以同步,但是还没有实现主从分离

5.实现主从分离

5.1.修改schema.xml配置文件

5.2.测试

读的压力在从数据库

写的压力两边都有

  @Autowired
    private UserMapper userMapper;

    @Test
    void contextLoads() {
        User user=new User();
        user.setName("gggg");
        int insert = userMapper.insert(user);
        System.out.println(insert);
    }
    @Test
    public void demo1(){
        User user = userMapper.selectById(1);
        System.out.println(user);
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值