nacos服務治理總結

惊朝發表於2024-04-30

1、註解

<!--nacos 服務註冊發現-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

<!--OK http 的依賴 -->
<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-okhttp</artifactId>
</dependency>

下面這兩個依賴寫在api的包下,其中loadbalancer寫完了之後,它會自動配置 Spring Cloud LoadBalancer 的客戶端負載均衡器,使得應用程式可以無縫地使用負載均衡功能。

<!--openFeign-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--負載均衡器-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

2、com.twinkle.api.config

該資料夾下寫OpenFeign配置類

import feign.Logger;
import org.springframework.context.annotation.Bean;

public class DefaultFeignConfig {   //  千萬不要在這個類上面加@Configuration註解,因為這個配置類會在其它啟動類上的註解引用
    @Bean
    public Logger.Level feignLogLevel() {
        return Logger.Level.BASIC;
    }
}

同時在啟動類上註明@EnableFeignClients(basePackages = "com.twinkle.api.clients", defaultConfiguration = DefaultFeignConfig.class)
(啟用OpenFeignClients,寫明clients包所在目錄,寫明OpenFeign的配置類)

3、編寫com.twinkle.api.clients

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Collection;

@FeignClient("cart-service")
public interface CartClient {
    @DeleteMapping("/carts")
    void deleteCartItemByIds(@RequestParam("ids") Collection<Long> ids);  //  呼叫其它服務的controller層的方法
}

日誌功能

每個微服務下的application.yaml ```xml feign: okhttp: enabled: true ```

相關文章