如何使用 Shardingsphere Proxy 分库分表
Apache Shardingsphere 是一个用来分表分库的插件,它提供两种集成方式,一种是在代码层面做集成,shardingsphere jdbc,一种是通过中间件的方式来集成,这个就是本文要讲解的内容,Shardingsphere proxy。
What's Shardingsphere proxy
Shardingsphere proxy 从字面上就可以理解,它是一个 proxy,在应用程序和数据库之间搭建了一个这样的中间件,这样对于应用程序来说分库分片的细节都是透明的,应用程序不需要引入任何 shardingsphere 的依赖,只需要将数据库的 url 换成 proxy 的连接,数据库的用户名/密码换成 proxy 里面设置的用户名/密码。
Why need Shardingsphere proxy
万物存在就会有它的价值,对于一个这样一个 proxy,它的存在就是简化应用程序的配置,让应用程序变的更简单。
Why still use Shardingsphere JDBC.
凡事有利有弊,Proxy 带来了方便,同样它引入了一个新的中间件,同样数据库的请求也通过这个中间件做了二次转发,当然也会损失一些性能,对于性能敏感的应用,不推荐用 proxy。
How to startup Shardingsphere proxy.
傻瓜式运行二进制文件,不做说明。
用 docker 来运行,
docker run -it -e PORT=3308 -p13308:3308 --net fscrawler_default apache/shardingsphere-proxy
,需要将 proxy attach 到了一个网络,这是因为在 proxy 里面的不支持用 IP 来设置 jdbc host,只能通过字符串来设置 jdbc host,所以需要将它 attach 到数据库的同一个网络,然后通过数据库的 server name 来设置 jdbc host,简而言之,要么使用localhost
,要么使用postgres
,不能使用127.0.0.1
。
How to configure Sharding proxy.
server.yaml
设置如何运行 proxy,配置连接用户以及其他额外配置,示例:
sharding-rules.yaml
设置分片规则,以及连接的数据库信息,示例:
How to use it
在代码里只需要修改 datasource 的配置为 proxy 的配置。
Conclusion
对于有分库分片需求,对性能也没有极高的要求,可以使用 Shardingsphere Proxy,减少应用程序的依赖和配置,如果需要使用 Shardingsphere Proxy,建议将 proxy 跟数据库服务器置放到同一个服务器,最少也是在同一个网络里面,减少性能损失。
版权声明: 本文为 InfoQ 作者【Kevin_913】的原创文章。
原文链接:【http://xie.infoq.cn/article/a772759d2fb0136ab3aaf8f45】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论