真正开始做了的时候,基于钻研探索的精神。因为视频中和大多数网上帖子中eureka的配置一般只有短短四行(不是夸张。真的是只有四行)。所以我不管是脑抽还是热爱学习,反正是想找找一共eureka配置参数都有什么。。然后顺便写个文章记录下使用过程。
这里有一个特别注意的问题就是cloud 和boot和各种组件的版本问题。我在这提一下因为这个是我踩过的坑~~~所以先提一下。
eureka分两种配置:
1,依赖(我这里用的spring boot1.5.21版本,所以和2以后的不一样):
2,在启动类上添加服务端注解(关于这个注解有的版本哪怕不添加也会默认):
3,在配置文件中配置eureka服务端的相关配置:
这里说到重头戏了,其实必须配置的也就三四条。剩下都是可选项。我会在每一条后面特别声明是否必须配置的。
1,依赖(我这里用的spring boot1.5.21版本,所以和2以后的不一样):
这里要着重说一下,第一个依赖是作为eureka的客户端的依赖。第二个则是feign的依赖,用于服务之间相互调用的。我觉得很有必要所以一起放在这里,如果有的人觉得用不到第二个可以不导入。
2,在启动类上添加客户端注解(关于这个注解有的版本哪怕不添加也会默认):
3,在配置文件中配置eureka客户端的相关配置:
对了,这里有两个注意点:
-更改Eureka更新频率将打破服务器的自我保护功能,生产环境下不建议自定义这些配置。
-eureka.client.healthcheck.enabled=true 只应该在application.yml/properties中设置。如果设置在bootstrap.yml中将会导致一些不良的副作用,例如在Eureka中注册的应用名称是UNKNOWN等。
到这里你们用eureka搭建的boot+cloud微服务已经可以起来啦~~然后此文主要是参考了一个帖子~~那么大佬把eureka的所有属性从官网文档整理出来的~~~膜拜一波~~~然后有兴趣的可以跳转过去看看~~~
eureka参数大全
然后如果有比较了解的亲们或者说我上述观点哪里有偏颇~~欢迎指出~~!!!
喏,手打不易,大家动动小手喜欢分享转发关注评论啥的~~~~
将SpringCloud集成Eureka服务部署在阿里云服务器。项目在上一篇博客讲过在本地测试SpringCloud集成Eureka服务,博客地址:
https://www.jianshu.com/p/78e8797ea804 ,现在将3个项目部署在阿里云服务器,环境是CentOS7,Tomcat 9。
在pom.xml文件里设置打包方式:
在启动Application类添加:
在application.properties配置文件修改:
直接把项目lean下,再package:
打包后的war包在target目录下:
修改pom.xml依赖:
程序入口application类修改:
消费者的api请求路径修改:
application.properties修改
直接对项目lean,再package:
3.Eureka Client项目demo打包跟1类似,这就不重复写了;
3个项目打包好的包名:springcloud-eureka.war,springcloud-eureka-client-one.war,springcloud-eureka-client-one.war:
4.将3个war部署阿里云服务器
登录阿里云的白塔控制面板,将3个包上传到Tomcat的webapps文件夹下:
或者通过xftp工具上传也可以;
上传完后,重启Tomcat,等一会,就可以在浏览器里访问:
相关链接:
成功截图:
使用Eureka做服务发现Zookeeper做注册中心的缺陷
Peter Kelley(个性化教育初创公司Knewton的一名软件工程师)发表了一篇文章说明为什么ZooKeeper用于服务发现是一个错误的做法,他主要提出了三个缺点[1]:
ZooKeeper无法很好的处理网络分区问题,当网络分区中的客户端节点无法到达Quorum时,会与ZooKeeper失去联系,从而也就无法使用其服务发现机制。
服务发现系统应该是一个AP系统,设计上针对可用性;而ZooKeeper是一个CP系统。
ZooKeeper的设置和维护非常困难,实际操作的时候也容易出错,比如在客户端重建Watcher,处理Session和异常的时候。
当然,Peter Kelley提出的这几个问题并不是不能克服的,并不能说明基于ZooKeeper就不能做好一个服务发现系统,但是我们可能有更简洁的方案来实现。
Eureka介绍
什么是Eureka
官方的介绍在这里Eureka wiki。Eureka是Netflix开源的一个RESTful服务,主要用于服务的注册发现。Eureka由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。
在我看来,Eureka的吸引力来源于以下几点:
开源:大家可以对实现一探究竟,甚至修改源码。
可靠:经过Netflix多年的生产环境考验,使用应该比较靠谱省心
功能齐全:不但提供了完整的注册发现服务,还有Ribbon等可以配合使用的服务。
基于Java:对于Java程序员来说,使用起来,心里比较有底。
spring cloud可以使用Spring Cloud, 与Eureka进行了很好的集成,使用起来非常方便。
Eureka架构
Netflix主要是在AWS中使用Eureka的,虽然同时也支持本地环境,但是了解AWS的一些基础概念对于理解Eureka的设计非常有帮助。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)