1 基于Consul的服务注册与发现


Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,比如 Airbnb的SmartStack等相比,Consul的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等),使用起来也较 为简单。

Consul用Golang实现,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可无缝配合

2 基于Ocelot实现API网关服务


Ocelot是一个使用.NET Core平台上的一个API Gateway,这个项目的目标是在.NET上面运行微服务架构。Ocelot框架内部集成了IdentityServer(身份验证)和Consul(服务注册发现),还引入了Polly来处理进行故障处理。目前,腾讯和微软是Ocelot在官网贴出来的客户。

3 基于Polly+AspectCore实现熔断与降级机制


Polly是一个被.NET基金会认可的弹性和瞬态故障处理库,允许我们以非常顺畅和线程安全的方式来执诸如行重试,断路,超时,故障恢复等策略,其主要功能如下:

  • 功能1:重试(Retry)

  • 功能2:断路器(Circuit-Breaker)

  • 功能3:超时检测(Timeout)

  • 功能4:缓存(Cache)

  • 功能5:降级(Fallback)

Polly的策略主要由“故障”和“动作”两个部分组成,“故障”可以包括异常、超时等情况,“动作”则包括Fallback(降级)、重试(Retry)、熔断(Circuit-Breaker)等。策略则用来执行业务代码,当业务代码出现了“故障”中的情况时就开始执行“动作”。

4 基于IdentityServer建立授权与验证服务


IdentityServer4(这里只使用版本号为4)是一个基于OpenID Connect和OAuth 2.0的针对http://ASP.NET Core 2.0的框架。IdentityServer是将规范兼容的OpenID Connect和OAuth 2.0终结点添加到任意http://ASP.NET Core应用程序的中间件。通常,你构建(或重新使用)包含登录和注销页面的应用程序,IdentityServer中间件会向其添加必要的协议头,以便客户端应用程序可以使用这些标准协议与其对话。

5 基于Exceptionless实现分布式日志记录


Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 http://ASP.NET,http://ASP.NETCore,Web API,Web Forms,WPF,Console,http://ASP.NET MVC 等技术开发的应用程序中,并且提供了REST接口可以应用在 Javascript,Node.js 中。它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置,对于微服务架构的应用程序来说,统一的日志收集系统的建立更是有必要。

6 基于Ocelot+SkyWalking实现分布式追踪


微服务的特点决定了功能模块的部署是分布式的,以往在单应用环境下,所有的业务都在同一个服务器上,如果服务器出现错误和异常,我们只要盯住一个点,就可以快速定位和处理问题,但是在微服务的架构下,大部分功能模块都是单独部署运行的,彼此通过总线交互,都是无状态的服务,这种架构下,前后台的业务流会经过很多个微服务的处理和传递,我们会面临以下问题:

  • 分散在各个服务器上的日志怎么处理?

  • 如果业务流出现了错误和异常,如何定位是哪个点出的问题?

  • 如何快速定位问题?

  • 如何跟踪业务流的处理顺序和结果?

以前在单应用下的日志监控很简单,在微服务架构下却成为了一个大问题,如果无法跟踪业务流,无法定位问题,我们将耗费大量的时间来查找和定位问题,在复杂的微服务交互关系中,我们就会非常被动。因此,我们需要对其进行追踪!

SkyWalking-netcore是一个使用Open Tracing规范来设计追踪数据的开源追踪组件,只需要做很少的配置即可对经过网关的所有API服务进行Tracing。

7 基于Apollo实现统一配置中心


在微服务架构环境中,项目中配置文件比较繁杂,而且不同环境的不同配置修改相对频繁,每次发布都需要对应修改配置,如果配置出现错误,需要重新打包发布,时间成本较高,因此需要做统一的配置中心,能做到自动更新配置文件信息,解决以上问题。

Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。其服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

本文转自Eleven老师的知乎,欢迎大家关注,你会发现新的宝藏!

链接:https://www.zhihu.com/question/65502802/answer/991762748

朝夕Net社区 专注.Net知识分享

扫码关注 免费获取最新开发课程合集

