简单介绍一下eureka,ribbon,feign
eureka (服务注册与发现)分为client与service,每一个spring cloud的项目都需要 注册之后才能使用,服务器配置服务端,客户端配置客户端。
ribbon 是做负载均衡的,当一个请求来的时候,分发给其他的服务,可以是同一个服务器的相同应用的多个服务,保证了系统的稳定。
feign (声明式调用服务) 可以说非常重要的,最主要的特点是通过服务名调用服务(前提也要先注册)。
spring cloud 还有根据其他的组件,例如zuul做网关,配合ribbon,还有Hystrix——熔断器等可以做一个十分强大的分布式系统。我按着例子跑了一遍,发现spring cloud 使用真的很方便,但是最系统架构设计要求比较高,怎样才能让系统设计得更合理,还有很长一段路要走。接下来查看例子。
首先从git上拉下来几个项目:
eureka服务端: https://gitee.com/zhoujie1/eureka-server.git
eureka客户端: https://gitee.com/zhoujie1/eureka-client.git
ribbon: https://gitee.com/zhoujie1/ribbon.git
feign : https://gitee.com/zhoujie1/feign.git
导入到IDEA中。
启动eureka服务端,输入地址与端口,出现下图,表示服务端启动
启动client,再次访问该地址
发现会多一个服务,此时服务就注册好了。接下来咱把ribbon与feign也加上,在加上之前,需要先将客户端打成jar包,放入目录,运行。并指定另一个端口:java -jar helloEurekaclient-1.0-SNAPSHOT.jar --server.port=8763
启动成功,如下图
加入ribbon,两个服务交替出现,如下图
加入feign,我的接口定义的/feign,同样是交替调用服务。
此时,查看eureka主页界面可以看到所有服务
整个流程是,feign通过服务名调用时,被ribbon拦截,按照次序分发给不同的服务。此时系统运行成功。
遇到的问题:
1.maven导入spring cloud项目后eureka不会正常显示,将导入的包删掉,重新导入。
2.ribbon写调用服务名的时候,需要大写。
3.不同的版本的spring cloud的版本不同,需要的可以去参考https://www.cnblogs.com/jtlgb/p/9204069.html,而且调用方式也不一样
根据以下2篇博客搭建的,还有些东西没有用上,后面再学习。
参考博客:
https://blog.csdn.net/qwssd/article/category/7406590
https://www.cnblogs.com/chry/category/1045074.html