本文主要是介绍Apache ShardingSphere 企业行|走进中商惠民,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
为进一步了解各家厂商的应用场景与深层次需求,提升企业研发团队在使用 Apache ShardingSphere 的效率,Apache ShardingSphere 社区开启了【走进企业】系列活动。
近日,Apache ShardingSphere 核心技术团队应邀来到中商惠民公司总部,PMC 潘娟与中商惠民的技术同学在开源生态建设、云原生以及在特定场景下的解决方案等话题展开了深度交流和探讨。
中商惠民立足社区,构建互联网+社区+民生平台,根据不同群体的需求创新推出 B2B、B2C 和 B2F 三大服务体系,通过供应链升级、产品升级、服务升级、金融升级、技术升级、品牌升级这六大升级模式,驱动传统社区超市的经营转型,赋能社区超市(便利店)成为社区综合服务的中心,构建社区消费和服务的新生态。在此基础上,为支持多业态的创新发展,更高效地处理大体量数据所带来的一系列问题,中商惠民的技术团队联系 Apache ShardingSphere 社区,双方进行了一次深入的技术探讨。
Apache ShardingSphere 的云上解决方案--Database Mesh
Apache ShardingSphere 借力 Database Mesh 打造数据访问治理利器,革新数据库上云方式,在数据库流量的云原生管控方面实现有效补充。
1. 云原生数据库访问接入代理工具
随着云原生理念在全球范围内的普及,Kubernetes 已经成为云原生操作系统的事实标准,以 Sidecar 在 Kubernetes 环境治理流量已经成为业内普遍接受的部署模式。然而在云原生层面的数据流量管控却呈现出空白,缺少一款能够管理云上数据流量的工具。
由 Apache ShardingSphere 核心团队所打造的一款高性能数据库访问接入代理,可以实现 SQL 负载均衡、SQL 审计、可观测性等能力,并对用户应用无侵入。用户完全可以将其视作为一款部署于 Kubernetes 上的数据流量网关。
2. 面向整个数据库行业的解决方案--Database Mesh
在云原生数据库管控层面,需要配套相应的数据面板和控制面板。发展到一定阶段后,所有云上数据库流量的管理和控制都可以交由 Database Mesh 体系来进行管理,既可以管理普通的数据库,也可以搭配 ShardingSphere-Proxy。
Database Mesh 提供了完全隔离不同环境的能力,运维工程师只需变更数据面板到分布式数据库的网络配置,可适配开发环境、测试环境以及生产环境。对工程师完全屏蔽了数据库所在的具体网络地址,开发工程师只需面向本地数据库进行开发,无需感知分布式数据库的存在。通过 Database Mesh 提供的云原生服务,未来可通过接收控制面板发送的指令,来执行限流、熔断、基于标签的路由等工作。
Database Mesh 是面向整个数据库行业的解决方案,不强制与 Apache ShardingSphere 绑定使用。但将 Database Mesh 与 Apache ShardingSphere 配合使用,能够通过私有协议有效提升交互的性能,形成更加一体化的 Database Mesh 有机解决方案。
如何判断业务是否需要分片?
数据分片是指按照某个维度,将单一数据库中的数据拆分至多个数据库或表中存储,从而达到提升性能和可用性的目的。
首先要明确为什么要采用分片策略?
数据库存储节点性能受限、数据库查询性能降低
数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作、增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO 等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。
业务关联性问题
如果业务都集中在一起,后端的调整势必会影响到前端业务,所以数据量和性能是一方面,对前端业务的影响也应该加入到考虑之中。
数据体量是一个维度,但并不是决定性的因素。是否选择分片策略,应该根据场景具体需要和线上业务运营情况来决定。毕竟分片最显著的效益在于存储性能和查询效率的提升。在大多数面向用户的场景下,企业需要首先考虑性能问题,此时分片的作用就会更加突出。而在某些对性能、效率没有要求的场景下,即便线上跑着 1 亿体量的数据,对于企业管理和业务运转没有产生直接影响,也不需要对其进行分片。
企业为什么应该参与到开源社区中
在开源社区的贡献,是工程师的另一张简历。
对于公司管理而言,要让工程师感觉到他本身的工作是有价值的、有创造性的,而并非只是按照业务需求按部就班完成功能实现。若要发挥工程师的主观能动性以及创造力,开源无疑是最好的方式。
毕竟大家每天接触到的只是身边这群人,所做的工作也只是办公室里的这些事,每天被『局限』在固定的圈子中。而通过开源,对于工程师来说可以将自己的工作连接到世界,让自己能够抛开书本将视野真正投入到技术中来,逐渐培养开放、合作的精神,重新发现自己当下所产生的价值。
只有当团队中参与开源的工程师数量多了起来,才能慢慢在公司内部形成这种开源的文化。如果能够成功培养工程师优雅的代码设计、周全的思考逻辑习惯,进而健壮自身项目代码质量以及完善的架构思考等等,这些对于工程师和公司团队而言都是无价之宝。如果团队里有一名这样坚守十年如一日的工程师,他在团队中无疑将会起到定心丸的作用,对整个团队的效能提升反而是助力作用。而这也正是公司参与到开源所能产生的最大价值。
在内部培养了开源文化和氛围后,如果团队有自研工具等产品,都能够以公司名义放到 GitHub 上。哪怕不做任何的推广、运营,只需要将项目放置在 GitHub 上,当用户有需求时,自然会与你的项目产生互动,甚至主动为项目做出相应的贡献和补充。所以公司参与开源的第一步,是迈出去。如果公司愿意主动去做,愿意让自己的能力开源出去,以公司行为所塑造的号召力和影响力,将能够在开源这条路上走得更快更远。
【联系我们】
如果您在业务中有应用 Apache ShardingSphere,想要快速了解、接入 Apache ShardingSphere 5.0 新生态,希望借此机会在团队内部举办一场关于 Apache ShardingSphere 的技术分享,欢迎在公众号后台中留下您的姓名、公司、职位、电话等信息,或扫描下方二维码添加官方小助手,备注“走进企业”,会有专人与您对接。
在沟通过后如果双方认为产品和场景均非常匹配,Apache ShardingSphere 社区的核心团队将会走进您的企业,与各条研发线的工程师们现场沟通,解答关于 Apache ShardingSphere 的任何疑问。
这篇关于Apache ShardingSphere 企业行|走进中商惠民的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!