前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发人员学习微服务架构最容易犯五个的错误

开发人员学习微服务架构最容易犯五个的错误

作者头像
程序你好
发布2018-07-20 15:45:44
5210
发布2018-07-20 15:45:44
举报
文章被收录于专栏:程序你好程序你好

当我们学习一项新技术或工具时,我们经常会依赖于我们以往的项目中经验。然而,当我们学习最近很热门的微服务时,我们以往的经验可能却都不管用了。

在本文中,我们将讨论专业开发人员在学习微服务主题时最容易犯的五个主要错误。

错误#01 -将SOA和微服务混淆。

尽管SOA和微服务都是系统架构的一种,但这两个有很多不同之处:

SOA

它的一般是通过一种方式(单实例,ESB等)来连接现有的应用程序。

必须通过ESB在端点之间的连接和消息

ESB中公开的服务应该使用特定的语言编写,并且主要遵循SOAP协议(无论是否使用WS* stack)或REST,使用HTTP协议。

由于需要编码和解码,在高负载的情况下交换信息代价高昂。

垂直进行扩展(扩大)

ESB作为单个故障点

由于应用程序EndPoint和ESB中介本身的依赖关系,很难将其部署到MSA(微服务样式体系结构)

服务是在其他服务执行和使用其合同之前进行注册的。

Microservices

它的方法是创建一个单独的应用程序,自部署,它可以在一个独立的环境中运行,并且有自己的数据库。

服务之间的连接是精心设计的-通过这种方式,微服务可以对所接收的特定事件作出响应。

可以用任何可用于创建服务的编程语言编写微服务Java. Python, JavaScript, .NET。

只需要遵循REST接口即可,可以使用谷歌Protobuf、Twitter Finagle等二进制协议。

对应于我们单体应用系统的功能特征

容错

水平扩展(扩展)

易于部署,CD/CI

微服务在称为API网关的实体中注册,并被其他微服务自动发现。

错误#02 -“如果我使用REST方法,我已经有了微服务”

在微服务中,REST方法只是MSA的主要属性之一。对于要标记为微服务解决方案的应用程序,应该具有12因素方法学描述的所有特征。

代码库:一个版本代码,多次分发

依赖关系:显式声明和隔离依赖项

配置:在环境中存储配置。

支持服务将支持服务视为附加资源

构建、发布、运行:严格分开构建和运行阶段。

流程:将应用程序作为一个或多个无状态进程执行

端口绑定:通过端口绑定导出服务

并发性:通过流程模型扩展

可处理:快速启动和快速关闭,使健壮性最大化

x Dev /刺激平价

Dev/prod parity:开发,部署和生产尽可能保持一致

日志:将日志处理为事件流

管理流程:将管理和管理的任务作为一次性的过程

错误#03 -微服务可以在同一个容器上运行。没问题,对吧?

理论上是的。不幸的是,这正是一个问题。

Microservices应该:

在其环境中完全独立运行,并拥有所有所需的资源(松散耦合)

能够独立伸缩。

能够独立地部署。

能够被追踪到

能够被其他微服务自动发现

这些都是保持正确的可伸缩性、容错和TTM(上市时间)的必要条件。

错误#04 -所有的微服务都应该用相同的编程语言编写

一旦微服务在不同的容器上运行并公开了抽象其底层技术,就不需要用一种特定的编程语言实现所有的微服务。

考虑到这一点,您可以拥有更小的团队,每个团队都具有业务funci向性和编程语言的专门知识,从而可以独立地简化业务解决方案的演变。

错误#05 -微服务顾名思义,应该是小的

微服务中的微服务表示目前存在于单块应用程序中的业务功能,称为“所有解决方案”,这些解决方案具有多个功能问题,需要解决一个巨大的业务问题。

然后将这个业务问题分割成更小的部分(微服务本身),以便轻松组合并有效地响应所有业务事务中可能出现的所有请求和业务需求。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序你好 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 错误#01 -将SOA和微服务混淆。
  • 错误#02 -“如果我使用REST方法,我已经有了微服务”
  • 错误#03 -微服务可以在同一个容器上运行。没问题,对吧?
  • 错误#04 -所有的微服务都应该用相同的编程语言编写
  • 错误#05 -微服务顾名思义,应该是小的
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档