大连甘井子区教育局,梅州网站优化公司,苏州市现代建设咨询管理公司,网络学校1.eureka是干什么的#xff1f; 上篇说了#xff0c;微服务之间需要互相之间通信#xff0c;那么通信就需要各种网络信息#xff0c;我们可以通过使用硬编码的方式来进行通信#xff0c;但是这种方式显然不合适#xff0c;不可能说一个微服务的地址发生变动#xff0c;那… 1.eureka是干什么的 上篇说了微服务之间需要互相之间通信那么通信就需要各种网络信息我们可以通过使用硬编码的方式来进行通信但是这种方式显然不合适不可能说一个微服务的地址发生变动那么整个系统的所有微服务都要重新部署显然是不合适的那么我们需要一个服务发现机制服务消费者通过这种机制来获取服务提供者的网络信息并且服务提供者的网络信息即使变化服务消费者也不必改变配置。Eureka提供的就是这样一种服务注册与发现的功能也就是所有的服务在启动的时候都需要把自己的网络信息告诉Eureka以供所有服务使用 服务提供者、服务消费者、Eureka三者之间的关系 (1)服务提供者在启动的时候将自己的网络信息注册到EurekaEureka存贮这些信息 (2)服务提供者与Eureka之间定时的发送心跳告诉Eureka我还在如果长时间没有发送心跳那么就表示该服务已经停止就会注销该服务 (3)服务消费者可以通过Eureka查询服务提供者的网络地址通过该地址查询调用服务提供者的接口 2.编写Eureka server 我们都用maven来管理依赖 1.创建maven工程并添加依 我用的全是最新的版本对于不同springcloud版本和SpringBoot的兼容不同详细看5 1 !--添加eureka-server依赖--2 dependency3 groupIdorg.springframework.cloud/groupId4 artifactIdspring-cloud-starter-netflix-eureka-server/artifactId5 /dependency!--添加eureka-client依赖这个依赖在这里可以不用加如果但是如果是多个Eureka server 需要添加因为Eureka之间需要互相注册--6 dependency7 groupIdorg.springframework.cloud/groupId8 artifactIdspring-cloud-starter-netflix-eureka-client/artifactId9 /dependency10 !--引入SpringCloud的依赖--11 dependencyManagement12 dependencies13 dependency14 groupIdorg.springframework.cloud/groupId15 artifactIdspring-cloud-dependencies/artifactId16 versionFinchley.SR1/version17 typepom/type18 scopeimport/scope19 /dependency20 /dependencies21 /dependencyManagement22 23 !-- 注意 这里必须要添加,否则各种依赖有问题 推测问题在于目前部分依赖没有上传到中央仓库 --24 repositories25 repository26 idspring-milestones/id27 nameSpring Milestones/name28 urlhttp://repo.spring.io/milestone/url29 snapshots30 enabledfalse/enabled31 /snapshots32 /repository33 /repositories 点击查看代码 2.编写配置 1 server:2 port: 80803 tomcat:4 uri-encoding: utf-85 eureka:6 client:7 #是否将自己注册到Eureka Server默认为true,由于当前应用就是Eureka,所以设置成false8 register-with-eureka: false9 #表示是否从Eueka Server获取注册信息默认为true,由于当前是单节点的Eureka Server,没有其他Eureka Server ,故而设置为false10 fetch-registry: false11 service-url:12 #这里是交互的地址所有的服务注册与查询服务都需要通过这个地址这里可以设置多个地址用逗号隔开13 defaultZone: http://localhost:8080/eureka/14 server:15 enableSelfPreservation: false #关闭做我保护模式16 3.编写启动类 SpringBootApplication
EnableEurekaServer //启动一个服务注册中心提供给其他应用进行对话
public class TouristRegisterCenter {public static void main(String[] args) {SpringApplication.run(TouristRegisterCenter.class, args);}
} 整个启动类只是加了一个EnableEurekaServer 注解 4.启动 然后我们可以看见这样的页面就说明恭喜你成功了 但是注意看instances currently registered with Eureka 这里面是我们注册的服务这是空的(废话我还没注册呢)页面内容英语稍微好一点看看应该就明白了实在不行就百度翻译吧 现在Eureka server已经有了那么我们肯定要网上注册一点东西啊接着我们直接copy上面这个然后做一个修改就OK了。上代码 5.将微服务注册到Eureka server 5.1 上面那个pom里面有这个依赖,如果直接copy的可以直接忽略,但是注册的时候主要用到的就是这个包 1 !--添加eureka-server依赖--2 dependency3 groupIdorg.springframework.cloud/groupId4 artifactIdspring-cloud-starter-netflix-eureka-client/artifactId5 /dependency 点击查看代码 5.2修改配置文件 1 server:2 port: 80813 tomcat:4 uri-encoding: utf-85 6 7 spring:8 application:9 name: Tourist-user-server #注册到Eureka server 上的应用名称10 11 12 eureka:13 client:14 service-url:15 defaultZone: http://localhost:8080/eureka/ #Eureka server 注册地址16 instance:17 prefer-ip-address: true #表示将自己的IP注册到Eureka server 该配置默认false表示将所在计算机系统的hostname注册到Eureka server 关于配置或者代码里面细节的东西我都直接写在代码注释里了毕竟方便看嘛 5.3 编写启动类 1 SpringBootApplication2 EnableEurekaClient3 public class TouristuserserviceApplication {4 5 public static void main(String[] args) {6 SpringApplication.run(TouristuserserviceApplication.class,args);7 }8 }9 在这里就是把server中的EnableEurekaServer 改成了EnableEurekaClient 声明这是一个Eureka client 6.启动查看 首先启动Eureka server 启动成功之后再启动Eureka client 两个全部启动之后我们再访问Eureka server 看看是否注册进去了 OK成功注册上去了大功告成 7.关于版本 关于springcloud版本 这只是springcloud版本因为springcloud基于springBoot所以springcloud与SpringBoot的版本最好对应详情可以看一下GitHub上springcloud的信息附上地址https://github.com/spring-projects/spring-cloud/wiki/Spring-Cloud-Finchley-Release-Notes 8.结束 其实关于Eureka server 总结下来就是 1.添加依赖 2.配置 3.在启动类添加注解声明这是一个Eureka server Eureka client 也就是微服务注册的过程也很简单 1.添加依赖 2.增加配置主要就是注册上去的名称和注册地址 3.在启动类上声明是一个Eureka client 然后就成了。。。。。。。。 这纯属自己学习如果有什么不对的地方请大神们多多指教小弟万分感谢转载于:https://www.cnblogs.com/SunArmy/p/9556619.html