前文传送门:

  • 什么是云原生?
  • 现代云原生设计理念

Microservices

微服务是构建现代应用程序的一种流行的体系结构样式,云原生系统拥抱微服务。

微服务是由一组(使用共享结构交互的、独立的小块服务)搭建的分布式集,具有以下特征:

  • 在大型的领域上下文中,每个微服务实现特定的业务功能
  • 每个微服务都自主开发的,且可以独立部署
  • 每个微服务都独立封装了自己的数据存储技术(SQL,NoSQL)和编程平台。
  • 每一个微服务都运行在独立进程,并使用标准的通信协议(例如HTTP/HTTPS、WebSocket或AMQP)与其他进程进行通信。
  • 它们一起组成一个应用程序。

下图对比单体与微服务应用:

请注意,单体应用由分层架构组成,在单个进程中执行,通常使用关系型数据库。

但是,微服务方法将功能分为包含逻辑和数据的独立服务,每个微服务都托管自己的数据存储。

微服务依然遵守"十二要素应用"中的One Codebase, One Application”原则。

每个微服务存储在独立代码仓库,通过版本管理进行跟踪,可以部署到多个环境。

Why microservices?

微服务提供了敏捷性。

上一段落,我们已经对比了单体和微服务,我们看到了一些明显的好处:

  • 每个微服务都有自治的生命周期,可以独立演进、多频次部署。

    你不必等待发布窗口即可部署新功能或更新,你可以只更新复杂应用的一小部分区域,减少破坏整个系统的风险。

  • 每个微服务都可以独立扩展。

    不需要以应用整体为单位扩展,而仅扩展那些需要更多处理能力或网络带宽的微服务,这种细粒度的伸缩方法提供更好的控制力和成本优势。

学习微服务的最佳指南是《.NET Microservices: Architecture for Containerized .NET Applications》,这本书深入探讨了微服务设计和架构,它是微服务实践https://github.com/dotnet-architecture/eShopOnContainers的阅读搭档。

Developing microservices

可以使用任何现代开发平台来创建微服务。

微软.NET平台是一个绝佳的选择,免费、开源,内置许多功能以简化微服务开发。 .NET是跨平台的,可以在Windows、macOS和大多数Linux上构建和运行应用程序。

.NET的性能很高,在TechEmpower组织的性能基准测试中,.NET相当优秀。

.NET由Microsoft和.NET社区在GitHub上维护。

.NET 微服务的更多相关文章

  1. 高大上的微服务可以很简单,使用node写微服务

    安装 npm install m-service --save 使用 编写服务处理函数 // dir1/file1.js // 使用传入的console参数输出可以自动在日志里带上request id ...

  2. 微服务与Docker介绍

    什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...

  3. 我所理解的SOA和微服务

    本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5847441.html SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上 ...

  4. CI Weekly #5 | 微服务架构下的持续部署与交付

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  5. 微服务和SOA服务

    微服务和SOA都被认为是基于服务的架构,这意味着这两种架构模式都非常强调将“服务”作为其架构中的首要组件,用于实现各种功能(包括业务层面和非业务层面).微服务和SOA是两种差异很大的架构模式,但是他们 ...

  6. 【DDD/CQRS/微服务架构案例】在Ubuntu 14.04.4 LTS中运行WeText项目的服务端

    在<WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例>文章中,我介绍了自己用Visual Studio 2015(C# 6.0 with .NET Frame ...

  7. WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例

    最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架 ...

  8. 微服务(Microservices)—Martin Fowler【翻译】

    本文转载自:http://www.cnblogs.com/liuning8023/p/4493156.html -------------------------------------------- ...

  9. Microservice 微服务的理论模型和现实路径

    两年前接触到了微服务的概念,面对日益膨胀的系统感觉豁然开朗.之后的两年逐步把系统按微服务的架构理念进行了重构,并将业务迁移到了新架构之上.感觉现在差不多是时候写一篇关于微服务的总结文章了. 定义 在 ...

  10. 翻译-使用Ratpack和Spring Boot打造高性能的JVM微服务应用

    这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices with Ratpack & Spring Boot,InfoQ上的中 ...

随机推荐

  1. 吃透论文——推荐算法不可不看的DeepFM模型

    大家好,我们今天继续来剖析一些推荐广告领域的论文. 今天选择的这篇叫做DeepFM: A Factorization-Machine based Neural Network for CTR Pred ...

  2. 使用sublime text3搭建Python编辑环境

    最近在工作遇到一个难题. 我所在的测试组有一套PC软件前端自动化工程,在进行自动化测试时,需要在一台古老的xp机器上运行,但这台古老的xp机器带给我诸多烦恼,特别是使用Pycharm编辑器时,我遇到了 ...

  3. ForwardProcess

    共享式网络中,发送的报文所有设备都可以收到 0.0.0.0/0 缺省路由 可以到达任意网络 From WizNote

  4. Kali Debian 修改时区

    1.KaliDebian默认读取时区文件是/etc/localtime(重建软连接,达到修改时区目的) 2./etc/localtime是个软连接,连接到时区文件/usr/share/zoneinfo ...

  5. Debian9 升级至 Debian10

    前言 目前国内云服务商提供的镜像最新只有 9 , 本文讲解升级至 10 的方法 正文 查看当前版本 lsb_release -a No LSB modules are available. Distr ...

  6. Typora笔记上传到播客时图片不显示问题解决(已解决)

    前言: ​ 相信我们都遇到过,使用Typora做笔记是一件非常令人舒服的事,然而,它却有一个非常难受的地方,那就是我们在做完笔记想要将其上传到自己的博客时,复制粘贴的图片无法显示.因为Typora复制 ...

  7. Python3爬取小说并保存到文件

    问题 python课上,老师给同学们布置了一个问题,因为这节课上学的是正则表达式,所以要求利用python爬取小说网的任意小说并保存到文件. 我选的网站的URL是'https://www.biquka ...

  8. 【Docker】1、 前后端分离项目 下载启动运行

    人人开源前后端分离项目下载与配置 文章目录 人人开源前后端分离项目下载与配置 前后端分离框架介绍 后端项目下载与配置 1.renren-fast后台项目介绍 2.开发环境搭建 3.下载后端renren ...

  9. Restful API是什么、为什么、怎么使用

    Restful API 文章目录 Restful API 1.REST是什么以及它的 6 个限制 REST是什么? REST的6个限制 2. Restful是什么 Restful是什么 RESTful ...

  10. CMU数据库(15-445)Lab1-BufferPoolManager

    0. 关于环境搭建请看 https://www.cnblogs.com/JayL-zxl/p/14307260.html 1. Task1 LRU REPLACEMENT POLICY 0. 任务描述 ...