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 @LoadBalanced RestTemplate restTemplate(){ return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(EurekaConsumerApplication.class, args); } }
2、编写一个调用接口的类
@RestController public class EurekaConsumerController { @Autowired private 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会自动配置)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我在上构建了一个排队系统。应用程序将为特定的生成消息,在使用者端,我必须使用为该主题生成的所有记录。 我使用新的Java使用者API编写了consumer。代码看起来像 这里我需要永远运行消费者,这样生产者推入kafka主题的任何记录都应该立即消费和处理。 所以我的困惑是,使用无限while循环(像示例代码中那样)消费数据是正确的方法吗?
sqs-consumer Build SQS-based applications without the boilerplate. Just define an async function that handles the SQS message processing. Installation npm install sqs-consumer --save Usage const { Con
Consumer Dispatcher , 是一个基于 RabbitMQ 的代理型应用。 它工作在你的consumer代码和RabbitMQ之间。提供如下功: 隔离式管理queue 一个实例能服务多个站点 能防止consumer阻塞; 一键式在线增加/减少consumer数量; 均衡负载; 一键式清空队列; 分离在一个队列中的好坏数据并记录; 统计信息; master-slave模式。
In 0.9.0.0 we introduced the new Java consumer as a replacement for the older Scala-based simple and high-level consumers. The configs for both new and old consumers are described below. 3.4.1 New Con
php-kafka-consumer 主要是对 php_rdkafka 的 consumer 的 API 进行一层封装,增加了原程序中所没有的与 zookeeper 交互的功能。在此基础上实现了 rebalance 功能以及 group 功能。 经过简单的压力测试,单个进程的消费能力能达到每秒钟7.8W条,压测详细内容见压力测试。 依赖 php_zookeeper php_rdkafka (建议使
我有一个在node-kafka驱动的node.js上运行的kafka消费组。当这个消费组处于活动状态或处于活动状态时,我希望看到它被kafa-消费组CLI报告。 kafka消费者组CLI确实显示了控制台消费者,而不仅仅是节点消费者。 我可以在Kafka工具中看到节点使用者组。它不会显示在Kafa consumer groups CLI输出中