1、Spring-Cloud Euraka介绍
Spring-Cloud Euraka是Spring Cloud集合中一个组件,它是对Euraka的集成,用于服务注册和发现。Eureka是Netflix中的一个开源框架。它和 zookeeper、Consul一样,都是用于服务注册管理的,同样,Spring-Cloud 还集成了Zookeeper和Consul。
在项目中使用Spring Cloud Euraka的原因是它可以利用Spring Cloud Netfilix中其他的组件,如zull等,因为Euraka是属于Netfilix的。
2、Euraka介绍
Eureka由多个instance(服务实例)组成,这些服务实例可以分为两种:Eureka Server和Eureka Client。为了便于理解,我们将Eureka client再分为Service Provider和Service Consumer。
Eureka Server 提供服务注册和发现
Service Provider 服务提供方,将自身服务注册到Eureka,从而使服务消费方能够找到
Service Consumer服务消费方,从Eureka获取注册服务列表,从而能够消费服务
创建Server即注册中心
新建一个SpringBoot程序,POM引入
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
编写配置文件application.yml
server: port: 10086 spring: application: name: eurekaserver eureka: client: service-url: defaultZone: http://127.0.0.1:10086/eureka
向注册中心注册自己,这里仅为演示
启动类增加注解
package cn.itcast.eureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; /** * @Auther: Java小强 * @Date: 2022/1/29 - 13:05 * @Decsription: cn.itcast.eureka * @Version: 1.0 */ @EnableEurekaServer @SpringBootApplication public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); } }
启动后可以打开http://localhost:10086/查看页面
客户端
这个客户端可能是服务者或者消费者,或者两者都是
POM引入
<!--引入eureka的客户端依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
配置文件增加
eureka: client: service-url: defaultZone: http://127.0.0.1:10086/eureka
在上文中使用RestTemplate时,我们的URL是IP+端口的,这里修改下增加@LoadBalanced注解
@Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); }
使用时,把IP端口改为服务名即可
public Order queryOrderById(Long orderId) { // 1.查询订单 Order order = orderMapper.findById(orderId); String url = "http://userserver/user/{userId}"; Map<String, Object> para = new Hashtable<>(); para.put("userId", order.getUserId()); User user = restTemplate.getForObject(url, User.class, para); order.setUser(user); // 4.返回 return order; }
完成简单使用示例。
推荐您阅读更多有关于“ 注册 服务 springboot pom Eureka ”的文章
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: