Eureka-Provider 服务的提供者

新建一个服务提供者项目

1、导入pom文件

<properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR3</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

2、在启动类上加注解


@SpringBootApplication
@EnableDiscoveryClient // 这个注解加不加都可以,因为Eureka
public class EurekaProviderApplication {public static void main(String[] args) {SpringApplication.run(EurekaProviderApplication.class, args);}
}

上边那个@EnableDiscoverClient 注解加不加都行的原因会在后边表名

3、在Eureka-Provider项目中添加一个简单的接口


@RestController
public class EurekaProviderController {@GetMapping("/provider")public String provider(@RequestParam String aaa){return "eureka-provider-return" + aaa;}
}

4、以上配置完成之后启动Eureka-Provider
启动后会在控制台输出
DiscoveryClient_EUREKA-PROVIDER/192.168.1.4:eureka-provider:8000: registering service...

​ 同时看localhost:8761 页面的Instance currently registered 会多出一条信息
​ Application AMIs Availability Zones Status
​ EUREKA-PROVIDER n/a (1) (1) UP (1) - 192.168.1.4:eureka-provider:8000

Eureka-Consumer 服务的调用者

调用者的配置和上边提供者类似,applicatioin.yml配置修改server.port=8100

1、启动类修改


@SpringBootApplication   // 另一个发现服务的注解可以不用谢(SpringCloud版本要在Edgware之后)
public class EurekaConsumerApplication {@Bean@LoadBalancedRestTemplate restTemplate(){return new RestTemplate();}public static void main(String[] args) {SpringApplication.run(EurekaConsumerApplication.class, args);}
}

2、编写一个调用接口的类


@RestController
public class EurekaConsumerController {@Autowiredprivate RestTemplate restTemplate;@GetMapping("/consumer")@GetMapping("/consumer")public String consumer(@RequestParam String aaa){return restTemplate.getForObject("http://EUREKA-PROVIDER/provider?aaa=" + aaa,String.class );}
}

3、启动服务调用者

​ 启动后,调用调用者的触发地址localhost:8100/consumer?aaa=consumerSemdParamter

​ 浏览器显示内容:

eureka-provider-returnconsumerSemdParamter

上边遗留的一个问题,eureka-client不加@EnableDiscoveryClient以将自己注册到注册中心

  • 先看EurekaClientAutoConfiguration类中

    
    @Configuration
    @EnableConfigurationProperties
    @ConditionalOnClass(EurekaClientConfig.class)
    @Import(DiscoveryClientOptionalArgsConfiguration.class)
    @ConditionalOnBean(EurekaDiscoveryClientConfiguration.Marker.class)
    @ConditionalOnProperty(value = "eureka.client.enabled", matchIfMissing = true)
    @ConditionalOnDiscoveryEnabled
    @AutoConfigureBefore({ NoopDiscoveryClientAutoConfiguration.class,CommonsClientAutoConfiguration.class, ServiceRegistryAutoConfiguration.class })
    @AutoConfigureAfter(name = {"org.springframework.cloud.autoconfigure.RefreshAutoConfiguration","org.springframework.cloud.netflix.eureka.EurekaDiscoveryClientConfiguration","org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration" })
    public class EurekaClientAutoConfiguration {
    }

​ 可以看到该类加载的条件是需要有EurekaDiscoveryClientConfiguration.Maker.class的Bean存在,并且eureka.client.enabled为true,因为该值默认为true,所以不需要关注,因此重要的就是EurekaDiscoveryClientConfiguration.Maker.class这个,而这个类在Dalston之前的旧版本是不会自动加载的,而在Edgware之后,该类就配置到spring.factories文件中了,改文件中所配置的bean在springboot启动的时候就会被加载(所以不需要手动配上注册服务的注解了,springboot会自动配置)

