前言

随着微服务兴起,服务的管理显得极其重要。都知道微服务就是”拆“,把臃肿的单块应用,拆分成多个轻量级的服务,每个服务可以在短周期内重构、迭代、交付。随着微服务的数量增多,因量变引起了质量,带来新的问题其中一个是服务的管理问题。随着业务发展微服务增多,可能技术负责人也无法清楚记着服务的部署情况,服务的健康也不能时刻关注着,因此服务治理系统的作用必不可少。

本篇文章的源码:

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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注