加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

MySQL多表join分析

发布时间:2021-02-17 14:11:46 所属栏目:外闻 来源:互联网
导读:这让维护变得非常困难,因为这需要不同的团队一起协作来做变动,发布或者实现容错。 充分利用微服务是一门科学并且需要一些刻意练习。以下微服务最佳实践和设计原则将帮助你构建松散耦合,分布式和优化的微服务,以实现最佳价值。 10个微服务最佳实践 1.单一

这让维护变得非常困难,因为这需要不同的团队一起协作来做变动,发布或者实现容错。

充分利用微服务是一门科学并且需要一些刻意练习。以下微服务最佳实践和设计原则将帮助你构建松散耦合,分布式和优化的微服务,以实现最佳价值。

10个微服务最佳实践

1.单一责任原则

就像代码中的类一样,它仅仅在单个原因情况下改变,微服务也是采用类似的方式建模。构建可能会改变一个以上的业务这种臃肿的服务是一个坏的实践。

例如:你正在构建用于订购披萨的微服务。你可以基于功能构建下面这些组件,诸如InventoryService,OrderService,PaymentService,UserProfileService,DeliveryNotificationService等。InventoryService仅仅有获取或更新披萨种类或配料库存相关的API,同样的,其他也只会提供对应功能的API。

2.独立的数据存储

如果你的所有微服务都共享一个数据库,这就违背了使用微服务的目的。对这个数据库的任何的改变或者故障都会影响使用该数据库的所有微服务。根据微服务的需要选择正确的数据库,定制化基础设施以及对应数据的存储,并且让你的服务独占它。理想情况下,任何需要访问该数据的其他微服务只能通过拥有写权限的微服务提供的API来访问。

3.使用异步通信实现松散耦合

为了避免构建出一个紧密耦合的组件网格(mesh),可以考虑在微服务之间使用异步通信。

a.对依赖的服务异步调用,如下例子。

例如:有一个服务A依赖服务B的例子。当服务B返回响应消息,服务A再返回成功给调用服务A的调用者。如果调用者对服务B的内容不关心,那么服务A可以异步调用服务B,并且这个时候可以立即返回成功给调用者。

b.一个更好的选择是在微服务通信之间使用事件机制。你的微服务可以发布一个事件消息到消息总线上,可以用来通知一个状态的改变或者一个失败事件,并且任何对该事件感兴趣的微服务都可以获得该消息然后做出相应的处理。

例如:上面提到的披萨订单系统中,当客户的订单被接收到或者订单已经完成以及运输的状态消息都可以使用异步通信给客户发送通知消息。通知服务可以监听订单提交的消息事件然后将相应的通知推送给客户。

4.使用熔断器快速实现故障容错

如果你的微服务依赖于另一个系统来提供响应,并且该系统需要很长时间才会响应,那么你的总体响应SLA将会受到影响。为了避免这种场景并且快速做出响应,你需要遵循的一个简单的微服务最佳实践是使用熔断器来使外部的调用超时,然后返回一个默认响应或者错误。熔断器模式可以参考最下面的引用。这种方式可以隔离故障服务,而不会导致级联故障,可以让你的服务保持在健康的状态。你可以选择使用流行的产品,比如Netflix开发的 Hystrix 。这要比使用HTTP CONNECT_TIMEOUT和READ_TIMEOUT设置更好,因为它不会启动超出配置范围的其他线程。


 

Forrester公司的调查报告敦促微软公司和谷歌公司简化他们的容器平台。微软公司因其更强大的开发经验和全球影响力而倍受赞誉,但其复杂性受到用户的批评。谷歌公司凭借其深厚的Kubernetes专业知识和在多云环境中的努力赢得了赞誉,但同样也因其复杂性而受到批评。

尽管如此,根据CNCF公司在2019年进行的调查,AWSEKS仍然是最常用的容器管理平台,GKE、DockerEE/CE和AKS紧随其后。

Flexera公司发布的2020年云计算状态报告指出,AWSEKS/ECS的使用率为55%,另有23%的受访者计划在未来使用这些容器即服务(CaaS)选项。Azure Kubernetes Service的采用率达到50%,另有26%的受访者表示计划在将来使用AKS。而Google Kubernetes Engine达到了26%,其中27%的受访者计划使用GKS。但是,根据Flexera公司的这份报告,在63%的受访者中,自我管理的Kubernetes仍然超过所有容器即服务(CaaS)选项。

容器即服务(CaaS)资源

有关容器即服务(CaaS)的主要信息来源是供应商本身,因此很难做出明智公正的选择。如上所述,Forrester公司和Gartne公司都已深入了解这一领域,但他们的视角通常取决于供应商如何脱颖而出,而不是如何跟上生产中的容器即服务(CaaS)步伐。

关于该主题的书籍还很少,但是O'Reilly公司出版的《软件设计师手册》提供了很好的概述。

Docker多年来一直是容器和容器管理的中心,并且在该主题上还有一些很好的视频内容。


 

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读