前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >服务注册/发现-consul

服务注册/发现-consul

作者头像
SRE运维实践
发布2019-07-08 13:16:02
6110
发布2019-07-08 13:16:02
举报
文章被收录于专栏:SRE运维实践SRE运维实践

序言

当系统的数量越来越多的时候,提供的各种系统接口基本都写在配置文件之中,从而在进行接口升级的时候,关联的系统总是要进行同步升级。。。强耦合了解一下,在程序的世界中,一般关系比较好的,我们都要想方设法拆散她们。。。Emmm,就是这么残忍。。。

风言风语

在微服务的世界中,各种各样的restful api,今天我要升级,明天我要变更,大大小小的服务几百个,从而就有了服务中心,自动服务发现了解一下。。。

服务中心主要用来解决系统之间的强耦合关系,而且系统之间的调用基本上是同步调用的。

所谓的自动服务发现,只不过是不需要修改配置,就发现了服务,调用了服务。。。换一个说法就是,相当于有一个地方动态的读取配置,从而能自动去调用服务。

在服务中心中,分为两种:

一种是名称总线系统,也就是A系统需要调用某个服务的时候,只要请求服务中心即可,服务中心会自己去调用远程的服务然后得到响应,最后由服务中心响应给A系统。(ESB企业服务总线)

一种是名称服务系统,也就是A系统需要调用某个服务的时候,去服务中心获取到远程的服务ip+port,然后A系统自己发送请求获得响应(和DNS类似,只是为了解析出IP和端口)

服务发现,你在使用服务的时候,其实你也在提供服务。。。这种调用的方式,像不像LVS的几种调度方法。。。企业服务总线的模式,一挂全挂;名称服务模式,如果有缓存,还能抗一会儿~~~

使用consul搭建服务中心

服务中心和配置中心感觉有点像,不过也看站在什么样的角度来看,眼瞎,看不清楚。。。

1、 运行consul容器,提供服务中心(此处使用单节点)

2、 8500端口提供了默认的http访问的ui接口,从而可以进行界面访问

3、 注册服务(注册了一个服务python,其中有两个服务器提供服务,在后面根据服务的名称获取到服务提供者的ip和端口,在进行调度的时候,可以在提供的SDK中提供相关的调度算法,从而客户端只需要配置sdk和服务注册中心的地址就好)

4、 界面查看注册了服务,并且能进行健康检查

用脚指头思考

在不知道何为服务发现的时候,苦苦思索,为什么要服务发现,发现服务是为了干啥,概念上的玩法。。。存在是为了解决什么?引入又会带来什么样的新问题。。。

听说最近AWS宕机了,因为换了一个数据库。。。有胆量,有魄力,最终。。。会成长为一个强大的数据库。。。

用软件工程的思想解决运维的问题。。。那么什么是软件工程的思想。。。最近和人吹牛逼,也没得出什么新奇的结论。。。感觉。。。少了一层精髓。。。

写一片代码,简单的调用几个接口,简单的复制几个方法,简单的写成几个类。。。这有何意思???

写代码的时间其实很少,在整个软件工程的生命周期中占用的时间少于百分之三十,实现一个功能?从需求开始。。到设计,到编码,到测试,到运维,到下线。。。很长的路。。。

一个脚本如何演变?写成一个方法,能够复用;写成一个类,能够接受扩展。。。那么然后呢?

使用的规模逐渐变大,反过来衍生需求,进行代码改进,用更好的方法实现更高的性能,更高的扩展性,更好的可用性。。。

写完了就忘了?一次性的脚本并没有什么卵用。。。只有进行组合,重组。。。才能适应各种各样的场景。。。

Emmm。。。脑子漏风。。。1024到了,各位的头发还在么。。。哈哈

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRE运维实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档