j2e*_*nue 4 java microservices
我一直在网上搜索,但我对java微服务究竟是什么感到困惑.我的意思是我知道什么是Web服务,并且我告诉每个维基的微服务如下:
在计算中,微服务是一种软件架构风格,其中复杂的应用程序由使用与语言无关的API相互通信的小型独立进程组成.
并且微服务的属性是:
微服务架构的属性:
它是一种体系结构服务易于替换服务围绕功能组织,例如用户界面前端,推荐,后勤,计费等服务可以使用不同的编程语言,数据库,硬件和软件环境来实现,具体取决于什么最合适的架构是对称的而不是分层的(生产者 - 消费者)
但我需要一个具体的java示例来了解我如何制作微服务.有没有人有你可以提供的例子?
微服务就像它的名字所暗示的那样.这是一项小巧的服务,可以执行非常简单的功能.
所以是的,就代码而言,您可能正在寻找REST服务.请注意,任何其他API样式都可以.它不一定是REST,但它必须与语言无关才能获得所有好处.
但这个想法比那更重要.它背后的想法是,它们非常专业,没有大的业务工作流程.例如,如果您有一个处理付款的服务,则写入审核日志,然后通知客户.我不认为这是一个微服务.编写审计日志,这可能是一个微服务,也通知客户,也处理信用卡.您的系统将通过调用3个必要的微服务来协调该业务工作流程(上述3个步骤).因此,您的系统是协调员,您不必担心实现业务功能.
微服务不会试图想太多,他们只是按照他们的说法去做,但是他们很快就做到了.
所以简而言之.采用一个非常简单的业务功能,在它前面放置一个REST API.你有一个微服务.
微服务有几个有趣的属性:
但你也应该考虑一些缺点
在所有这些调用中维护一致的事务要困难得多.如果需要回滚,则需要JTA来回滚所有REST调用.这可能是一种痛苦,在我的经历中表现不佳.
如果您没有一致的日志记录和一致的事务ID,那么通过系统跟踪事务以进行故障排除可能非常粗糙
如果地面由于可能产生副作用的部署而不断变化,那么找到缺陷的位置可能会变得棘手.
显然,所有这些REST调用都可能非常昂贵.我不一定会谈论传输,因为很可能所有的微服务都存在于同一个数据中心.但是每次通过网络进行呼叫时,您都必须整理/解组数据,这可能很快就会降低CPU的成本.
| 归档时间: |
|
| 查看次数: |
2761 次 |
| 最近记录: |