简单微服务创建和微服务间的调用

创建简单的微服务并实现微服务相互调用

  1. 创建项目
    a、创建项目
    在这里插入图片描述
    b、 配置文件简单配置
    server.port=8771
    spring.cloud.client.ipAddress =client1
    //注册中心ip
    eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
    //注册名
    spring.application.name=product-server
    //使用真实ip
    eureka.instance.prefer-ip-address=true
    //注册中心显示名字
    eureka.instance.instance-id= s p r i n g . c l o u d . c l i e n t . i p A d d r e s s : {spring.cloud.client.ipAddress}: {server.port}
  2. 微服务的调用方式
    a、RestTemplate类
    1)启动类添加方法返回一个RestTemplate
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
    return new RestTemplate();
    }
    2)调用:
    注入:@Autowired
    private RestTemplate restTemplate;
    调用:Map map= restTemplate.getForObject(“http://orderservice/getById?id=”+123(拼接访问的URL),Map.class(指定返回类型));
    b、LoadBalancerClient类
    1)注入
    @Autowired
    private LoadBalancerClient loadBalancerClient;
    2)调用:
    //通过被调用服务注册的名字获取被调用方的信息
    ServiceInstance serviceInstance =loadBalancerClient.choose(“product-server”(调用服务注册的名字));
    //拼接url
    String url =“http://”+serviceInstance.getHost()+":"+serviceInstance.getPort()+"/findById?id="+Id;
    :有时候用注入的RestTemplate类调用会报错No instances available for 192.168.1.123 ,自己创建一个 RestTemplate 在调用就好了

猜你喜欢

转载自blog.csdn.net/qq_41833449/article/details/84205607