隨著業(yè)務(wù)需求的增多访递,需要對現(xiàn)有服務(wù)進行拆分。
方案實現(xiàn)所用技術(shù):spring cloud+consul+fegin+actuator
使用版本:spring boot:1.5.11.RELEASE
? ? ? ? ? ?spring-cloud-dependencies:Edgware.SR3
? ? ? ? ? ? consul:1.2.0
建立一個服務(wù)消費者同辣,2個服務(wù)提供者
wx-open-service:服務(wù)消費者拷姿,調(diào)用服務(wù)提供者id-produce生成訂單號
id-produce-service:服務(wù)提供者惭载,生成訂單號
id-produce-service_2:服務(wù)提供者,生成訂單號
服務(wù)提供者id-produce實現(xiàn):
1.pom.xml中添加依賴
application.properties
IDProduceInterface應(yīng)用程序啟動入口:
@EnableDiscoveryClient // 使用服務(wù)注冊發(fā)現(xiàn)時請啟用
@EnableFeignClients // 使用Feign微服務(wù)調(diào)用時請啟用
啟動服務(wù)后响巢,登陸consul查看:
注冊服務(wù)列表:
id-produce訂單號生成服務(wù)注冊了兩個服務(wù)節(jié)點:
服務(wù)消費者wx-open-service實現(xiàn):
application.properites
應(yīng)用程序啟動入口?
@SpringBootApplication
@EnableDiscoveryClient // 使用服務(wù)注冊發(fā)現(xiàn)時請啟用描滔,如果只是服務(wù)調(diào)用不啟用
@EnableFeignClients // 使用Feign微服務(wù)調(diào)用時請啟用
消費訂單服務(wù)過程
建立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服務(wù)接口
*
* @author lijing
*/
@FeignClient("id-produce")
public interface IDProduceService {
@RequestMapping("/pay/id/produce")
public StringproduceID(HashMap req_param);
}
WxOpenControll實現(xiàn)接口
/**
* 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;
? ? }
實現(xiàn)了id-produce服務(wù)的消費,兩個節(jié)點可以輪詢調(diào)用踪古。