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

如何正确的使用微服务

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

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

第一阶段

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

第二阶段

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

第三阶段

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

库表示例

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

  • 写回答

11条回答 默认 最新

  • 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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题