网关+服务治理

将服务注册到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. ServletContext 详解(转载)

    转载:https://www.cnblogs.com/zjdxr-up/p/7761813.html ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释 ...

  2. 【Vue项目】商品汇前台(一)组件拆分+请求封装

    写在最前面 之前学完vue基础之后,一直想做一下前端的项目,但是自己写了一点前后端分离的项目发现自己前端写的是真的乱,所以趁着假期的空闲做一下尚硅谷商品汇的前后台项目,争取这周写完前台,然后这个月再写 ...

  3. R的基本用法2

    title: "Lectures" author: '01' date: "2022-09-23" output: pdf_document knitr::op ...

  4. vulnhub靶场之ADROIT: 1.0.1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Adroit: 1.0.1,下载地址:https://download.vulnhub.com/adroit/Adroit-v1.0.1.ova ...

  5. Java实现平衡二叉搜索树(AVL树)

    上一篇实现了二叉搜索树,本章对二叉搜索树进行改造使之成为平衡二叉搜索树(Balanced Binary Search Tree). 不平衡的二叉搜索树在极端情况下很容易退变成链表,与新增/删除/查找时 ...

  6. 进程间通信WebSocket 服务端未启动时,客户端重连报错

    当WebSocket服务端未启动时,我们在客户端申请连接,会报 System.Net.Sockets.SocketException 异常. 当然,我们调试时异常设置默认是不勾选这个的.所以不影响正常 ...

  7. autojs系列-js入门1

    开头 确保 Autojs 和 adb 还有模拟器安装调试完成之后,就可以进行js的学习了 调试安装一部分步骤可以参考 https://www.cnblogs.com/c-keke/p/14919615 ...

  8. 2021-01-21:java中,HashMap的读流程是什么?

    福哥答案2020-01-21: jdk1.7读流程:1.key是否为空值null,如果为空,直接遍历table[0]链表,寻找key==null键.调用的是getForNullKey()方法.如下:1 ...

  9. 2021-11-06:3的幂。给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n ==

    2021-11-06:3的幂.给定一个整数,写一个函数来判断它是否是 3 的幂次方.如果是,返回 true :否则,返回 false .整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == ...

  10. Requested setting INSTALLED_APPS, but settings are not configured. You must either define the env...

    解决办法 在test.py文件的最头部加上以下代码,配置环境 import os,django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djb ...