分布式事务实战
实战代码示例: https://gitee.com/ixinglan/mysql-demo.git
sharding-jdbc-demo: 详见README.md 介绍
ShardingSphere整合了XA、Saga和Seata模式后,为分布式事务控制提供了极大的便利,我们可以在应用程序编程时,采用以下统一模式进行使用。
实战代码示例: https://gitee.com/ixinglan/mysql-demo.git
sharding-jdbc-demo: 详见README.md 介绍
ShardingSphere整合了XA、Saga和Seata模式后,为分布式事务控制提供了极大的便利,我们可以在应用程序编程时,采用以下统一模式进行使用。
CAP, BASE理论, 可参考 [分布式架构理论] 分类查看详情
在 [分布式架构理论], **[分布式事务]**分类也有相关介绍
实战代码示例: https://gitee.com/ixinglan/mysql-demo.git
sharding-jdbc-demo: 详见README.md 介绍
我们以c_user表示例,只需1个库即可
CREATE TABLE `c_user` (
`Id` bigint(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) DEFAULT NULL,
`pwd_plain` varchar(256) DEFAULT NULL,
`pwd_cipher` varchar(256) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# datasource
spring:
shardingsphere:
datasource:
names: ds0
ds0:
type: com.zaxxer.hikari.HikariDataSource
driver-class: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/sharding-demo1
username: root
password: 123456
# 指定是否用密文列作查询
props:
query:
with:
cipher:
column: true
#encrypt
encrypt:
tables:
c_user:
columns:
pwd:
plainColumn: pwd_plain # 逻辑列pwd对应的明文列
cipherColumn: pwd_cipher #逻辑列pwd对应的密文列
encryptor: demo_pwd #下面定义的自定义名称
# 主键生成器
keyGenerator:
column: id
type: SNOWFLAKE
#指定算法
encryptors:
demo_pwd: #自定义名称
type: aes
props:
aes:
key:
value: 1234 #密钥
数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息按照规定,都需要进行数据脱敏。
实战代码示例: https://gitee.com/ixinglan/mysql-demo.git
sharding-jdbc-demo: 详见README.md 介绍
我们以city表示例
# datasource
spring:
shardingsphere:
datasource:
names: ds0,ds1
ds0:
type: com.zaxxer.hikari.HikariDataSource
driver-class: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/sharding-demo1
username: root
password: 123456
ds1:
type: com.zaxxer.hikari.HikariDataSource
driver-class: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/sharding-demo2
username: root
password: 123456
# sharding-database
sharding:
tables:
city:
databaseStrategy:
hint:
algorithmClassName: com.hint.MyHintShardingAlgorithm