手把手教你 Spring Cloud 微服务

关于Eureka

Spring Cloud Eureka 是 Netfilx 套件的一部分,主要用于微服务框架中的服务治理,结合spring boot 我们可以通过简单的注解配置就能启用。如图所示:

  1. 服务注册中心,提供服务注册和发现的功能。
  2. 服务提供者,提供服务的应用,通过注册到服务注册中心来使服务被发现,以供调用。
  3. 服务消费者,通过服务注册中心获取可调用服务列表,进行服务调用。

搭建服务注册中心

首先创建spring boot应用,在pom文件引入依赖,在这里需要注意的时候你引入的spring cloud版本有spring boot的版本要求,我引入的版本是Greenwich.SR5,所以spring boot需要2.1.x以上的版本,我们可以再spring cloud官网找到该说明
链接: https://spring.io/projects/spring-cloud.
spring boot对应Neffilx版本
在pom.xml引入spring cloud的依赖,spring boot的版本是2.1.10

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

 </dependencyManagement>

再引入Eureka Server

<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

在spring boot的启动类添加Eureka服务器的注解@EnableEurekaServer

@SpringBootApplication
@EnableEurekaServer
public class ServerStartApplication {
	
	public static void main(String[] args) {
		SpringApplication.run(ServerStartApplication.class, args);
	}
}

在默认配置下,该服务注册中心会把自己也作为客户端注册自己,所以我们需要把禁用它的客户端注册行为,在yml文件把
eureka.client.register-with-eureka改成false

eureka:
  client:
        #该配置表示是否需要将自己注册到注册中心上(默认为true),如果是单机部署,不需要设置为true;
        #但是注册中心集群时候必须为true;因为集群时,其他Eureka需要从此Eureka中的节点上获取数据;
    register-with-eureka:false

启动成功访问http://localhost:8761/就可以看到Eureka的信息面板了。Instances currently registered with Eureka这一栏展示注册到服务注册中心的Eureka应用,由于现在没有注册,所以显示是空的。
在这里插入图片描述

服务提供者

同样创建spring boot应用,应用名称为:spring-cloud-eureka-provide,引入相同的spring cloud依赖,再引入Eureka client的依赖

<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

启动类加上@EnableEurekaClient注解

@SpringBootApplication
@EnableEurekaClient
public class ProvideClientApplication {
	
	public static void main(String[] args) {
		SpringApplication.run(ProvideClientApplication.class, args);
	}
}

在yml配置注册中心的地址

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

启动成功我们就可以在Eureka面板看到该应用的注册
在这里插入图片描述
服务提供应用在注册中心注册成功之后,就可以对外提供接口,我们先建一个Controller,对外提供方法以供调用。
在这里插入图片描述
服务提供者提供对外的接口为test/getCode/{id}
在这里插入图片描述

服务调用者

服务调用应用(spring-cloud-eureka-client)也需要注册到服务注册中心,注册方式与服务提供者相同。注册成功可以在服务注册中心看到两个已经注册的应用。
在这里插入图片描述
现在我们可以在client应用里面去调用provide应用的方式,通过RestTemplate 的方式,调用接口为provide应用名称+接口方法。

@Autowired
	RestTemplate tpl;
	
@RequestMapping(value="/router/{id}",method=RequestMethod.GET)
	@ResponseBody
	public String router(@PathVariable("id") String id) {
		
		String json = tpl.getForObject("http://spring-cloud-eureka-provide/test/getCode/"+id, String.class);

		return json;
	}

完成服务调用。
在这里插入图片描述
项目代码可以参考:https://github.com/cwy405/springcloud

参考文献

1、Spring Cloud 微服务实战 翟永超著

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值