前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springcloud Eureka(续)

springcloud Eureka(续)

作者头像
暴躁的程序猿
发布2022-03-24 15:38:21
1720
发布2022-03-24 15:38:21
举报
文章被收录于专栏:阿飞的学习记录

不了解Eureka的可以看我以前的文章 springcloud Eureka

使用Eureka

需要先写一个Eureka的服务中心

创建一个module为例

EurekaService

导入依赖

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springcloud</artifactId>
        <groupId>com.rpf</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-eureka-7001</artifactId>
    <!--导包-->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

依赖了一些父工程的配置

编写配置文件 properties.yml

设置服务中心的端口号

代码语言:javascript
复制
server:
  port: 7001

#Eureka配置
eureka:
  instance:
    hostname: localhost #Eureka服务端的实例名称
  client:
    register-with-eureka: false #是否向Eureka注册中心注册自己
    fetch-registry: false  #fetch-registry如果为false ,表示自己为注册中心
    service-url:   #监控页面地址
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

编写一个启动类

代码语言:javascript
复制
@SpringBootApplication
@EnableEurekaServer//开启Eureka服务   服务端的启动类 可以接收别人注册进来
public class EurekaServer_7001{
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer_7001.class,args);
    }
}

注册中心就编写好了

把我们之前写的服务提供者注册进来

在服务提供者中加入Eureka依赖

代码语言:javascript
复制
    <!--加入Eureka依赖-->
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>

编写配置文件

代码语言:javascript
复制
#Eureka的配置,服务注册到哪里
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/

启动类上开启Eureka使用的是Client

代码语言:javascript
复制
//启动类
@EnableEurekaClient//在服务启动后自动注册到Eureka服务端
@SpringBootApplication
public class DeptProvider_8001 {
    public static void main(String[] args) {
        SpringApplication.run(DeptProvider_8001.class,args);
    }
}

启动测试

访问7001端口 查看注册信息

注册成功

消费者拉取服务

导入依赖

代码语言:javascript
复制
<!--需要Eureka发现服务-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>

yml配置

配置取服务的地址

代码语言:javascript
复制
server:
  port: 8005
#Eureka配置
eureka:
  client:
    register-with-eureka: false  #  不向Eureka中注册自己  消费者只需要拿不用注册自己
    service-url: #去哪取服务
      defaultZone: http://127.0.0.1:7001/eureka/

创建一个config 注入Rest模板

代码语言:javascript
复制
@Configuration//@Configuration 相当于spring中的 application.xml
public class ConfigBean {
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }


}

controller 调用接口

代码语言:javascript
复制
@RestController
public class DeptConsumerController {
   //RestTemplate   供我们直接调用 使用需要注册到Spring中

    //三个参数(url,实体:map,Class<T>responseType,)
    @Autowired
    RestTemplate restTemplate;//提供多种便捷访问远程http服务的方法,简单的restful服务模板~

    //前缀是固定的   http://localhost:8001
    private static final String REST_URL_PREFIX="http://localhost:8001";

    @RequestMapping("consumer/dept/get/{id}")
    public Dept get(@PathVariable("id")Long id){//Dept.class响应的类型
         return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id,Dept.class);
    }

    @RequestMapping("/consumer/dept/add")
    public boolean add(Dept dept){
        return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept,Boolean.class);
    }
    @RequestMapping("/consumer/dept/list")
    public List<Dept> list(){
        return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list",List.class);
    }
}

启动类开启Eureka

代码语言:javascript
复制
@EnableEurekaClient//开启Eureka
@SpringBootApplication
public class DeptConsumer_80 {
    public static void main(String[] args) {
        SpringApplication.run(DeptConsumer_80.class,args);
    }
}

测试访问

使用功能的基本步骤

导入依赖

编写配置文件

开启功能EnableXXX

可能写配置类

更改之后

修改描述信息在生产者yml配置

代码语言:javascript
复制
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka/,http://127.0.0.1:7003/eureka/,http://127.0.0.1:7002/eureka/
  instance:
    instance-id: springcloud-provider-dept8001   #修改eureka上的默认描述信息
info:
  app.name: feifei-springcloud  #项目名字
  company.name: www.badu.com  #公司名字

重启就可以实现

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/05/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档