微服务利用Consul实现服务注册发现

随着业务需求的增多,需要对现有服务进行拆分。

方案实现所用技术:spring cloud+consul+fegin+actuator

使用版本:spring boot:1.5.11.RELEASE

           spring-cloud-dependencies:Edgware.SR3

            consul:1.2.0

建立一个服务消费者,2个服务提供者


wx-open-service:服务消费者,调用服务提供者id-produce生成订单号

id-produce-service:服务提供者,生成订单号

id-produce-service_2:服务提供者,生成订单号

服务提供者id-produce实现:

1.pom.xml中添加依赖

application.properties

IDProduceInterface应用程序启动入口:

@EnableDiscoveryClient // 使用服务注册发现时请启用

@EnableFeignClients // 使用Feign微服务调用时请启用

启动服务后,登陆consul查看:

注册服务列表:

id-produce订单号生成服务注册了两个服务节点:

服务消费者wx-open-service实现:

application.properites

应用程序启动入口 

@SpringBootApplication

@EnableDiscoveryClient // 使用服务注册发现时请启用,如果只是服务调用不启用

@EnableFeignClients // 使用Feign微服务调用时请启用

消费订单服务过程

建立proxy/IDProduceService类

package com.fusion.wxopen.proxy;

/**

* Created by lijing on 2018/8/2.

*/

import org.springframework.cloud.netflix.feign.FeignClient;

import org.springframework.web.bind.annotation.RequestMapping;

import java.util.HashMap;

/**

* 订单ID服务接口

*

* @author lijing

*/

@FeignClient("id-produce")

public interface IDProduceService {

@RequestMapping("/pay/id/produce")

public StringproduceID(HashMap req_param);

}

WxOpenControll实现接口

/**

* Created by admin-win8 on 2018/8/2.

*/

@RestController

public class WxOpenControll {

private static final LoggerLOGGER = LoggerFactory.getLogger(WxOpenControll.class);

    @Autowired

    private IDProduceServiceidProduceService;

    @RequestMapping(value ="/pay/getOrderInfo", method={RequestMethod.POST})

@ResponseBody

    public StringgetOrderReq(HttpServletRequest request, HttpServletResponse response)throws Exception {

HashMap req_param=new HashMap();

        String shop_id=request.getParameter("shop_id");

        String pay_type=request.getParameter("shop_id");

        req_param.put("shop_id",shop_id);

        req_param.put("pay_type",pay_type);

        String orderid=idProduceService.produceID(req_param);

        LOGGER.info("orderid"+orderid);

        return orderid;

    }

实现了id-produce服务的消费,两个节点可以轮询调用。

你可能感兴趣的:(微服务利用Consul实现服务注册发现)