• 微服务系列----核心


    微服务核心

    1.服务发现,调用方如何发现服务(调用服务出现变动,能找到他)

    2.负载均衡,如何调用服务(多个服务实例,如何优先调用)

    分布式的解决方法

    1.集中式代理---Nginx        2.客户端嵌入--Consul           3.网格服务-Service Mesh

    集中式代理---Nginx

    描述:Nginx自身可以实现负载均衡,但需要通过手动添加服务配置,且调度策略归Nginx

    配置步骤:

    1.nginx.conf里 server----listen

    2. location / { proxy_pass http://Microservice; }

    3.upstream Microservice{ server localhost:5726; server localhost:5727; server localhost:5728; }

    4.start nginx.exe

    备注:端口号跟webapi里的端口号一致

    客户端嵌入--Consul

    描述:Consul可以实现服务的自动注册与发现,也可以实现健康检查,但是自身不可以实现负载均衡

    Consul实现过程:客户端---Consul---发现服务实例----定期健康检查---返回给Consul

    Consul实现微服务的步骤:

            1.负载均衡(客户端自己决定)

            2.服务注册与发现

            3.健康检查

    Consul优点:
    功能强大,自动发现-自动下线
    Consul缺点:
    客户端集成复杂(负载均衡在客户端实现),客户端决定调度策略

    Consul实现步骤:
    A.服务实例注册
    B.客户端从Consul里发现服务实例
    C.客户端调用服务实例

    Consul.exe命令行启动
    consul.exe agent -dev
    访问地址:http://localhost:8500/ui/dc1/services

    服务启动时注册,且注册一次

    WebApi向Consul里注册
    在Nuget里添加Consul
    1.在startup里注册服务实例
    2.在客户端拿到url
    3.通过URL找到实例

    4.服务挂了,影响业务,心跳检查

    Consul跟Nginx对比
    1.Consul不用手动添加服务实例,有健康检查,可以调用根据url调用实例,但是得客户端实现负载均衡
    2.Nginx本身可以实现负载均衡,但是得手动添加服务实例

    网格服务-Service Mesh

    描述:
    每台电脑 里面都有一个Sidercar ,负责调度策略,负载均衡,健康检查

    实现:
    主机+代理

    优点:

    独立性,自己玩自己的,不受别人的影响

    缺点:
    复杂度上升,每台电脑得安装

  • 相关阅读:
    mac下完全卸载程序的方法
    Mac下检测NSTableView的滑动事件的方法
    一行代码起动全屏
    Unsupported compiler '4.0' selected for architecture 'i386'类错误解决办法
    编译错误“The run destination My Mac 64bit is not valid for Running the scheme '***',解决办法
    ios项目中导入百度地图SDK出错的问题
    Unable to resolve target 'android9'解决办法
    ios保存录制好的视频到相簿的方法
    NSTableView系列之代码创建(不用nib)
    谈内链优化不是每个站点都能做的
  • 原文地址:https://www.cnblogs.com/debugsxs223/p/12929647.html
Copyright © 2020-2023  润新知