网关+服务治理

将服务注册到Consul中,需要首先系统该插件。

Ocelot:网关组件,腾讯和微软都在使用。

可以使用dotnet run命令启动.NET Core项目,启动时可以在命令时传递监听的IP、端口、域名等参数。

Consul类似于Nginx

Consul:用于服务注册与发现。

Ocelot不会对服务进行健康检查,仅仅根据配置文件完成转发,Consul会对微服务进行健康检查。

网关可以完成集群和负载均衡,但是没办法做服务发现先和自动下线。

网关也可以进行集群化部署。

Consul和Ocelot都需要搭建自己的web站点提供服务,其中Consul具备配置页面查看对应状态。

Consul仅仅实现服务的发现,返回对应服务的端口地址等。

Gateway实现路由的转发,也可以配置实现资源分配策略,如轮询、权重、随机等。

在Gateway中可以使用MemoryCache实现缓存的管理,可以使用Redis。

服务治理:超时、熔断、限流、雪崩、合并请求。

Polly:用于微服务治理,雪崩效应、服务治理、熔断、降级、重试。

雪崩:在单位时间内,服务A调用服务B,服务B调用服务C,C宕机了,调用服务C的相关服务也宕机了,导致一连串的效应,解决雪崩效应的方案有限流、熔断、异步架构。

熔断:在单位时间内,异常了多少次,就指定时间内,调用服务的时候,直接返回失败。

降级:在指定特殊情况下,可以降低服务等级,甚至是关闭。

限流:单位时间内允许多少次调用。

重试:在服务调用失败的时候,指定重新去调用几次,成功就成功了,失败了几次之后就失败。

Polly的功能:重试(Retry)、熔断(Circuit-Breaker)、超时检测(Timeout)、缓存(Cache)、降级(Fallback)。

AOP:面向切面编程,Aspect Oriented Programming

希望在调用服务之前,组装Polly规则,希望这个规则可以自由组装,可以使用API+Attribute实现。

AOP可以在调用服务之前添加规则,规则要灵活拼装,可以把规则定义成各种特性,有几个规则就定义几个特性,标记特性就标识要使用这个规则,就读取被调用者标记了哪几个特性,把特性中的规则拼装起来。

如何封装?可以用中间件的形式,委托多层嵌套的方式实现。

落地微服务架构v2.0的更多相关文章

  1. 微服务架构~Zuul1.0和2.0我们该如何选择?

    介绍 在今年5月中,Netflix终于开源了它的支持异步调用模式的Zuul网关2.0版本,真可谓千呼万唤始出来.从Netflix的官方博文[附录1]中,我们获得的信息也比较令人振奋: The Clou ...

  2. 微服务实战(三):落地微服务架构到直销系统(构建基于RabbitMq的消息总线)

    从前面文章可以看出,消息总线是EDA(事件驱动架构)与微服务架构的核心部件,没有消息总线,就无法很好的实现微服务之间的解耦与通讯.通常我们可以利用现有成熟的消息代理产品或云平台提供的消息服务来构建自己 ...

  3. Re:从0开始的微服务架构--(二)快速快速体验微服务架构?--转

    原文地址:https://mp.weixin.qq.com/s/QO1QDQWnjHZp8EvGDrxZvw 这是专题的第二篇文章,看看如何搭建一个简单模式的微服务架构. 记得好久之前看到一个大牛说过 ...

  4. 微服务架构~BFF和网关是如何演化出来的

    介绍 BFF(Backend for Frontend)和网关Gateway是微服务架构中的两个重要概念,这两个概念相对比较新,有些开发人员甚至是架构师都不甚理解. 本文用假想的公司案例+图示的方式, ...

  5. 字节跳动内部微服务架构-Docker实战学习笔记分享 真香

    前言 基于 Spring Cloud 的微服务设计和开发,已经越来越多地得到了更多企业的推广和应用,而 Spring Cloud 社区也在不断的迅速发展壮大之中,近几年时间,Spring Cloud ...

  6. .NET Core微服务架构学习与实践系列文章索引目录

    一.为啥要总结和收集这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有 ...

  7. 使用微服务架构思想,设计部署OAuth2.0授权认证框架

    1,授权认证与微服务架构 1.1,由不同团队合作引发的授权认证问题 去年的时候,公司开发一款新产品,但人手不够,将B/S系统的Web开发外包,外包团队使用Vue.js框架,调用我们的WebAPI,但是 ...

  8. Re:从0开始的微服务架构:(一)重识微服务架构--转

    原文地址:http://www.infoq.com/cn/articles/micro-service-architecture-from-zero?utm_source=infoq&utm_ ...

  9. Spring Cloud实战 | 第十篇 :Spring Cloud + Seata 1.4.1 + Nacos1.4.0 整合实现微服务架构中逃不掉的话题分布式事务

    Seata分布式事务在线体验地址:https://www.youlai.store 本篇完整源码地址:https://github.com/hxrui/youlai-mall 有想加入开源项目开发的童 ...

  10. Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转

    原文来自:聊聊架构公众号 前面的文章中有说到微服务的通信方式,Martin Folwer 先生在他对微服务的定义中也提到“每个服务运行在其独立的进程中,服务与服务间采用 轻量级的通信机制 互相协作(通 ...

随机推荐

  1. YII2.0的文件上传, 并把文件名称重新编译

    /** *@Action 文件上传示例 *@这里我们演示的是一个YII2.0的文件上传, 并把文件名称重新编译 *@我们上传的是一个叫 photo 的jpg和png格式的文件 */ Controlle ...

  2. C51笔记-郭天祥-第二章 从点灯大师开始

    第2章  Keil软件的使用及流水灯设计 Keil的用法:用Keil建立工程: 工程配置: C51单片机程序软件仿真.单步.全速.断点设置和变量查看等: 用一个完整的C51程序操控LED亮灭: 调用库 ...

  3. 笔记七:进程间的通信(IPC通信之信号灯)

    信号量 定义信号变量:  sem_t sem1 sem2 初始化信号量 P操作           V操作    功能 信号量(POSOX) 信号量灯(IPC) 定义信号变量 sem_t  sem1 ...

  4. 获取网络连接状态(二) IsNetworkAlive

    IsNetworkAlive需要服务System Event Notification的支持(系统默认自动启动该服务),且需要安装最新的SDK(如.NET) 浏览:MSDN对IsNetworkAliv ...

  5. Win Pycharm + Appium + 夜神模拟器 实现APP自动化

    前言: 之前的文章已经介绍完通过使用 真机 进行APP自动化.此篇文章将介绍使用 夜神模拟器(Nox) 进行APP自动化测试. 一.基础配置 1.请移步此篇文章(https://www.cnblogs ...

  6. Websocket 60秒断开,连接不稳定

    本地测试都是正常的,线上测试总是过一会就断开... 线上新增了https协议,导致页面中的链接必须也是ssl Websocket链接地址从ws://ws.xxx.com改成了wss://ws.xxx. ...

  7. pytest—添加日志

    开头 保存工作中常用的日志. pytest有自己的日志管理的开关,不需要用到python的日志库 开始 在文件根目录下新建一个pytest.ini文件 基本设置 [pytest] log_cli=tr ...

  8. 2021-04-08:给定一个单链表的头节点head,请判断该链表是否为回文结构。

    2021-04-08:给定一个单链表的头节点head,请判断该链表是否为回文结构. 福大大 答案2021-04-08: 1.找中点. 2.按中点切分成两个链表. 3.反转右边链表. 4.相等判断. 5 ...

  9. Jenkins - 安装部署

    Jenkins安装部署 简介 Jenkins是一个开源的软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,提供一个开放易用的软件平台,使软件的持续集成变成可能. 主要用于: 持续 ...

  10. AccessToken、for_user、get_token

    在Django REST framework的SimpleJWT库中,AccessToken是一个类,用于表示一个JSON Web Token (JWT)中的访问令牌部分.访问令牌是一种常见的身份验证 ...