微服务系列----核心
Posted debugsxs223
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务系列----核心相关的知识,希望对你有一定的参考价值。
微服务核心
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 ,负责调度策略,负载均衡,健康检查
实现:
主机+代理
优点:
独立性,自己玩自己的,不受别人的影响
缺点:
复杂度上升,每台电脑得安装
以上是关于微服务系列----核心的主要内容,如果未能解决你的问题,请参考以下文章
Nacos Go微服务生态系列 | Dubbo-go 云原生核心引擎探索