我的任务是为用户设置服务构建新服务(又称微服务)。
此服务的目的是在系统中存储用户的设置。设置大多以带有user_id
的键值对的形式出现。
此服务的某些功能要求:
目前,我正处于该服务的数据库设计和建模阶段,并且有一些我想问的问题:
答案 0 :(得分:0)
您的问题总体来说有点太笼统和模糊,但是我将根据您提供的信息并考虑到您提到的这是一个微服务,尝试解决该问题:
首先,公司或计划中的其他公司是否正在使用其他微服务?我认为必须这样做,因为构建单个微服务没有意义。这样,我将检查其他服务正在使用什么,并选择一种兼容的技术(或者甚至是相同的,除非出于某种原因它确实很糟糕)
对于您的描述,大多数DB都可以正常工作。存储用户设置不是一项特别繁重的任务,并且可能不会生成数十亿条记录。这样,请先查看该公司已经在使用的其他东西,然后检查您是否可以使用同一东西(除非他们使用的是古老的东西,在这种情况下,请查看是否还有其他计划使用不同数据库的项目)
NoSQL与SQL;对于像您这样的微服务,它实际上不会有任何改变。因此,请选择您喜欢的任何东西。对于关系型,我建议使用MariaDB或Postgres,对于NoSQL,建议使用MongoDB或ArangoDB。但这是个人喜好。网络上的每个人都会提出不同的建议。
您是否考虑替代设计?微服务今天风行一时,所以您选择它是可以理解的。我认为这是一个很棒的体系结构,但是您应该知道,随着微服务数量的增加,要为其灵活性和可维护性付出一定的代价,那就是可追溯性。只要您充分了解它的优缺点,就没有真正的理由不使用它。我建议您阅读Microservices in Action以获得很好的介绍。