.net core 微服务架构的学习--(1)--服务治理Consul

.net core 微服务架构的学习–初始

微服务架构本质上就是把单体架构架构进行拆分成为多个服务,当然项目相对单体架构要变得更加的复杂

微服务架构 的学习路线

在这里插入图片描述

集群和微服务,

**集群是啥?**集群就是一个整体,我给他同时部署多个,但是里面功能都是一样的,这叫集群。什么redis集群,Nginx集群等,
微服务是一个整体拆分多个服务部分,然后服务之间进行互相的通信,所以呢一般做分布式微服务的时候呢一般都是会搭建集群的,防止有服务实例挂掉

Nginx

当我们一个服务配置多个实例的时候呢,我们会搞Nginx服务转发,基于Nginx的配置文件,这个具体可以自行百度,或者翻阅我之前的文章,Nginx我们大多用来做转发和负载均衡,而且Nginx里面的会自动屏蔽出现问题的服务实例,无需操心,但是呢Nginx是被动的,有点不太灵活的就是提前都是我们配置好的,所以一般微服务的时候的呢也不选择Nginx

Consul

consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,
1. 服务发现,
2. 服务注册
3. 健康检查

4. 负载均衡
在这里插入图片描述
consul的答题流程呢请看上面的图,就是说我们请求的服务实例都是从consul里面去拿过来,然后进行请求,而我们启动的服务呢会自动的注册到consul里面去,这就比Nginx要方便了。当然既然consul可以拿到实例,我们就可以进行一系列的操作,比方说负载均衡,健康监测等,
健康检查:就是自己定义一个流程,定时的去请求的接口,看看是否有问题吧。

有了微服务的理论知识呢就知道consul很重要

下面来学习consul

https://www.consul.io/
consul有服务注册发现负载均衡已经健康监测的功能,就来学习一下
.net core 当中使用consul
我们有consul的中间件
在这里插入图片描述

创建两个项目(ConsulClient和ConsulService)

在这里插入图片描述

先下载consul

consul agent -dev 启动consul的命令
在这里插入图片描述
直接在浏览器当中输入 http://localhost:8500
在这里插入图片描述
先启动在这边不动

ConsulService当中配置consul,


            ConsulClient client = new ConsulClient(
                con => {
                    con.Address = new Uri("http://localhost:8500/");//consul的服务地址,配置在文件当中
                    con.Datacenter = "weishao"; 
                });
            string ip = configuration["ip"];//获取命令行ip
          int port = int.Parse(configuration["port"]);//命令行参数必须传入
            client.Agent.ServiceRegister(new AgentServiceRegistration()
            {
                ID = "weishao" + Guid.NewGuid(),//服务的实例名字,不重
                Name = "weishao",//分组名字,一般同一个服务实例多个服务实例,进行一个分组
                Address = ip,//ip地址
                Port = port,//不同实例的端口,就是到时候启动程序的时候我们设定端口
                //Tags = new string[] { weight.ToString() },//标签//负载均衡的使用
                //Check = new AgentServiceCheck()//配置健康心跳检查,定时去访问是否健康
                //{
                //    Interval = TimeSpan.FromSeconds(12),//每个12秒去检查一下
                //    HTTP = $"http://{ip}:{port}/Api/Health/Index",//心跳健康的api 直接返回code=200
                //    Timeout = TimeSpan.FromSeconds(5),//检查超时间
                //    DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5)//健康失败的回收时间
                //}
            });

启动一个5005服务实例
dotnet ConsulService.dll --urls=“http://*:5005” --ip=“127.0.0.1” --port=5005
接着多启动几个,5006和5007,按照上面的命令自己改变
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动了三个服务实例,再看consul
在这里插入图片描述
已经成功注册到了consul当中
在这里插入图片描述

接下来来搭建服务发现的流程(ConsulClient)

网关(gateway)

网关在微服务架构当中相当的重要

  1. 提供服务服务入口,是服务对外透明
  2. 节省流量,提高性能。
  3. 提供一系列的功能,包括流量控制,管理,安全,过滤等。
    在这里插入图片描述
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小盆友你是否很有多问号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值