如何改善微服务之间的通信

时间:2016-03-24 10:07:12

标签: java rest spring-boot microservices

在我们公司,我们使用弹簧靴,微服务,弹簧云等...我们对这种基础设施感到满意,但我仍有一些担忧: 我们使用休息作为通信协议,即使我发现它很棒,我仍然认为我们可以找到更好的东西。休息时间:

  • 您需要使用客户端和服务器(restcontroller)
  • 您需要知道服务器URI,http方法(POST, GET, PUT,...
  • 你需要知道params去哪里(body,querystring)
  • ....

难道你不觉得如果我们有像RMI这样的东西会容易得多吗?我知道这是一项非常古老的技术(而且它不是语言独立的),但它让生活更轻松(你只需要一个界面及其实现)。

搜索周围,我发现了一些有趣的项目,如假装客户端或春天云流,但它们似乎都不是银弹。

您如何看待这个话题?这是你感觉到的问题吗?如果是这样,你怎么接近它?

提前致谢。

3 个答案:

答案 0 :(得分:3)

在我的公司,我们使用JMS为我们的微服务堆栈添加“实习生”通信堆栈。它可靠,易于使用,高效且性能卓越。

我们使用Apache ActiveMQ作为实现,但RabbitMQ也被广泛使用。

答案 1 :(得分:1)

微服务并不意味着紧密耦合,RMI需要两端的代码,当你没有控制另一方时很有趣,例如不想升级的客户,它是B!@ *!通过防火墙。

Soap解决了你提到的大部分事情,遗憾的是Java从来没有一个好的Soap堆栈。据说Rest还有其他优势,特别是从网页和javascript访问服务时。

答案 2 :(得分:0)

您可以使用Spring Cloud Netflix and Eureka作为服务发现和Client-Side Load Balancing with Ribbon

借助那些可以通过“服务名称”而不是服务位置在微服务之间进行通信的人。

结帐this demo。对于未完成的微服务通信应该非常有用。

这里我们有2个简单的微服务和发现服务,用于它们之间的通信。

相关问题