智汇华云 | 浅谈微服务架构下的服务发现机制

Posted 华云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智汇华云 | 浅谈微服务架构下的服务发现机制相关的知识,希望对你有一定的参考价值。

智汇华云 | 浅谈微服务架构下的服务发现机制

随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈。在云计算这样的技术领域,专利储备往往代表着企业最新的技术实力。华云数据本期“智汇华云”专栏将针对“浅谈微服务架构之服务发现”技术,与大家共同分享云计算领域的最新技术。


本期讲解人


智汇华云 | 浅谈微服务架构下的服务发现机制

包明生

华云数据集团高级技术经理


由于业务量大幅增长,华云数据决定对业务增长导致不断臃肿的单体应用进行重构,重构后的应用选择微服务架构。微服务架构最大的优势是语言的开放性,可以根据业务场景选择最合适的语言。另外对于不止一个技术栈的公司组织架构,也能带来很好的融合协作机会。华云数据的主要技术栈是JAVA,php。JAVA自不必多说,其微服务框架spring cloud对微服务有非常全面且完善的一条龙支持,简直是微服务架构开发的利器,而PHP则有所欠缺,特别是在服务治理部分。比如在做服务注册、发现的时候比较痛苦。


我们的方案

1、为什么要使用服务发现




智汇华云 | 浅谈微服务架构下的服务发现机制

图1


智汇华云 | 浅谈微服务架构下的服务发现机制

图2


2、服务发现的机制及发现方式




智汇华云 | 浅谈微服务架构下的服务发现机制

图3


好处主要有两点:


2、注册中心能够监测相应服务的状态,有了它,我们就能知道微服务架构中有多少个服务,版本是什么,每个服务的实例数有多少,状态如何。


服务发现有两种方式:

2.1服务端发现




这种方式最大的好处就是由服务端实现服务发现及负载,客户端完全不用做额外的事情,非常推荐使用此方式。如下图4。 


智汇华云 | 浅谈微服务架构下的服务发现机制

图4


2.2客户端发现


智汇华云 | 浅谈微服务架构下的服务发现机制

图5


这种方式最大的特点就是灵活,客户端或者微服务可以根据自己的业务场景选择最佳的负载策略,但是缺点也是显而易见的,客户端或微服务需要考虑负载。这在JAVA没问题,它的spring cloud框架很强大,可以支持,不过PHP及其它语言就会很痛苦,所以个人推荐使用服务端发现的方式


如下图6方式,服务端发现可使用consul template+nginx

 

图6

3、工具介绍及总结


Netflix OSS 是典型的客户端发现范例;Netflix Eureka 是服务注册表,Netflix Ribbon是IPC客户端,与Eureka一起实现CLB。对docker无明确支持


 

微服务架构的性质决定了它的复杂性,存在成百上千个微服务,而每个微服务又可能分布在多个不同节点,所以全栈监控很重要,而服务发现则是其中很重要的一环。通过它,我们就知道整个系统有多少个微服务,版本是什么,每个服务的实例数有多少,状态如何。而这些又是一个完整自动化运维架构的基础,发挥微服务架构最大的价值非常重要,大大减少运维人员在部署、问题排查上冗余工作,大幅提升工作效率


相关阅读



点击原文链接,了解华云数据更多信息


以上是关于智汇华云 | 浅谈微服务架构下的服务发现机制的主要内容,如果未能解决你的问题,请参考以下文章

智汇华云 | 通过TProxy实现haproxy 透传用户IP

浅谈微服务架构下的API网关

浅谈微服务架构——容错模式2

智汇华云 | RabbitMQ集群揭秘

智汇华云 | Ceph的正确玩法之SSD作为HDD的缓存池

浅谈微服务架构