myclouds3.x技術預演系列:基於SpringCloudAlibaba和Nacos構建微服務入門實例。java
SpringCloudAlibaba簡介git
Spring Cloud Alibaba 致力於提供微服務開發的一站式解決方案。此項目包含開發分佈式應用微服務的必需組件,方便開發者經過 Spring Cloud 編程模型輕鬆使用這些組件來開發分佈式應用服務。依託 Spring Cloud Alibaba,您只須要添加一些註解和少許配置,就能夠將 Spring Cloud 應用接入阿里微服務解決方案,經過阿里中間件來迅速搭建分佈式應用系統。[more]github
Nacos簡介spring
Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以「服務」爲中心的現代應用架構 (例如微服務範式、雲原生範式) 的服務基礎設施。[more]編程
基於SpringCloudAlibaba和Nacos構建微服務入門實例bash
說明:以查詢銀行卡信息爲業務背景,編寫服務提供者服務。架構
@RestController @RequestMapping("bankCard") public class BankCardController { @GetMapping("findCardInfo") public BankCard findCardInfo(String cardNo, HttpServletRequest request) { System.out.println(cardNo); BankCard bankCard = new BankCard().setCardNo("5301001").setName("XC") .setBalance(BigDecimal.valueOf(1000000L)); return bankCard; } }
1.2. 服務啓動類app
@EnableDiscoveryClient @SpringBootApplication public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } }
1.3. 配置文件和其它項目依賴關係分佈式
能夠直接訪問實例源碼。ide
@FeignClient(value = "myclouds-nacos-discovery-provider-example") public interface BankCardFeignClient { @GetMapping("bankCard/findCardInfo") BankCard findCardInfo(@RequestParam("cardNo") String cardNo); }
@RestController @RequestMapping("bankcard") public class BankCardConsumerController { @Autowired private BankCardFeignClient bankCardFeignClient; @GetMapping("findCardInfo") public BankCard findCardInfo(String cardNo) { BankCard bankCard = bankCardFeignClient.findCardInfo(cardNo); System.out.println(bankCard); return bankCard; } }
2.3. 消費服務啓動類
@SpringBootApplication @EnableDiscoveryClient @EnableFeignClients public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
2.4. 配置文件和其它項目依賴關係
3.1 啓動nacos。
startup.cmd
nacos控制檯:http://127.0.0.1:9999/nacos 帳號/密碼:nacos/nacos
3.2 分別啓動服務提供者和服務消費者
進入nacos控制檯,服務管理->服務列表 菜單便可看到本實例的銀行卡查詢業務的提供者服務和消費者服務的相關信息。以下圖所示。
經過服務消費者訪問服務:http://127.0.0.1:19000/bankcard/findCardInfo?cardNo=5301
寫在最後
完整實例代碼請訪問個人myclouds代碼倉庫。https://gitee.com/osworks/myclouds