作者回复: 作为专业开发者,有条件的话,尽量工作在Mac or Linux环境,可以省去很多不必要的麻烦。
作者回复: 数据库主键可以用自增或者uuid,两者各有利弊,uuid的不足是索引性能不佳,耗存储,不直观,没有顺序语意;但是uuid是不依赖于数据库的(方便迁移),而且可以适用于分布式环境。自增的优劣和uuid大致相反。 参考medium上的一篇文章(要翻墙):https://medium.com/@Mareks_082/auto-increment-keys-vs-uuid-a74d81f7476a
作者回复: 用过,用习惯了对schema版本控制有帮助。这种方式在国外较流行,国内大部分开发人员喜欢简单直接,还没有养成schema版本控制习惯。
作者回复: 理想情况下,微服务应该是职责单一和有界上下文,最好每个微服务都有独立的数据存储,这样才能做到独立开发/测试/发布/运维,将团队之间的相互依赖最小化。 所以原则是尽量独立,但是具体也要看你的业务上下文和领域的划分,有些情况下,可能暂时只能共用一个库,或者看能否抽出一个共享的服务。 也可以分库冗余的方式,这时候要引入数据分发技术(例如变更数据捕获CDC,阿里Canal等),通过数据分发技术将数据从一个数据库中复制到另外一个库中,但是只能有一个唯一真实的数据源(Single South of Truth),也就是说数据虽然分布在两个数据库中,但是只有一个库中的数据是可读写的,另外一个数据库中的是只读拷贝。
作者回复: 估计是你的skywalking没装好,建议先不要弄staffjoy,就弄一个简单的spring boot hello world应用,然后把skywalking埋点后跑起来,先走通这一步再看。