jin45442306
jin45442306
2017-11-28 07:12
采纳率: 100%
浏览 3.8k
已采纳

如何正确的使用微服务

最近公司的项目用微服务的形式挑了一下,总感觉不对头,希望大家帮忙解答一下,能给个大概的模块拆分标准,库表拆分原则,或者是参考资料、书籍之类的东西~情况大致如下

最开始,我们的系统就是一个简单的 tomcat 应用

第一阶段

然后客户反应不错,直接代码复制,稍做修改,为新客户部署了第二套

第二阶段

接着就发现,代码雷同度太高,相同的BUG 需要修改俩个地方,这样下去不行,于是抽离了其中的核心部分,将硬件设备统一管理,用户只需要关注业务,同时将各个服务独立开来,并且接入更多的客户

第三阶段

在第三个阶段,就发现业务逻辑开始有点乱了,用户直接查询自己的数据没问题,但是如果希望获取到当前设备的状态,就需要去运维中心查,这样通过数据中心中转了一次,一个设备 ID,两个库表都要存一份,类似这样

库表示例

这样看起来,感觉就不对~

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

11条回答 默认 最新

  • thethefighter
    thethefighter 2017-11-28 12:43
    已采纳

    服务拆分有3个层次;
    第1是把技术性功能拆分出来比如,短信服务、邮件服务;这是最简单的没有大的难点;无非是接口管理优化一下。
    第2是把并行的无交集的业务流拆分出来;如果业务库拆分了,则难点是跨库表连接如何处理。一般只能把需要连接的数据进行同步。
    第3是将某业务流中串行的业务节点拆分出来;业务节点分别在不同jvm中运行,则难点是分布式事物。
    跨jvm的分布式事物,可以用micro-datasource解决。参考文档:
    http://blog.csdn.net/thethefighter/article/details/78401790
    开发框架推荐用nhmicro
    https://github.com/jeffreyning/nh-micro

    点赞 评论
  • wangnimaonline
    飞行大魔王 2017-11-28 07:40

    微服务被用来创建一些复杂的系统,这些系统由小型且自治的服务构成,而这些服务通过各自的API接口进行数据交换,同时有相应的有界上下文明确它们的范围。一定程度来说,微服务就是面向对象编程方法所期待的东西。

    点赞 评论
  • qq_41203799
    叛逆不坏小子 2017-11-28 07:44

    图写的不错,是个逻辑思维很强的人,不过这个问题不在我专业范围内,抱歉

    点赞 评论
  • baidu_24903053
    baidu_24903053 2017-11-28 07:46

    微服务被用来创建一些复杂的系统,这些系统由小型且自治的服务构成,而这些服务通过各自的API接口进行数据交换,同时有相应的有界上下文明确它们的范围。一定程度来说,微服务就是面向对象编程方法所期待的东西。

    点赞 评论
  • songpengyue1016
    songpengyue1016 2017-11-28 07:49

    把api接口打开,实现数据传递

    点赞 评论
  • vojaly
    vojaly 2017-11-28 07:54

    而这些服务通过各自的API接口进行数据交换,同时有相应的有界上下文明确它们的范围。一定程度来说,微服务就是面向对象编程方法所期待的东西。

    点赞 评论
  • weixin_41204074
    weixin_41204074 2017-11-28 07:58

    把api接口打开,实现数据传递 就可以了

    点赞 评论
  • dddddddasdasfsff
    dddddddasdasfsff 2017-11-28 08:08

    楼主,建议你把数据库重新创建或跳转字段类型,这个原因可能是因为字段类型不匹配造成的,谢谢

    点赞 评论
  • qq_41203870
    qq_41203870 2017-11-28 08:12

    微服务被用来创建一些复杂的系统,这些系统由小型且自治的服务构成,而这些服务通过各自的API接口进行数据交换,同时有相应的有界上下文明确它们的范围。一定程度来说,微服务就是面向对象编程方法所期待的东西

    点赞 评论
  • xubaifu
    徐小百 2017-11-28 08:26
    点赞 评论
  • qq_41211527
    小青儿 2017-11-29 02:33

    微服务被用来创建一些复杂的系统,这些系统由小型且自治的服务构成,而这些服务通过各自的API接口进行数据交换,同时有相应的有界上下文明确它们的范围。一定程度来说,微服务就是面向对象编程方法所期待的东西

    点赞 评论

相关推荐