微服务学习总结4(网关和consul结合)

19 篇文章 0 订阅
6 篇文章 0 订阅

 先上一张图片:

首先要启动consul服务,用于对三个日志服务的注册和发现。(默认端口8500)

然后启动三个日志服务,端口分别为5726、5727、5728。

最后启动网关服务,用于转发客户端请求,端口为9527。

 

consul服务、日志服务、网关服务,相关服务的代码在前面三篇文章都有说明。

微服务学习总结1(consul服务注册与发现)

微服务学习总结2(消费者调用consul)

微服务学习总结3(网关实现)

 

下面将网关服务和consul服务联动,实现真正意义上的微服务。步骤如下:

1.网关服务添加引用Ocelot.Provider.Consul程序集。

2.在statup.cs中将consul配置到服务中:

 services.AddOcelot(Configuration).AddConsul();

3.修改自动一的网关配置文件configuration.json

{
  "ReRoutes": [
    { //官方文档ReRoutes全节点示例
      //Upstream表示上游请求,即客户端请求到API Gateway的请求
      "UpstreamPathTemplate": "/ApiService/{url}", //请求路径模板
      "UpstreamHttpMethod": [ "Get", "Post" ], //请求方法数组

      //Downstreamb表示下游请求,即API Gateway转发的目标服务地址
      "DownstreamPathTemplate": "/api/{url}", //下游请求地址模板
      "DownstreamScheme": "http", //请求协议,目前应该是支持http和https

      "LoadBalancerOptions": {
        "type": "RoundRobin" // 负载均衡 RoundRobin(轮询)/LeastConnection(最少连接数)
      },

      "UseServiceDiscovery": true, //使用服务发现,目前Ocelot只支持Consul的服务发现
      "ServiceName": "ApiServiceTest"//consul服务名称
    }
  ]
}

 

经过以上三步,即可将网关与consul关联起来。

浏览器访问网关地址:http://localhost:9527/ApiService/values

不断刷新网页,会发现端口会在5726 、5727、5728之间来回切换。说明consul服务轮询调用三个日志服务。

 

 


consul服务的启动方法:

找到consul.exe的文件路径,然后在地址栏中输入cmd,回车,在弹出的命令窗口中输入:

consul agent -dev

命令输入完成,点击回车。就可以启动consul服务了,下面是启动服务的过程: 

 

日志服务和网关服务的启动方法:

找到webapi所在项目文件夹(bin-debug-netcoreappxxx),然后在地址栏中输入cmd,回车,在弹出的命令窗口中输入启动命令:

dotnet NetCore.DemoProject.dll --urls="http://*:5726" --ip="127.0.0.1" --port=5726

NetCore.DemoProject.dll是程序集的名称(项目编译后生成的)。

其他的服务一样,只需要把端口改成5727、5728即可。下面是启动服务的过程: 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习微服务需要掌握以下几个主要框架和技术: 1. Spring Boot:作为构建微服务的基础,学习和掌握Spring Boot框架是必不可少的。它提供了快速开发和配置的能力,简化了微服务的搭建和部署。 2. Spring Cloud:Spring Cloud是一个构建在Spring Boot之上的微服务框架,提供了丰富的功能和组件,如服务注册与发现(Eureka、Consul、Zookeeper)、负载均衡(Ribbon)、断路器(Hystrix)、网关(Zuul、Gateway)等。学习Spring Cloud可以帮助你实现微服务的基本架构和通信。 3. Netflix OSS:Netflix开源的一系列微服务框架,如Eureka(服务注册与发现)、Ribbon(客户端负载均衡)、Hystrix(断路器)、Zuul(API网关)等,与Spring Cloud紧密结合使用。掌握这些框架可以帮助你构建稳定和弹性的微服务系统。 4. Apache Dubbo:Dubbo是阿里巴巴开源的一款高性能、轻量级的RPC框架,支持微服务的服务治理、负载均衡、容错、路由等功能。学习Dubbo可以帮助你搭建更快速和高效的微服务系统。 5. Kubernetes:Kubernetes是一个开源的容器编排平台,提供了强大的容器管理和服务治理能力,可以帮助你轻松部署和管理微服务学习Kubernetes可以进一步提高微服务的可伸缩性、可靠性和可维护性。 以上框架和技术是学习微服务的基础,当然还有其他相关的技术点,如分布式事务、消息队列、数据库选择等,也需要根据具体需求进行深入学习和实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值