《Mycat分布式数据库架构》之应用层连接mycat数据源

前文回顾:

《Mycat分布式数据库架构》之原理及架构
《Mycat分布式数据库架构》之搭建详解
《Mycat分布式数据库架构》之配置详解
《Mycat分布式数据库架构》之数据切分和读写分离
《Mycat分布式数据库架构》之故障切换
《Mycat分布式数据库架构》之数据切分实战
《Mycat分布式数据库架构》之全局自增ID
《Mycat分布式数据库架构》之ER分片
《Mycat分布式数据库架构》之高可用集群
《Mycat分布式数据库架构》之Mycat管理



1、添加maven依赖

简单使用springboot+mybatis框架来进行演示,创建springboot项目后,在pom.xml文件中引入相关依赖,其实就是使用MySQL数据库驱动来连接mycat,如下。

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</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>
        <!-- jdbc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

2、添加配置文件

创建application.yml文件,内容如下:

#设置应用端口
server:
  port: 8080

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    # Mycat连接
    url: jdbc:mysql://192.168.157.129:8066/mycats?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
    username: yxc
    password: xxxxxx

# MyBatis
mybatis:
  type-aliases-package: com.example.springbootmybatismycat.domain
  mapper-locations: classpath:/mybatis/*.xml
  #sql打印配置
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3、实体类
public class User implements Serializable {
    private static final long serialVersionUID = 5088697673359856350L;
    private Integer userId;
    private String userName;

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
}

4、dao层

具体源码如下:

public interface UserMapper {
    List<User> selectUserList();
    void addUser(final User user);
}

5、service

创建Service,源码如下:

public interface UserService {
    List<User> listUser();
    void addUser(final User user);
}

6、xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.springbootmybatismycat.mapper.UserMapper">
    <resultMap type="User" id="UserResult">
        <id property="userId" column="id"/>
        <result property="userName" column="name"/>
    </resultMap>

    <select id="selectUserList" parameterType="User" resultMap="UserResult">
        select * from tb_user order by ID asc;
    </select>

    <insert id="addUser" parameterType="User">
        insert into tb_user(ID,NAME) values (125,'test');
    </insert>
</mapper>

7、Controller
@RestController
@RequestMapping("/cat")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping(value = "listUser")
    public List<User> listUser() {
        return userService.listUser();
    }

    @GetMapping(value = "addUser")
    public String addUser(User user) {
        userService.addUser(user);
        return "添加成功!";
    }
}

运行结果如下所示:

在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
分布式数据库是指将一个大型数据库拆分为多个子数据库,这些子数据库可以分布在不同的服务器或地域上,并通过网络连接实现数据共享与交互的一种架构。其中,mycat中间件是一种支持分布式数据库架构的开源mysql集群代理,可以对多个mysql数据库进行分片、读写分离、负载均衡等优化,提高了数据库的性能和可扩展性。 企业实践中,分布式数据库架构主要应用于如电子商务、金融、游戏等高并发场景,将数据分散到多台服务器上,避免单点故障和瓶颈的发生,保证了数据库的高可用性和可靠性。同时,通过mycat中间件对读写请求进行分离,解决了热点数据的问题,有效提升了数据库的读写性能。此外,mycat可以通过数据分片的方式实现数据的水平扩展,满足企业的业务需求。 例如,支付宝就使用了分布式数据库架构,并在mycat的基础上进行了二次开发。支付宝的数据库集群包括了多个分片节点,并通过mycat对访问进行路由和负载均衡,实现了近乎线性的扩展性。在2017年双十一的购物狂欢节中,支付宝的交易额达到了1207亿,没有发生任何事故,这得益于他们稳定的分布式数据库架构。 总之,分布式数据库架构mycat中间件已经广泛应用于企业实践中,成为了提高数据库性能和可扩展性的有力工具。同时,随着大数据、云计算等新技术的发展,分布式数据库架构的重要性和应用前景将会越来越广阔。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员大佬超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值