【学习笔记】
4)springcloud和springboot是什么关系?
马克-to-win@马克java社区:springboot可以快速开发单个微服务。springcloud是一个基于springboot实现的一系列框架的集合,用来提供全局的服务治理方案。springcloud要基于springboot来实现,离不开springboot。
5)EurecaServer的工作原理:
马克-to-win@马克java社区:Eureka包含Server和Client两部分,从而实现微服务的注册与发现。EurekaServer目标是提供服务发现的能力。各个微服务启动时,会向EurekaServer注册自己的信息(例如端口、微服务名等),EurekaServer会存储这些信息。提供服务或消费微服务都是EurekaClient,通常都只是个springboot的jar项目。EurekaServer本身也是。微服务启动后,会周期性(默认30s)向EurekaServer发送心跳证明自己还活着。如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销这个实例(默认90s)。多个EurekaServer实例,互相复制,实现服务注册表数据同步,达到高可用,简单说,即一台机器坏了,另一台接替它,继续工作。用户体会不到你这机器坏了。EurekaClient会缓存服务注册表中的信息。这样就没必要总查询EurekaServer,即使EurekaServer都死掉,EurekaClient都能相互找到且完成任务。
6)为什么EurecaClient要分成服务提供者和服务消费者呢?
通常来讲,服务提供方是重量的耗时的,所以可能在n台机器上。而服务消费方是轻量的,通过配置ribbon和@LoadBalanced达到负载均衡的效果。消费方通过template.getForEntity("http://provider/acquire"。。。来找到服务提供方。消费方和提供方和EurekaServer三者协同,才能完美工作。如果Consumer没用EurekaServer这种技术,如何能用@LoadBalanced和ribbon这种负载均衡的功能呢?
1.EurecaServer的Helloworld例子:
做个普通的mavenproject,quickstartarchetype。改成jdk.8。下面Camden.SR1是版本名,springcloud的版本名称很奇特,它是按照伦敦地铁站的名称命名的。
马克-to-win@马克java社区:maven当中避免重复发明轮子的方法,一种是继承,一种是引用(参考我参考目录下的文章)。maven中配置引用关系的方法是,pom和import,很简单,这样就引入一个pom文件,这样里面的org.springframework.cloud和spring-cloud-starter-eureka-server,由于没有版本信息,就可以参考引入的pom文件的里面的版本信息。就像maven继承方法似的,在父pom的里,放入版本信息,在若干子pom里都省去版本信息了。马克-to-win@马克java社区:子pom只需到父pom的里,找到相应的artifactId和groupId的版本信息即可。引用和继承原理是类似的。我机器里面的引入文件就在:E:\m2\repository\org\springframework\cloud\spring-cloud-netflix-dependencies\1.3.1.RELEASE里面有个spring-cloud-netflix-dependencies-1.3.1.RELEASE.pom,里面里面有句话:
org.springframework.cloud
spring-cloud-starter-eureka-server
${project.version}
pom.xml:
4.0.0
com
EurecaServer3
0.0.1-SNAPSHOT
jar
EurecaServer3
http://maven.apache.org org.springframework.boot spring-boot-starter-parent 1.4.1.RELEASE UTF-8更多内容请见原文,版权保护本文转载自原文:https://blog.csdn.net/mark_to_win/article/details/88735976
本文内容总结:
原文链接:https://www.cnblogs.com/haima1949/p/10774216.html