第202次(订单模块以及负载均衡和分库分表)

学习主题:订单模块以及负载均衡和分库分表

1. ego-rpc_ego-manager项目发布

(1) 描述ego-rpc项目发布需要什么插件,做哪些配置

assembly插件

ego项目中 添加 assembly 插件依赖

org.apache.maven.plugins
maven-assembly-plugin
2.5
ego-rpc-service-impl 添加 assembly 插件
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.bjsxt
ego-rpc
0.0.1-SNAPSHOT
ego-rpc-service-impl
com.bjsxt
ego-rpc-mapper
0.0.1-SNAPSHOT
com.bjsxt
ego-rpc-service
0.0.1-SNAPSHOT
org.springframework
spring-context
org.springframework
spring-aop
org.springframework
spring-tx
org.springframework
spring-jdbc
mysql
mysql-connector-java
com.alibaba
druid
org.mybatis
mybatis-spring
log4j
log4j
org.aspectj
aspectjweaver
aopalliance
aopalliance
junit
junit
test
com.alibaba
dubbo
com.101tec
zkclient
com.github.pagehelper
pagehelper
redis.clients
jedis
org.apache.commons
commons-lang3
org.apache.solr
solr-solrj
maven-assembly-plugin
assembly/assembly.xml
make-assembly
package
single
src/main/resources/spring
**/*.xml
META-INF/spring/
src/main/resources/mybatis
**/*.xml
src/main/resources/resources
**/*.properties
src/main/resources
**/*.properties

拷贝 assembly 插件到 ego-rpc-service-impl

修改 applicationContext-dubbo.xml

修改dubbo.properties 文件

dubbo.container=log4j,spring
dubbo.application.name=ego-rpc
dubbo.application.owner=
#dubbo.registry.address=multicast://224.5.6.7:1234
dubbo.registry.address=zookeeper://192.168.63.136:2181,192.168.63.136:2182,192.168.63.136:2183
#dubbo.registry.address=redis://127.0.0.1:6379
#dubbo.registry.address=dubbo://127.0.0.1:9090
dubbo.log4j.file=logs/ego-rpc.log
dubbo.log4j.level=WARN

(2) 描述ego-rpc发布为dubbo服务的时候spring配置文件去哪里加载

dubbo默认去META-INF/spring/目录中加载spring配置文件

2. Mycat介绍_垂直拆分_水平拆分

(1) 谈谈mycat分库垂直拆分的理解。

答:把一部分表放到一个数据库服务器上,另一部分放在别的服务器的意思

(2) 谈谈mycat分库水平拆分的理解。

答:将一个表中的数据拆分到多台数据库服务器上

3. Mycat相关概念_Mycat安装

(1) 请对mycat以下概念做详细说明

① 数据库中间件

就是介于数据库与应用之间,进行数据处理与交互的中间服务

② 逻辑库(schema)

对实际应用来说,并不需要知道中间件的存在,业务开发人员只需要知道 数据库的概念,所以数据库中间件可以被看做是一个或多个数据库集群构成的逻辑库

③ 逻辑表(table)

分布式数据库中,对应用来说,读写数据的表就是逻辑表。逻辑表,可以是数据切分后,分布在一个或多个分片库中,也可以不做数据切分,不分片,只有一个表构成

④ ER表

关系型数据库是基于实体关系模型(Entity-Relationship Model)之上,通过其描述了真实世界中事物与关系,Mycat 中的 ER 表即是来源于此。根据这一思路,提出了基于 E-R 关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上(这样做的最大的好处就是可以避免join时的跨库操作),即子表依赖于父表,通过表分组(Table Group)保证数据 Join 不会跨库操作

⑤ 分片规则

一个大表被分成若干个分片表,就需要一定的规则,这样按照某种业务规则把数据分到某个分片的规则就是分片规则

4. MyCat配置_数据导入_测试数据拆分

(1) 描述mycat配置的三个关键文件和作用

server.xml:MyCat 的配置文件,设置连接MyCat的账号、参数等

schema.xml:MyCat 对应的物理数据库和数据库表的配置

rule.xml:MyCat 分片(分库分表)规则

(2) 详细schema.xml常用配置标签和作用

schema配置逻辑库的标签

table

定义逻辑表的标签

dataNode

定义数据节点的标签

dataHost 标签

定义数据主机的标签

dataHost 子标签 writeHost

写数据的数据库定义标签. 实现读写分离操作.

writeHost 子标签 readHost

5. Mysql实现主从同步

(1) 谈谈对数据库读写分离的理解

答:搭建主从模式,让主数据库(master)处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库(slave)处理 SELECT 查询操作

(2) 谈谈对象数据库主从同步的理解

答:就是一种主备模式的数据库应用.

主库(Master)数据与备库(Slave)数据完全一致.

实现数据的多重备份, 保证数据的安全