Hi Developer,您有一份来自华为云学院的微服务开发攻略请查收

举报
Amber 发表于 2018/09/28 09:30:07 2018/09/28
【摘要】 微服务正成为最热门的系统架构之一。作为一名开发者,是否已经了解微服务?微服务系统?微服务应用模式?如何提升微服务开发能力。。。。。。本文带你一起学习微服务。1 什么是微服务微服务是架构层的一个概念,通过分解(业务单元),将项目拆解出n个单元,互相没有强依赖关系(解耦),自我准备需要的依赖条件,进而达到可以独立运行,不再受环境与地点上的限制。2 微服务的由来微服务最早由Ma...


微服务正成为最热门的系统架构之一。作为一名开发者,是否已经了解微服务?微服务系统?微服务应用模式?如何提升微服务开发能力。。。。。。本文带你一起学习微服务。

1      什么是微服务

微服务是架构层的一个概念,通过分解(业务单元),将项目拆解出n个单元,互相没有强依赖关系(解耦),自我准备需要的依赖条件,进而达到可以独立运行,不再受环境与地点上的限制。

2      微服务的由来

微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的一种方式,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。

3      应用模式比较

3.1      传统应用模式

我们在以往的传统应用模式下,大致是所有的功能都集成在同一个应用中,这种模式一般被称为单体式开发,即所有的功能打包在一个war包内,然后部署在jee中,这里面包含了所有的业务逻辑,触发器,大部分的还包含了ui,如下图:


这样的模式下暴露出了他所致命的缺点:

• 代码管理比较难,因为大家都在同一个工程下,会经常的发生冲突

• 新人不太容易上手,因为耦合性太高,调查一个问题时往往会牵扯更多的功能

• 打包危险度大,往往只是提交很小一部分的修改却需要全量打包

• 运维危险度大,可能只是某一个功能崩溃了就会导致整个系统瘫痪

• 不容易扩展,如果只是一个功能的请求量突增,不容易扩展

• 部署要求较高,这样的应用往往需要高配置的主机来承载

3.2     微服务应用模式

我们在做架构设计的时候,常常需要遵守三个标准(敏捷性、用户体验、成本),基于微服务的架构设计目的就是有效的拆分应用,每个应用单独管理,进而实现敏捷开发和部署,如下图:



由一些独立的应用组合成一个软件系统,每个服务独立运行,跑在自己的微环境中,每个服务独立开发可以按照业务单元进行拆分,实现了跨组织跨地域协同的问题,多个服务采用分布式进行管理,且具有强隔离性。

4      微服务架构

在微服务架构中,除了每个业务单元的服务外,就是那些服务治理组件了,比如:服务中心、服务消费、负载均衡、断路器、智能路由、配置管理等,这些个组件互相配合再加上业务的各个微服务,共同组建了一个微服务系统,一个简单的微服务系统如下:


用户通过客户端发起请求,nginx负载到某个zuul上然后转发到相应的微服务上,微服务间通过rpc或者mq进行通信,通过配置服务获取配置数据,最终将整合后的结果返回给用户。

5      微服务的优势

通过以上介绍,我们不难看出微服务的优势:

1. 他将巨大的单体式应用分解出多个服务,解决了复杂性的问题,在总功能不变的情况下,系统被分解成多个可管理的服务,每个服务都用rpc/mq来驱动和定义清晰的api边界,为很难实现的功能提供了模块化的解决方案,并且更容易开发和维护。

2. 在这样的架构模式下,可以实现每个服务可由不同的团队来开发,从而放宽了技术选型,只需提供标准的restapi即可,在这种自由模式的开发背景下,开发者可以选择较新的技术,由于每个服务的功能很小,所以开发的难度也很低,即使出现了代码重写的问题难度也不是很大。

3. 由于微服务采用的是独立部署,开发者在部署的时候不用考虑其他的服务对自己的影响,这种改变加快了部署速度并减少了部署风险,微服务架构使ci/cd成为可能。

 

了解了微服务的基本概念与结构,应用模式和特点等,那么如何学习微服务技术、提升微服务开发的能力?华为云学院(https://edu.huaweicloud.com/)已上线课程——《微服务上云实践》,从理论到实践,一站式攻克微服务!

服务中心、路由网关、服务生产与消费、Springboot、数据库、缓存服务、消息系统、测试运维等八大方向,只有你想要的,没有学不到的!

对微服务技术有疑问、实践过程碰到问题?统统不要担心,现在学习更有专家驻群、一对一解答&指导!

快来华为云学院(https://edu.huaweicloud.com/)报名学习吧!


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。