前言
随着微服务兴起,服务的管理显得极其重要。都知道微服务就是”拆“,把臃肿的单块应用,拆分成多个轻量级的服务,每个服务可以在短周期内重构、迭代、交付。随着微服务的数量增多,因量变引起了质量,带来新的问题其中一个是服务的管理问题。随着业务发展微服务增多,可能技术负责人也无法清楚记着服务的部署情况,服务的健康也不能时刻关注着,因此服务治理系统的作用必不可少。
本篇文章的源码:
demo:
封装:
是一款简单、易用、可伸缩性强的服务治理系统。
主要核心功能有:
服务发现
健康检查
键值存储
多数据中心
代理会每个一段时间对注册中心的服务节点进行访问,如果响应码为“20X"认为是健康。
键值存储可以认为是一个简易的k/v数据库consul,因此可以用此来存放配置信息。
服务发现
服务发现分服务注册和服务查找。
服务注册
将服务节点信息(地址+端口)添加(删除)到注册表,注册表会记录着服务的节点信息和状态
服务查找
由其他的服务或者系统通过注册表查询到指定可用服务的节点信息。
服务发现的方式
服务发现的方式又分自主式和代理式。
自主式
由各个服务主动的将自己节点信息添加(删除)到注册中心。实现是通过统一封装或者程序库,由服务各个节点承担服务发现的功能,与代理式相比由各自节点分担的访问压力。
代理式
由一个系统(负载均衡系统)或者服务(API网关)来完成服务发现。因为由一个系统或者服务完成,随着注册服务的增加会带来性能瓶颈,因此需要对此做集群。
模式
有两种模式,和,无论各种模式都有一个 agent。
模式
模式是一个轻量级的 agent,只拥有注册服务、健康检查、转发查询等功能。
模式
模式与模式相比,除了拥有模式的功能还多出了数据存储,选举等。
官方建议模式应保证3-5个,而且应该是奇数,为什么呢,因为少于3个无法保证高可用,多于5个又会给数据库同步的一致性带来压力,而数量控制则没有讲究。
集群部署
下载
在服务器Aconsul,打开cmd,
consul agent -server -bootstrap-expect=1 -bind=192.168.20.80 -client=192.168.20.80 -join=192.168.20.80 -datacenter=dc1 -data-dir=data -ui -node=consul-80
在服务器B,打开cmd,
consul agent -server -bind=192.168.20.81 -client=192.168.20.81 -join=192.168.20.80 -data-dir=data -node=consul-81
打开浏览器输入:8500
指令简析
--=1
-bind=192.168.20.80
-=192.168.20.80
-join=192.168.20.80
-node=-81
-ui
客户端实践安装
封装扩展
只贴部分核心代码,具体可以查看demo源码。
注入
把当前服务注册到
添加健康检查接口
与上述封装可以在同一个库,避免每个web服务都要写一个
在.cs对封装进行调用
K/V扩展
只实现了put、get、,剩下可以自行按需添加
部署启动
修改.json,填写目标地址和本服务地址
启动后,如果服务正常则可以显示下图效果。
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh