文档章节

默默学微服务:微服务概述

liululee
 liululee
发布于 05/23 17:16
字数 1195
阅读 10
收藏 0

1.什么是微服务

什么是微服务,一千个人有一千个哈姆雷特,wikepedia也有很多不同的讨论,维基上如是说道:


Microservices are a software development technique—a variant of the service-oriented architecture (SOA) architectural style that structures an application as a collection of loosely coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight. The benefit of decomposing an application into different smaller services is that it improves modularity. This makes the application easier to understand, develop, test, and become more resilient to architecture erosion. It parallelizes development by enabling small autonomous teams to develop, deploy and scale their respective services independently.It also allows the architecture of an individual service to emerge through continuous refactoring.[3] Microservices-based architectures enable continuous delivery and deployment


简单翻译一下:微服务是一种软件开发技术,是面向SOA架构的变体,在微服务中,服务是细粒度的,协议是轻量级的。微服务架构提高了程序的模块性,使程序理解、开发、测试更加简单方便。它使小型自治团队能够独立地开发、部署和扩展各自的服务,从而并行化开发。它还允许通过持续重构形成单个服务的体系结构。基于微服务的体系结构支持连续交付和部署。 在Martin Flower的博客中,微服务的描述如下:


In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies


微服务架构风格是一种用来将单体应用开发为多个小型服务的方法,并且这些服务之间都通过轻量级的通信机制通信,比如:HTTP资源API。 这些服务围绕业务能力构建并能全自动独立部署。这些服务共用一个小型的集中式管理服务,可以使用不同语言开发,不同数据存储技术。

简单归纳下:微服务—— 一系列的细粒度轻量级通信机制独立运行全自动部署的服务。

2.微服务的正反面

微服务的优点很显而易见:开发、测试更加快,项目迭代也可以很迅速,而且使用的技术不受限制,为开发工作带来很大的灵活性,而且某个微服务在遇到性能瓶颈时,能够通过提升硬件配置迅速扩容,提高负载能力。 这么一看,感觉微服务好叼噢,似乎完美地没有缺点,然而,仔细想想 1.单体架构,只需要保证一个应用的正常运行,而微服务需要保证几十几百个甚至更多的服务能正常运行。 2.微服务天生就是分布式的架构,对于系统的容错性,网络延迟,以及分布式事务都将会带来巨大挑战。 3.接口调整成本高,若某个接口被多个微服务调用,当这个接口发生改变,其他所有调用者都要改变,因此在设计接口时,要考虑兼容性。 4.重复劳动,多个微服务使用相同的功能。

3.如何实现微服务架构

目前微服务的技术栈也很多,技术选型也有很多的选择,在本系列教程中,我会尽量覆盖多的组件。 当然大部分都是建立在Spring Cloud之上(当然也可以选择Apache Dubbo) 微服务架构大致可以分为: 1.服务注册与发现 2.服务路由与负载均衡 3.容错处理 4.服务网关 5.配置中心 6.消息队列 7.链路追踪 然后微服务还涉及一些领域驱动设计(Domain Driven Design,简称DDD)相关的知识,当然这些都是后话。一个系统的复杂度是由两个因素决定的:业务复杂度和技术复杂度。

业务复杂度:系统设计层面讲,如何能让微服务更好的工作,系统设计更加合理,业务分层更加清晰,这些DDD可以给我们提供一些指导意见。 技术复杂度:微服务虽然好,但是带来的开发和技术挑战也是一样很高的。

整体架构图如下:(图片来源谷歌搜索,侵权请联系删除)

4.资料

维基百科:https://en.wikipedia.org/wiki/Microservices#Introduction

Martin Flower 博客: https://martinfowler.com/articles/microservices.html

© 著作权归作者所有

liululee
粉丝 124
博文 49
码字总数 47801
作品 0
杭州
程序员
私信 提问
Spring Cloud(概述与例子)

概述 单体应用 在先前的单体应用架构中,一个归档包(如 war 格式)包含了所有功能的应用程序。 例如一个电影售票系统,尽管已经进行模块化,但由于 UI 和若干业务模块最终被打包在一个 war ...

林塬
2017/12/16
0
0
Java之springCloud

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cJune/article/details/85055119 一、其他知识概述 (一)什么是微服务: 微服务是按照业务拆分忙所以没有统一...

刘佳欢--hannah
2018/12/17
0
0
EdgeX Foundry 实践篇

概述 2017年4 月份, Linux 基金组织启动开源项目 EdgeX Foundry ,为物联网边缘计算开发一个标准化互操作框架。 EdgeX Foundry 项目构建于戴尔早期基于 Apache2.0 协议的 FUSE 物联网中间件...

武巅
2018/07/09
0
0
Spring Cloud微服务升级总结

一.应用系统的架构历史 二.什么是微服务? 2.1 微服务概述 起源:微服务的概念源于 2014 年 3 月 Martin Fowler 所写的一篇文章“Microservices”。文中内容提到:微服务架构是一种架构模式,...

嘿嘿!!
2017/11/24
0
0
微服务概述

微服务的诞生 微服务架构(Microservice Architect)是一种架构模式,它提倡将单块架构的应用划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的...

李景枫
2016/04/17
122
0

没有更多内容

加载失败,请刷新页面

加载更多

uniapp + bootstrapvue 移动/PC 一套搞定 (一)配置bootstrapvue

1.准备文件 自己到DCloud官网: http://dcloud.io/ 去下载官方的IDE Hbuilder,新建一个空的uniapp项目即可。 uniapp框架自带优化的vue,我们仅仅需要准备以下三个文件: bootstrap.min.css ...

panyunxing
今天
9
0
Android Camera原理之camera service类与接口关系

camera service主要是指 frameworks/av/services/camera/下面的代码,最近在看这一块的代码,为了更好地理清这一块的代码,也为了后续学习camera方便一些,我觉得很有必要理一下这一块的整体...

天王盖地虎626
今天
2
0
Golang学习笔记

[TOC] Golang学习笔记 这个学习笔记是最早在1.初,版本左右的时候写的,和当前最新的版本可能会有较大的差异. 因为成文比较早,文章里面又有很多自己的见解,有些东西当时理解的不太透彻可能写错...

我爱吃炒鸡
今天
12
0
科技赋能成效显著!金融壹账通两大赋能项目荣获IDC大奖

7月19日,2019IDC中国未来金融论坛曁颁奖典礼于北京举办。由金融壹账通赋能的长春农商银行多人视频面审智能风控系统、包头农商银行互联网银行SaaS服务两大项目因在项目的创新性、技术领先性、...

IFTNews
昨天
1
0
HTTP协议

HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。 HTTP是一个基于TCP/IP通信协议来传递数据...

Eappo_Geng
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部