Spring boot 面向微服务体系结构的分布式数据库设计风格
我正在尝试将一个单片应用程序转换为面向微服务的体系结构风格。后端我使用spring、spring引导框架进行开发。前端我用的是角度2。并使用PostgreSQL作为数据库 这里我的困惑是,当我设计分布式数据库时,根据功能,它可能包含5个数据库。意味着我是根据垂直分区设计的。然后我考虑实现跨微服务通信服务,以实现整个功能 另一方面,我认为应该横向划分当前结构。所以我的领域是基于一些教育大学。所以一半的大学在一个分贝之下,剩下的将在另一个分贝之下。并根据两个地区部署服务(两所大学两套) 目前,我决定继续采用上述方法。我不熟悉这些类型的任务,因为它涉及一些架构任务。我也是这个微服务和分布式数据库世界的初学者。有人能确认我的方法能解决我的问题吗?我可以继续我的第二种方法吗?根据域对象对数据库进行水平分区 目前,我决定继续采用上述方法 如果您希望数据库具有水平可伸缩性(针对越来越多的客户端连接进行扩展),那么最好使用设计为可伸缩分布式系统的技术。类似于或。例如,Cockroachdb内置了数据分片和复制功能,允许您根据需要添加服务器节点以实现增长 当我设计分布式数据库时,根据功能,它可能包含5个数据库 这听起来像你有一个正确的想法-按域功能划分。这里有一个链接,指向一个关于使用微服务的通用数据库设计的链接 目前,我决定继续采用上述方法 如果您希望数据库具有水平可伸缩性(针对越来越多的客户端连接进行扩展),那么最好使用设计为可伸缩分布式系统的技术。类似于或。例如,Cockroachdb内置了数据分片和复制功能,允许您根据需要添加服务器节点以实现增长 当我设计分布式数据库时,根据功能,它可能包含5个数据库Spring boot 面向微服务体系结构的分布式数据库设计风格,spring-boot,microservices,distributed-database,Spring Boot,Microservices,Distributed Database,我正在尝试将一个单片应用程序转换为面向微服务的体系结构风格。后端我使用spring、spring引导框架进行开发。前端我用的是角度2。并使用PostgreSQL作为数据库 这里我的困惑是,当我设计分布式数据库时,根据功能,它可能包含5个数据库。意味着我是根据垂直分区设计的。然后我考虑实现跨微服务通信服务,以实现整个功能 另一方面,我认为应该横向划分当前结构。所以我的领域是基于一些教育大学。所以一半的大学在一个分贝之下,剩下的将在另一个分贝之下。并根据两个地区部署服务(两所大学两套) 目前,我决定
这听起来像你有一个正确的想法-按域功能划分。这里有一个关于微服务的通用数据库设计的链接。在微服务世界中,每个微服务都拥有一组功能以及由这些功能操作的数据。如果一个微服务需要由另一个微服务拥有的数据,它不能直接访问由另一个微服务维护/拥有的数据库,而是调用由另一个微服务公开的API 现在,关于数据的放置,有多种选择——您可以将微服务拥有的数据存储在NoSQL数据库中,如MongoDB、DynamoDB、Cassandra(这实际上取决于微服务的用例),也可以在SQL数据库的单个实例中为每个微服务创建不同的表。但是请记住,如果选择一个包含多个表的SQL数据库实例,那么不同微服务所拥有的表之间就不会有连接(基本上没有交互)
我建议您从小处着手,然后在系统使用量增长时考虑数据库扩展问题 在微服务世界中,每个微服务都拥有一组功能以及由这些功能操作的数据。如果一个微服务需要由另一个微服务拥有的数据,它不能直接访问由另一个微服务维护/拥有的数据库,而是调用由另一个微服务公开的API 现在,关于数据的放置,有多种选择——您可以将微服务拥有的数据存储在NoSQL数据库中,如MongoDB、DynamoDB、Cassandra(这实际上取决于微服务的用例),也可以在SQL数据库的单个实例中为每个微服务创建不同的表。但是请记住,如果选择一个包含多个表的SQL数据库实例,那么不同微服务所拥有的表之间就不会有连接(基本上没有交互) 我建议您从小处着手,然后在系统使用量增长时考虑数据库扩展问题 我可以继续我的第二种方法吗?数据的水平分区 根据域对象的数据库 如果基于此,您能够扩展当前系统以满足您的需要,则暂时可以 现在,让我们考虑一下为什么首先要将Microseries作为一种开发风格