微服务之springcloud技术栈

时间:2017-03-11 00:54:03   收藏:0   阅读:1225

一、微服务架构图:

技术分享

二、技术介绍:(技术选型随着代码的编写会完成)

关于技术选型,我盗了一张微服务技术栈的图,如下:原文:http://www.jianshu.com/p/2da6becfb019

技术分享

 我将会用到上图中的如下技术

三、基本流程:

  1. 各个服务启动的时候,都会将自己的信息注册到consulClient,consulClient将注册信息提交给consulServer,consulServer将信息提交给consulLeader(也是consulServer),consulLeader将自身的数据复制给其他的consulServer,服务注册完成!!!
  2. APP发出一个对gatewayX-server的request,该请求先到nginx,nginx选出一台gatewayX-server的服务器进行request的处理
  3. gatewayX-server通过myserviceA-client.jar来访问myserviceA-server的具体逻辑
    1. 首先从consulServer上拉取可用的myserviceA-server的服务器,服务发现完成!!!
    2. 根据负载均衡策略选出其中一个服务器来进行访问
    3. 访问的过程中通过熔断器来进行超时容错处理
  4. gatewayX-server通过myserviceB-client.jar来访问myserviceB-server的具体逻辑同3

说明:如果仅仅只是前边这样的流程或者以前边这样的流程为基础并且myserviceB-server要调用myserviceA-server,那么上图中的myserviceB-server中的整个myserviceA-client.jar可以去掉,原因是gatewayX-server已经引入了myserviceA-client.jar。

如果不是上边的流程,只是单纯的myserviceB-server要访问myserviceA-server,那么需要引入myserviceA-client.jar。

注意:对于服务发现而言,consulServer会通过gossip协议将服务器数据广播给各个本地consul agent(通常是consulClient),所以我们不需要做本地缓存,当被调用服务的服务器列表发生改变时,会马上广播给consulClient。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!