参考;https://www.cnblogs.com/binghe001/p/13959992.html
Mycat支持水平分片、垂直分片。
在schema.xml文件我们可以清楚的认识这些概念。
根据服务器情况下载对应的版本。
https://github.com/MyCATApache/Mycat-download/tree/master/1.6-RELEASE
# 解压
tar -xvf xxx # 解压结果 root;ubuntu:/home/liangshijie/mycat# ls bin catlet conf lib logs version.txt # 配置环境变量 vim /etc/profile # 追加; export PATH=/home/liangshijie/mycat/bin:${PATH} # 刷新环境变量 source /etc/profile
配置
基本情况
环境;ubuntu18、使用docker启动;
数据库;study;
数据表;user;
mysql5.7主从集群;
节点地址主192.168.204.139从192.168.204.138从192.168.204.140
配置文件
# 进入mycat 的conf目录
cd /home/liangshijie/mycat/conf
# 修改
vim server.xml # 将schemas改为study。 # 在这里可以mycat客户端登录密码。 # root账户默认读写 # user账户是只读 <user name=;root;> <property name=;password;>123456</property> <property name=;schemas;>study</property> </user> <user name=;user;> <property name=;password;>user</property> <property name=;schemas;>study</property> <property name=;readOnly;>true</property> </user>
# 修改物理节点相关配置
vim schema.xml # 先修改schema的name为我们的数据库study # 修改table标签;表为user;使用dn1节点 # 根据集群修改dataHost <?xml version=;1.0;?> <!DOCTYPE mycat:schema SYSTEM ;schema.dtd;> <mycat:schema xmlns:mycat=;http://io.mycat/;> <schema name=;study; checkSQLschema=;true; sqlMaxLimit=;100;> <!-- auto sharding by id (long) --> <table name=;user; dataNode=;dn1; /> <!-- global table is auto cloned to all defined data nodes ,so can join with any table whose sharding node is in the same data node --> <!-- random sharding using mod sharind rule --> <!-- <table name=;dual; primaryKey=;ID; dataNode=;dnx,dnOracle2; type=;global; needAddLimit=;false;/> <table name=;worker; primaryKey=;ID; dataNode=;jdbc_dn1,jdbc_dn2,jdbc_dn3; rule=;mod-long; /> --> <!-- <table name=;oc_call; primaryKey=;ID; dataNode=;dn1$0-743; rule=;latest-month-calldate; /> --> </schema> <!-- <dataNode name=;dn1$0-743; dataHost=;localhost1; database=;db$0-743; /> --> <dataNode name=;dn1; dataHost=;node1; database=;study; /> <!-- <dataNode name=;dn2; dataHost=;localhost1; database=;study; /> <dataNode name=;dn3; dataHost=;localhost1; database=;study; /> --> <!--<dataNode name=;dn4; dataHost=;sequoiadb1; database=;SAMPLE; /> <dataNode name=;jdbc_dn1; dataHost=;jdbchost; database=;db1; /> <dataNode name=;jdbc_dn2; dataHost=;jdbchost; database=;db2; /> <dataNode name=;jdbc_dn3; dataHost=;jdbchost; database=;db3; /> --> <dataHost name=;node1; maxCon=;1000; minCon=;10; balance=;1; writeType=;0; dbType=;mysql; dbDriver=;native; switchType=;1; slaveThreshold=;100;> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host=;hostM1; url=;192.168.204.139:3306; user=;root; password=;123456;> <!-- can have multi read hosts --> <readHost host=;hostS2; url=;192.168.204.137:3306; user=;root; password=;123456; /> <readHost host=;hostS3; url=;192.168.204.140:3306; user=;root; password=;123456; /> </writeHost> <!-- <writeHost host=;hostS1; url=;localhost:3316; user=;root; password=;123456; /> --> <!-- <writeHost host=;hostM2; url=;localhost:3316; user=;root; password=;123456;/> --> </dataHost> <!-- <dataHost name=;sequoiadb1; maxCon=;1000; minCon=;1; balance=;0; dbType=;sequoiadb; dbDriver=;jdbc;> <heartbeat> </heartbeat> <writeHost host=;hostM1; url=;sequoiadb://1426587161.dbaas.sequoialab.net:11920/SAMPLE; user=;jifeng; password=;jifeng;></writeHost> </dataHost> <dataHost name=;oracle1; maxCon=;1000; minCon=;1; balance=;0; writeType=;0; dbType=;oracle; dbDriver=;jdbc;> <heartbeat>select 1 from dual</heartbeat> <connectionInitSql>alter session set nls_date_format=;yyyy-mm-dd hh24:mi:ss;</connectionInitSql> <writeHost host=;hostM1; url=;jdbc:oracle:thin:;127.0.0.1:1521:nange; user=;base; password=;123456; > </writeHost> </dataHost> <dataHost name=;jdbchost; maxCon=;1000; minCon=;1; balance=;0; writeType=;0; dbType=;mongodb; dbDriver=;jdbc;> <heartbeat>select user()</heartbeat> <writeHost host=;hostM; url=;mongodb://192.168.0.99/test; user=;admin; password=;123456; ></writeHost> </dataHost> <dataHost name=;sparksql; maxCon=;1000; minCon=;1; balance=;0; dbType=;spark; dbDriver=;jdbc;> <heartbeat> </heartbeat> <writeHost host=;hostM1; url=;jdbc:hive2://feng01:10000; user=;jifeng; password=;jifeng;></writeHost> </dataHost> --> <!-- <dataHost name=;jdbchost; maxCon=;1000; minCon=;10; balance=;0; dbType=;mysql; dbDriver=;jdbc;> <heartbeat>select user()</heartbeat> <writeHost host=;hostM1; url=;jdbc:mysql://localhost:3306; user=;root; password=;123456;> </writeHost> </dataHost> --> </mycat:schema>
启动命令
mycat start | stop | restart | status
链接客户端
服务器开放端口8066。
使用可视化工具链接。账户密码;root123456。
测试
插入或查询数据。
查看当前server_id; SELECT ;;server_id;
整合Springboot
跟Springboot整合只需修改mysql的数据源配置。
spring: datasource: username: root password: 123456 type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.204.142:8066/study?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true server: port: 8062
<?xml version=;1.0; encoding=;UTF-8;?>
<project xmlns=;http://maven.apache.org/POM/4.0.0; xmlns:xsi=;http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=;http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd;> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springFramework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>cn.lsj</groupId> <artifactId>read-write-separation</artifactId> <version>0.0.1-SNAPSHOT</version> <name>read-write-separation</name> <description>Demo project for Spring Boot</description> <properties> <java.version>8</java.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.1</version> </dependency> <!--jdbc--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--Druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.22</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
;SpringBootApplication
;MapperScan(;cn.lsj.readwriteseparation.mapper;) public class ReadWriteSeparationApplication { public static void main(String[] args) { SpringApplication.run(ReadWriteSeparationApplication.class, args); } }
;RequestMapping(;test;)
;AllArgsConstructor ;RestController public class TestController { private final UserService userService; ;GetMapping(;read;) public User read() { return userService.getById(1); } ;PostMapping(;write;) public String write(;RequestBody User user) { userService.saveOrUpdate(user); return ;成功;; } }
;Data
public class User { private int id; private String username; } public interface UserMapper extends BaseMapper<User> { } public interface UserService extends IService<User> { } ;Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { }
下一篇:最后一页
相关文章
-
MySQL5.7版本安装配置教程(超级详细),Server Computer 是像主要用于像FTP,email,web服务器等等。Development Computer 适合个人开发学习使用的。Dedicated Computer 只用作MySQL服务器。“Developer Default”是开发者默认。“Server only”仅作为服务器安装。“Clientonly”仅作为客户端安装。“Custom”是自定义安装。注:这里选择的是64位系统。“Full”是完整安装。...
-
windows安装配置git和ToriseGit,--------------------------安装完成,接下在是配置---------------------------------完成后,点击,下面的save public key和save private key,报错公私钥到任意目录就行。———————————————配置完毕,可以使用了—————————————————(1)公钥添加到代码仓库,私钥,在windows中搜索,Pageant,打开如下图。2、安装语言包,直接运行语言包程序,安装...
- 11-18安装配置vscode
- 11-09MySQL 5.7.27 详细下载安装配置教程
- 11-07Windows中安装配置Maven详细教程
- 11-01mysql怎么安装?-mysql安装配置教程攻略
- 10-19node.js--v15.0.0下载安装配置教程笔记
- 10-08GBase集群安装配置(包含虚拟机安装和配置)
网友评论
快盘下载暂未开通留言功能。
-
推荐文章
最新文章