SpringCloud-Eureka-ProviderConsumer相关推荐

  1. SpringCloud Eureka自我保护机制

    转载自 SpringCloud Eureka自我保护机制 自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他 ...

  2. springcloud Eureka服务注册和发现

    一,Eureka基本介绍: Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper). Eureka 采用了 C-S 的设计架构 ...

  3. SpringCloud Eureka初体验

    文章目录 Eureka Server 创建Eureka Server项目 配置application.properties 增加@EnableEurekaServer注解 访问Eureka Serve ...

  4. SpringCloud eureka服务状态监听

    一.前言 近期由于公司不同平台项目之间的业务整合,需要做到相互访问! 每个平台均有自己的注册中心和服务,且注册中心相互之间并没有相互注册! 借助spring的事件监听,在eureka-server端监 ...

  5. spring-cloud eureka注册发现

    idea新建一个eureka server服务 application.yml 配置: spring:application:name: eureka-serverserver:port: 7000e ...

  6. 【Java从0到架构师】SpringCloud - Eureka、Ribbon、Feign

    SpringCloud 分布式.微服务相关概念 微服务框架构选型 SpringCloud 概述 服务注册与发现 - Eureka 案例项目 Eureka 自我保护机制 微服务调用方式 - Ribbon ...

  7. SpringCloud——Eureka服务注册和发现

    一.SpringCloud和Dubbo SpringCloud整合了一套较为完整的微服务解决方案框架,而Dubbo只是解决了微服务的几个方面的问题. content Dubbo SpringCloud ...

  8. SpringCloud/Eureka/Ribbon:No instances available for springcloud-provider-dept

    服务注册方: <!--eureka server--> <dependency><groupId>org.springframework.cloud</gro ...

  9. SpringCloud:Eureka Config项目搭建(Gradle项目)

    Eureka Config分为Config Server 和Config Client两部分. Config Server部分: gradle配置: // https://mvnrepository. ...

  10. 【实践篇】SpringCloud + Eureka + Mybatis plus 整合分布式事务Seata

    纵观全文 项目简介 配置Seata Server服务 修改conf下的registry.conf文件 修改conf下的file.conf文件 启动seata server服务 在系统服务中配置使用Se ...

最新文章

  1. Windows客户端C/C++编程规范“建议”——风格
  2. html div 纵向居中,内容居中分为div内容水平居中与div内容垂直居中
  3. 获取一个 Byte 的各个 Bit 值
  4. python问题汇总
  5. java学习避免死锁
  6. AutoRunner不能录制脚本的解决办法
  7. 秀米排版一篇文章,简简单单
  8. Android so 文件全部报错:Duplicate resources
  9. 高中数学数列解题技巧及常用高考数学解题方法
  10. mac 命令行查看DNS
  11. js使用广度优先给树形结构添加level
  12. 用Python中的hashlib实现md5和sha加密
  13. 问题解决:[/usr/lib/systemd/system/etcd.service:6] Missing ‘=‘.
  14. 屏蔽博客园背景动态线条
  15. C#将设置开机、关闭开机启动项
  16. php音频上传失败,flash导入音乐失败怎么办
  17. android仿win8 metro磁贴布局
  18. day02 听写 vue
  19. 天梯赛 L1-043 阅览室 (20 分)
  20. 爬虫学习记录3:request库基础用法

热门文章

  1. 编程语言发展的编年史
  2. 利用python进行数据分析_资料 | 利用Python进行数据分析
  3. php去字符串空格,php怎么去掉字符串中空格
  4. java引用变量_java代码声明引用变量经验
  5. python 多进程 调用模块内函数_Python进程池multiprocessing.Pool的用法
  6. python集合类型中的元素是有序的_Python基础-2-变量和数据类型(2)-列表、元组、字典、集合...
  7. 【H2 Database】查看帮助信息
  8. linux查端口占用
  9. 服务器的图片无法显示,服务器的图片无法显示
  10. java程序语句的理解,[每日学习笔记][2012.07.10]使用Java理解程序逻辑(六)