• SpringCloud(二)Eureka集群与Feign


    两个Eureka

    上一篇是两个服务像一个Eureka注册,如果Eureka宕掉了就不好了,现在来搭建两个Eureka,两个服务分别像其注册。两个Eureka都用本机来模拟,用两个端口号来表示。
    首先修改C:WindowsSystem32driversetc的hosts文件,在最下面添加127.0.0.1 node1 node2,然后将dis-manager工程的application.properties一个变成两个

    server.port=8888
    
    eureka.instance.hostname=node1
    # 不向注册中心注册自己
    eureka.client.register-with-eureka=false
    
    # 不需要检索服务
    eureka.client.fetch-registry=false
    
    eureka.client.serviceUrl.defaultZone=http://node2:${server.port}/eureka/
    
    server.port=9999
    
    eureka.instance.hostname=node2
    # 不向注册中心注册自己
    eureka.client.register-with-eureka=false
    
    # 不需要检索服务
    eureka.client.fetch-registry=false
    
    eureka.client.serviceUrl.defaultZone=http://node1:${server.port}/eureka/
    

    接下来使用mvn clean package命令将整个工程打成jar包,并且切换到jar包的位置使用java -jar dis-manager-0.0.1-SNAPSHOT.jar --spring.profiles.active=node1分别启动两个Eureka,就可以了。
    哦对了,服务注册的时候需要将两个Eureka都注册一下。

    eureka.client.serviceUrl.defaultZone=http://node1:8888/eureka/,http://node2:9999/eureka/
    

    使用Feign声明式调用

    因为Feign相较ribbon更加简单优雅,我们公司都是用的Feign,由于我们是在order服务中调用user服务,所以在order服务中设置。具体只需要三个步骤:

    1.引入依赖

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-feign</artifactId>
    </dependency>
    

    将order服务的主类添加注解@EnableFeignClients

    2.在order服务中创建被调用user服务的接口

    @FeignClient(name = "dis-user")
    public interface UserFeign {
    
        @RequestMapping("/user/getUser")
        User getUser();
    
    }
    

    3.在order服务的controller里调用

    @Autowired
    private UserFeign userFeign;
    
    Logger logger = LoggerFactory.getLogger(OrderController.class);
    
    @RequestMapping("/getOrderByFeign")
    public Order getOrderByFeign() {
        User user = userFeign.getUser();
        Order order = new Order(1001, "酸牛奶", user);
        logger.info(order.toString());
        return order;
    }
    

    代码比较简单,都放在Github上了https://github.com/Bihanghang/Dis-SpringBoot,有问题希望一起探讨。

  • 相关阅读:
    机器学习相关——协同过滤
    推荐系统绝对不会向你推荐什么
    “猜你喜欢”是怎么猜中你心思的?
    Python-Matplotlib安装及简单使用
    经典的机器学习方面源代码库
    Python正则表达式指南
    Python yield 使用浅析
    c++编程规范的纲要和记录
    深度理解依赖注入(Dependence Injection)
    依赖注入
  • 原文地址:https://www.cnblogs.com/bihanghang/p/10194215.html
Copyright © 2020-2023  润新知