欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud通過Nacos實現(xiàn)注冊中心與遠程服務調用詳解流程

 更新時間:2022年07月12日 10:36:00   作者:有頭發(fā)的程序猿!  
如果不滿足eureka注冊中心,那么本文記錄的Nacos是不二之選。本文主要記錄Springboot基于Nacos實現(xiàn)注冊中心以及遠程服務調用

本文主要記錄基于Nacos實現(xiàn)服務注冊中心和遠程服務調用

1. 基于Nacos實現(xiàn)服務注冊與發(fā)現(xiàn)

基于pring-boot-starter-parent 2.6.8,pring-cloud-dependencies 2021.0.3,order服務和user服務

1.1 pom依賴

<!--服務注冊與發(fā)現(xiàn)-->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
	<version>2021.0.1.0</version>
</dependency>
<!--遠程服務調用負載均衡-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>

1.2 yaml配置

order服務application.yml

spring:
  application:
    name: orderservice
  cloud:
    #找對應網(wǎng)段的網(wǎng)卡 不配置內部服務就走外網(wǎng)
    inetutils:
      preferred-networks: 192.168.0
    nacos:
      discovery:
        server-addr: 192.168.0.221:8848

user服務application.yml

spring:
  application:
    name: userservice
  cloud:
    #找對應網(wǎng)段的網(wǎng)卡 不配置內部服務就走外網(wǎng)
    inetutils:
      preferred-networks: 192.168.0
    nacos:
      discovery:
        server-addr: 192.168.0.221:8848

1.3 添加啟動注解

@EnableDiscoveryClient,需要注冊到Nacos的服務都需要添加

@SpringBootApplication
@EnableDiscoveryClient
public class OrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
    }
}

1.4 啟動服務查看控制臺

控制臺地址http://192.168.0.221:8848/nacos,賬號密碼都是nacos,查看服務列表

服務詳情圖

如果未配置preferred-networks,ip則顯示外網(wǎng)ip,也會用于服務調用

2.基于Nacos實現(xiàn)遠程服務調用

2.1 客戶端創(chuàng)建RestTemplate Bean

	@LoadBalanced    // 開啟負載均衡策略
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

2.2 客戶端調用代碼

    @Autowired
    RestTemplate restTemplate;
    @Autowired
    private DiscoveryClient discoveryClient;
    @GetMapping("/test")
    public String test() throws Exception {
        //可以獲取到對應服務的列表 服務名 ip 端口均可從這里面獲取到 也可以自己決定調用順序
        List<ServiceInstance> instances = discoveryClient.getInstances("userservice");
		//get方式調用 
        String template = restTemplate.getForObject("http://userservice/getTime/1123?name=jack", String.class);
        Map<String, Object> resMap = new HashMap<>();
        resMap.put("aaaa", "bbbb");
        //post調用方式
        RequestEntity<Map<String, Object>> requestEntity = RequestEntity
                .post("http://userservice/postTime")
                .contentType(MediaType.APPLICATION_JSON)
                .body(resMap);
        ResponseEntity<Map> responseEntity = restTemplate.exchange(requestEntity, Map.class);]
        log.info("rest -- {}", template + ":" + responseEntity.getBody());
        return template + ":" + responseEntity.getBody();
    }

2.3 服務端暴露接口

@GetMapping("/getTime/{uuid}")
public String getTime(@PathVariable String uuid, @RequestParam String name) {
    return new Date().getTime() + ":" + uuid + ":" + name;
}
@PostMapping("/postTime")
public Map<String, Object> getTime(@RequestBody Map<String, Object> params) {
    params.put("time", new Date().getTime());
    return params;
}

2.4 服務調用測試

訪問客戶端調用接口,截圖如下

控制臺日志:

c.e.order.controller.OrderController     : rest -- 1657182229010:1123:jack:{aaaa=bbbb, time=1657182229068}

在使用過程中發(fā)現(xiàn)想接收List<Map<String,Object>>太麻煩了,還是使用模板的遠程調用openfeign了,下文分享。

到此這篇關于SpringCloud通過Nacos實現(xiàn)注冊中心與遠程服務調用詳解流程的文章就介紹到這了,更多相關SpringCloud Nacos注冊中心內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MyBatis中模糊查詢使用CONCAT('%',#{str},'%')出錯的解決

    MyBatis中模糊查詢使用CONCAT('%',#{str},'%')出錯的解

    這篇文章主要介紹了MyBatis中模糊查詢使用CONCAT('%',#{str},'%')出錯的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 線程阻塞喚醒工具 LockSupport使用詳解

    線程阻塞喚醒工具 LockSupport使用詳解

    這篇文章主要為大家介紹了線程阻塞喚醒工具LockSupport使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Java零基礎入門數(shù)組

    Java零基礎入門數(shù)組

    數(shù)組對于每一門編程語言來說都是重要的數(shù)據(jù)結構之一,當然不同語言對數(shù)組的實現(xiàn)及處理也不盡相同。Java?語言中提供的數(shù)組是用來存儲固定大小的同類型元素
    2022-04-04
  • 詳解Spring Boot 打包分離依賴JAR 和配置文件

    詳解Spring Boot 打包分離依賴JAR 和配置文件

    這篇文章主要介紹了Spring Boot 打包分離依賴JAR 和配置文件,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot任務之詳解郵件任務

    SpringBoot任務之詳解郵件任務

    今天給大家整理的文章是SpringBoot郵件任務的相關知識點,文中有非常詳細的介紹及代碼示例,對正在學習SpringBoot任務的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • Java并發(fā)工具Fork/Join原理

    Java并發(fā)工具Fork/Join原理

    這篇文章主要為大家介紹了Java并發(fā)工具Fork/Join原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 詳解關于eclipse中使用jdk15對應javafx15的配置問題總結

    詳解關于eclipse中使用jdk15對應javafx15的配置問題總結

    這篇文章主要介紹了詳解關于eclipse中使用jdk15對應javafx15的配置問題總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 解析Spring Mvc Long類型精度丟失問題

    解析Spring Mvc Long類型精度丟失問題

    在平時開發(fā)過程中,經(jīng)常會使用long類型作為id的類型,但是在使用過程中會導致long類型數(shù)據(jù)轉換為number類型時的后兩位變?yōu)?,今天小編給大家分享Spring Mvc Long類型精度丟失問題,需要的朋友參考下吧
    2021-06-06
  • Spring整合Mybatis實操分享

    Spring整合Mybatis實操分享

    這篇文章主要介紹了Spring整合Mybatis實操分享,文章首先通過介紹Mybatis的工作原理展開Spring整合Mybatis的詳細內容,需要的小伙伴可以參考一下
    2022-04-04
  • Java方法的參數(shù)傳遞機制詳解

    Java方法的參數(shù)傳遞機制詳解

    這篇文章主要介紹了Java方法的參數(shù)傳遞機制詳解,對于Java初學者來說,剛學習Java的時候可能經(jīng)常會聽到調用方法時參數(shù)的值傳遞與引用傳遞,但是,實際上Java中方法的參數(shù)傳遞機制只有值傳遞,需要的朋友可以參考下
    2024-01-01

最新評論