
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,微服务开发架构被众多程序员所掌握,而今天我们就通过案例分析来了解一下,java微服务架构的概念与应用。
什么是Java微服务?
实际上,这意味着你不需要在你的BankController中调用riskCheck()方法,而是将该方法或bean及其所有辅助类移动到它自己的Maven/Gradle项目中,对其进行源代码配置管理,并将其独立部署,不依赖于你的银行系统。
整个提取过程本身会不会使你新的RiskCheck模块成为微服务呢,大家对微服务定义有着不同的解释:
如果它里面只有5-7个类,那么算不算微?
100或者1000个类仍然算是微吗?
这和类的数量有什么关系吗?
我们不去钻理论上的牛角尖,而是关注其实用性,做以下两件事:
调用所有可单独部署的服务(即与大小或领域边界无关的微服务)。
重点关注服务间的通信这一重要主题,因为你的微服务需要相互通信的方式。
所以,总结一下:你之前拥有一个JVM进程,即一个银行大型独体应用。现在,除了这个银行JVM进程,还有一个在自己JVM进程中运行的RiskCheck微服务。你的大型独体应用现在必须调用这个微服务进行风险检查。
怎么做呢?
如何在Java微服务之间进行通信?
基本上,有两种选择:同步通信或异步通信。
(http)/rest(同步通信)
同步微服务通信通常通过HTTP和返回XML或JSON的类似rest的服务来完成——尽管这不是必需的(例如,参考谷歌的协议缓冲区)。
如果你需要立即响应,可以使用REST通信,具体到我们的案例就是这样做的,因为在开户之前必须进行风险检查:不做风险检查,就不给开户。
在工具方面,可以看看哪些类库适合同步JavaREST调用。
消息传递(异步通信)
异步微服务通信通常通过JMS实现和/或AMQP等协议的消息传递来完成。通常,是因为实际上如email/smtp驱动集成的数量是不可低估的。
有时,使用一个微服务并不需要得到立即响应,比如用户按下“立即购买”按钮并希望生成发票,则当然不必在用户购买这一请求/响应周期内完成。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。