- 不同微服务,不要开发相同业务
- 微服务数据独立,不要访问其他微服务的数据库
- 微服务可以将自己的业务暴露为接口,供其他微服务调用
Spring提供的发送HTTP请求的工具,在启动类中进行注册
注入RestTemplate并发送请求
提供者与消费者- 服务提供者:一次业务中,被其他微服务调用的服务(提供接口给其他微服务);
- 服务消费者:一次业务中,调用其他服务的服务.(调用其它服务提供的接口)
一个服务既可以是提供者又可以是消费者
Eureka注册中心 服务调用出现的问题-
ip与端口硬编码在代码之中,不太灵活.
-
请求端口如果为集群形式,不能够多选
eureka-server:服务端(注册中心)
eureka-client:客户端(各种服务)
每一个客户端在启动的时候都会去注册中心注册自身的服务信息
消费者在请求服务的时候去注册中心基于负载均衡去拉取选中服务的信息
心跳续约:服务每30秒会向eureka发送一次信息,来确认服务的状态,如果获取不到对应信息,会从注册中心将信息删除
搭建EurekaServer
端口号及服务名称自行命名
eureka本身也是微服务,在启动时会将自己也注册进eureka
如有一服务名为userservice
第一步:引入依赖
第二部:添加配置信息
服务注册成功,显示一个服务启动的实例列表
服务的示例列表
拉取服务服务的拉取是基于服务名称获取服务列表,然后再对服务列表做负载均衡
-
修改url路径,将ip,端口用服务名称代替
-
在请求项目的启动类中,在RestTemplate中添加负载均衡注解:
@LoadBalanced
@Bean @LoadBalanced public RestTemolate restTemplate() { return new RestTemplate(); }