写在前面   Api网关我们之前是用 .netcore写的 Ocelot的,使用后并没有完全达到我们的预期,花了些时间了解后觉得kong可能是个更合适的选择. 简单说下kong对比ocelot打动我的: 1.kong可以直接代替Nginx/OpenRestry做前端服务器. 2.kong的功能强大,性能不俗,生态不错,操作面板,插件丰富,社区活跃: 本文目的 1.对kong和consul做个基本介绍: 2.kong集成consul 做服务发现: 3.Asp.net core WebApi 服务自…
从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后来逐步应用于生产环境,并总结了少许使用经验.最开始使用Consul的人不多,为了方便交流创建了一个QQ群,这两年微服务越来越火,使用Consul的人也越来越多,目前群里已有400多人,经常有人问一些问题,比如: 服务注册到节点后,其他节点为什么没有同步? Client是干什么的?(Client有什么作用?) 能不能直接注册到Server?(是否只有Server节点就够了?) 服务信息是保存在哪里的? 如果节点挂了健康检查能不能…
使用Consul做服务发现的若干姿势 https://www.cnblogs.com/bossma/p/9756809.html 从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后来逐步应用于生产环境,并总结了少许使用经验.最开始使用Consul的人不多,为了方便交流创建了一个QQ群,这两年微服务越来越火,使用Consul的人也越来越多,目前群里已有400多人,经常有人问一些问题,比如: 服务注册到节点后,其他节点为什么没有同步? Client是干什么的?(Client有什么…
Go 使用 consul 做服务发现 目录 Go 使用 consul 做服务发现 前言 一.目标 二.使用步骤 1. 安装 consul 2. 服务注册 定义接口 具体实现 测试用例 3. 服务发现 接口定义 具体实现 测试用例 总结 参考 前言 前面一章讲了微服务的一些优点和缺点,那如何做到 一.目标 二.使用步骤 1. 安装 consul 我们可以直接使用官方提供的二进制文件来进行安装部署,其官网地址为 https://www.consul.io/downloads 下载后为可执行文件,在我…
go-micro v4默认使用mdns做服务发现.不过也支持采用其它的服务发现中间件,因为多年来一直使用Consul做服务发现,为了方便和其它服务集成,所以还是选择了Consul.这篇文章将介绍go-micro使用Consul做服务发现的方法.关于Consul的使用方式请参考我的另一篇文章:使用Consul做服务发现的若干姿势 . 安装Consul 如果你已经安装Consul,或者对Consul很熟悉了,按照自己的方式处理Consul就行了. 这里提供一个通过docker快速安装Consul的方…
本文介绍Ocelot中的服务发现(Service Discovery),Ocelot允许指定一个服务发现提供器,之后将从中寻找下游服务的host和port来进行请求路由.关于服务发现的详细介绍请点击.在Ocelot中使用了Consul作为服务发现的provider. 1.Consul下载安装 从官方下载页选择合适的平台下载,解压出一个二进制文件并保存到相应位置,并将路径存入path中,本文以windows版本为例(其他平台操作类似).打开 cmd/powershell 运行 consul age…
写在前面 我一直以来使用redis的时候,很多低烈度需求(并发要求不是很高)需要用到消息队列的时候,在项目本身已经使用了Redis的情况下都想直接用Redis来做消息队列,而不想引入新的服务,kafka和RabbitMQ等: 奈何这兄弟一直不给力: 虽然 Redis 的Pub/Sub 是实现了发布/订阅的,但这家伙最坑的是:丢数据 由于Pub/Sub 只是简单的实现了发布订阅模式,简单的沟通起生产者和消费者,当接收生产者的数据后并立即推送或者说转发给订阅消费者,并不会做任何的持久化.存储操作.由…
ServiceProvider最终提供的服务实例都是根据对应的ServiceDescriptor创建的,对于一个具体的ServiceDescriptor对象来说,如果它的ImplementationInstance和ImplementationFactory属性均为Null,那么ServiceProvider最终会利用其ImplementationType属性返回的真实类型选择一个适合的构造函数来创建最终的服务实例.我们知道服务服务的真实类型可以定义了多个构造函数,那么ServiceProvid…
在 ASP.NET Core 中处理 Web 应用程序时,我们可能经常希望构建轻量级服务,也就是没有模板或控制器类的服务. 轻量级服务可以降低资源消耗,而且能够提高性能.我们可以在 Startup 或 Program 类中创建这些轻量级服务或 API. 1. 使用 VS2022 创建 ASP.NET Core 项目 我们在 Visual Studio 2022 中创建一个 ASP.NET Core 项目.按照以下步骤在 Visual Studio 2022 中创建一个新的 ASP.NET Cor…
在采用了依赖注入的应用中,我们总是直接利用DI容器直接获取所需的服务实例,换句话说,DI容器起到了一个服务提供者的角色,它能够根据我们提供的服务描述信息提供一个可用的服务对象.ASP.NET Core中的DI容器体现为一个实现了IServiceProvider接口的对象. ServiceProvider与ServiceDescriptor服务的注册与提供    利用ServiceProvider来提供服务    提供一个服务实例的集合    获取ServiceProvider自身对象    对泛…