asp是怎么获取header的?_什么是微服务架构?来看看从业10年的架构师是怎么回答的吧...相关推荐

  1. 耦合式是什么意思_什么是微服务?一篇文章让你彻底搞明白

    一.微服务介绍 1. 什么是微服务 在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微".什么是"服务", 微 狭义来讲就 ...

  2. 微服务平台的设计要点_我在微服务方面的经验中有5点要点

    微服务平台的设计要点 I am a big fan of microservices. And at the same time, I am not always so fond of them. S ...

  3. 微服务及微应用拆分原则_七个微服务原则

    微服务及微应用拆分原则 This post defines microservices via seven tenets, reverse-engineered from books, article ...

  4. rpc框架都有哪些_这六种微服务RPC框架,你知道几个?

    开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...

  5. 基于docker微服务架构_使用基于微服务的流架构更好地进行大规模的复杂事件处理(第1部分)...

    基于docker微服务架构 基于微服务的流架构与开源规则引擎相结合,使实时业务规则变得容易 这篇文章旨在详细介绍我将OSS业务规则引擎与Kafka风格的现代流消息传递系统集成在一起的项目. 该项目的目 ...

  6. cx_oracle写日志信息_浅谈微服务架构之构建日志收集系统

    任何复杂的应用程序偶尔都会出现错误.在微服务应用程序中,需要跟踪几十甚至几百个服务发生的情况.要获取系统的整体视图,日志记录和监控至关重要.在微服务架构中,一个业务请求会经历多个服务,收集端到端链路上 ...

  7. idea无法导入主题jar包_若依微服务版后台服务通过jar包部署到Windows服务器

    场景 若依微服务版手把手教你本地搭建环境并运行前后端项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303 在前 ...

  8. 网站如何经过身份验证_如何在微服务架构中实现安全性?

    首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,同时需要架构师资料的可以私信我免费送 作者 | Chris Richa ...

  9. springcloud 微服务鉴权_我对微服务、SpringCloud、k8s、Istio的一些杂想

    一.微服务与SOA "微服务"是一个名词,没有这个名词之前也有"微服务",一个朗朗上口的名词能让大家产生一个认知共识,这对推动一个事务的发展挺重要的,不然你叫微 ...

  10. 前后端分离和微服务_为什么说微服务,要从前后端分离开始?一文带你揭秘深入微服务...

    前言 既要低头赶路,又要抬头望天,科技是为人服务的,任何技术背后都有更深层次的考量. 之前的文章中咱们聊了很多微服务的相关内容,简而言之,微服务的本质,就是一种可以加速分工.促进合作的新协作机制.知其 ...

最新文章

  1. 当程序出Bug时,程序员最喜欢说的30句话
  2. vscode pylint 错误_VScode中报Unable to import #x27;xxx#x27; pylint的解决方案
  3. 关于MVC4项目从32位机移到64位机编译报错解决方案
  4. VS Code(Visual Studio Code)编辑器的常用设置
  5. k8s网络架构图_唯品会基于Kubernetes(k8s)网络方案演进
  6. RocketMQ:消息存储机制详解与源码解析
  7. wxWidgets:wxRadioBox类用法
  8. Linux缺少qt5core,关于qt5:无法运行Qt应用:找不到版本“ Qt_5”
  9. 三星全速进军物联网 所有产品都将内置互联功能
  10. 再看lambda/sorted/filter/map
  11. Windows7 64位下SDK Manager.exe无法运行问题解决方法
  12. MySQL编译安装时常见错误分析
  13. css 简单写出咸蛋超人
  14. 原生js生成渐变色数组集合
  15. 【飞桨】Seg:U-Net【2015 MICCAI】论文研读
  16. 安防工程商前期收集客户信息15种方法与详细流程
  17. 甲骨文业绩超预期股价大涨近11% 市值首超2000亿美元
  18. 10分钟在服务器上搭建WordPress
  19. Linux命令 之 ifconfig命令
  20. 信息系统规划工具中的各种矩阵

热门文章

  1. 论文阅读笔记(四)——ESPNetV2:A Light-weight Power Efficient and General Purpose Convolutional Neural Network
  2. Logistic回归及梯度上升算法
  3. 使用Connector / Python查询MySQL数据
  4. Ubuntu 安装deb格式的安装包(收集)
  5. day10.函数,函数的参数
  6. 常用的织梦(dedecms)调用标签
  7. 彻底抛弃脚本录制,LR脚本之使用web_custom_request函数自定义http请求
  8. 软件工程-软件小组的组织形式
  9. SuperMap iClient3D for WebGL 示范案例(一)倾斜模型加载
  10. ENVI 不规则多边形shp裁剪后Memory灰色显示问题解决