我是靠谱客的博主 怕黑小蝴蝶,最近开发中收集的这篇文章主要介绍消费者通过eureka 集群消费生产者集群消息,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

整个模式只看order服务配置
在这里插入图片描述
配置restTemplate

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

}

控制台


import com.qq.springcloud.entities.CommonResult;
import com.qq.springcloud.entities.Payment;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

@RestController
@Slf4j


public class OrderController {
    #这里服务集群name 不写死IP  通过restemplate 机制负载访问
    public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";

    @Resource
    private RestTemplate restTemplate;

    @GetMapping("/consumer/payment/create")
    public CommonResult<Payment>   create(Payment payment){
        return restTemplate.postForObject(PAYMENT_URL+"/payment/create",payment, CommonResult.class);  //写操作
    }

    @GetMapping("/consumer/payment/get/{id}")
    public CommonResult<Payment> getPayment(@PathVariable("id") Long id){
        return restTemplate.getForObject(PAYMENT_URL+"/payment/get/"+id,CommonResult.class);
    }
}
 

主启动注册至eureka

server:
  port: 90


spring:
  application:
    name: cloud-order-service

eureka:
  client:
    register-with-eureka: true
    fetchRegistry: true
    service-url:
      defaultZone:  http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #集群版

服务名称修改

在这里插入图片描述
配置更改:
效果就是隐藏ip
在这里插入图片描述
生产者服务可以通过EnableDiscoveryClient 获取服务信息
请在主启动使用@EnableDiscoveryClient注解

  @Resource
    private DiscoveryClient discoveryClient;


    @GetMapping(value = "/payment/discovery")
    public Object discovery(){
        List<String> services = discoveryClient.getServices();
        for (String element : services) {
            log.info("***** element:"+element);
        }
        List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
        for (ServiceInstance instance : instances) {
            log.info(instance.getServiceId()+"t"+instance.getHost()+"t"+instance.getPort()+"t"+instance.getUri());
        }
        return this.discoveryClient;

最后

以上就是怕黑小蝴蝶为你收集整理的消费者通过eureka 集群消费生产者集群消息的全部内容,希望文章能够帮你解决消费者通过eureka 集群消费生产者集群消息所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部