SpringCloud(第二天加强)
Posted 8888-lhb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud(第二天加强)相关的知识,希望对你有一定的参考价值。
1.使用IP注册服务
a) 修改服务提供者和服务消费者的yml配置文件
eureka: instance: hostname: localhost prefer-ip-address: true #使用IP地址注册到注册中心 instance-id: PROVIDER-NAME #注册到注册中心的名称 client: service-url: defaultZone: http://localhost:7001/eureka
b) prefer-ip-address: true 使用IP地址注册到注册中心
在访问Eureka注册中心的时候,注册到注册中心的服务的访问的IP就不会是127.0.0.1和localhost,而是192.168.xx.x
2.服务之间的调用(通信)
a) 建立服务提供者和消费者的公共模块
b) 在消费者和提供者添加对公共服务模块的依赖
c) 在服务提供者模块定义接口(Controller层)
d) 在服务消费者定义controller调用服务提供者controller
i. 通过restFul风格SpringMVC提供的远程调用工具RestTemplete实现,在主配置类里面配置RestTemplete这个bean交给Spring管理,然后在Controller注入RestTemplete对象.调用服务.
3.Eureka集群:解决单节点故障
a) 修改hosts文件: C:WindowsSystem32driversetchosts
添加两个服务注册的本地IP域名
127.0.0.1 eureka-7001.com
127.0.0.1 eureka-7002.com
b) 修改Eurake配置文件配置
spring: application: name: spring-cloud-eureka server: port: 7001 eureka: instance: hostname: eureka-7001.com client: #不向Eureka注册自己 register-with-eureka: false #不检查其他的EurekaServer节点 fetch-registry: false service-url: #设置eureka服务器所在的地址,查询服务和注册服务程序都注册到这个地址(服务暴露的地址) defaultZone: http://eureka-7002.com:7002/eureka/
c) 搭建另一个注册中心,修改yml配置文件
spring: application: name: spring-cloud-eureka server: port: 7002 eureka: instance: hostname: eureka-7002.com client: #不向Eureka注册自己 register-with-eureka: false #不检查其他的EurekaServer节点 fetch-registry: false service-url: #设置eureka服务器所在的地址,查询服务和注册服务程序都注册到这个地址(服务暴露的地址) defaultZone: http://eureka-7001.com:7001/eureka/
d) 修改客户端注册到Eurake的路径
spring: application: name: SPRING-CLOUD-USER //如果服务提供者做了集群的时候这里的name必须相同 server: port: 8001 //服务提供者 eureka: instance: hostname: localhost prefer-ip-address: true #使用IP地址注册到注册中心 instance-id: USER-CLIENT// 如果服务提供者做集群的时候这个instance-id 一定不能相同
client: service-url: #设置eureka服务器所在的地址,查询服务和注册服务程序都注册到这个地址(服务暴露的地址) #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ defaultZone: http://peer1:7001/eureka,http://peer2:7002/eureka //向两个注册中心注册服务
以上是关于SpringCloud(第二天加强)的主要内容,如果未能解决你的问题,请参考以下文章
springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段