国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot和flask整合nacos,使用openfeign實現(xiàn)服務調(diào)用,使用gateway實現(xiàn)網(wǎng)關的搭建(附帶jwt續(xù)約的實現(xiàn))

這篇具有很好參考價值的文章主要介紹了springboot和flask整合nacos,使用openfeign實現(xiàn)服務調(diào)用,使用gateway實現(xiàn)網(wǎng)關的搭建(附帶jwt續(xù)約的實現(xiàn))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

環(huán)境準備:

插件 版本
jdk 21
springboot

3.0.11

springcloud

2022.0.4

springcloudalibaba

2022.0.0.0

nacos 2.2.3(穩(wěn)定版)
python 3.8

nacos部署(docker)

先創(chuàng)建目錄,分別創(chuàng)建config,logs,data目錄,單獨創(chuàng)建一個容器

docker run -d \
-e MODE=standalone \
-p 8848:8848 \
-p 9848:9848 \
-p 7848:7848 \
-v /data/nacos/conf:/mnt/data3/dockerfiles/nacos/config \
-v /data/nacos/logs:/mnt/data3/dockerfiles/nacos/logs \
-v /data/nacos/data:/mnt/data3/dockerfiles/nacos/data \
--name nacos-mysql \
--restart=always \
nacos/nacos-server:v2.2.3

?將配置文件拷貝出來(主要是application.properties和logback.xml)

docker cp nacos-mysql:/home/nacos/conf ./

修改mysql的信息(修改文件application.properties)

springboot和flask整合nacos,使用openfeign實現(xiàn)服務調(diào)用,使用gateway實現(xiàn)網(wǎng)關的搭建(附帶jwt續(xù)約的實現(xiàn)),springboot,docker,spring boot,gateway,java,flask,后端,nacos,jwt

再次運行

docker run -d \
-e MODE=standalone \
-p 8848:8848 \
-p 9848:9848 \
-p 7848:7848 \
-v /data/nacos/conf:/mnt/data3/dockerfiles/nacos/config \
-v /data/nacos/logs:/mnt/data3/dockerfiles/nacos/logs \
-v /data/nacos/data:/mnt/data3/dockerfiles/nacos/data \
--name nacos-mysql \
--restart=always \
nacos/nacos-server:v2.2.3

開啟服務器端口:

centos開啟防火墻端口

?訪問 ip:port/nacos

springboot和flask整合nacos,使用openfeign實現(xiàn)服務調(diào)用,使用gateway實現(xiàn)網(wǎng)關的搭建(附帶jwt續(xù)約的實現(xiàn)),springboot,docker,spring boot,gateway,java,flask,后端,nacos,jwt

出現(xiàn)此頁面即為安裝成功。

springboot注冊到nacos

先貼一個pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>platform</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>platform</name>
    <description>platform</description>
    <properties>
        <java.version>21</java.version>
        <spring-cloud.version>2022.0.0</spring-cloud.version>
        <spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.2</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>org.springframework.cloud</groupId>-->
<!--            <artifactId>spring-cloud-starter-openfeign</artifactId>-->
<!--        </dependency>-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.2</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter-test</artifactId>
            <version>3.0.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>edge-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.41</version>
        </dependency>
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <repositories>
        <repository>
            <id>projectlombok.org</id>
            <url>https://projectlombok.org/edge-releases</url>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

配置文件bootstrap.yml

spring:
  application:
    name: platform
  cloud:
    nacos:
      server-addr: ip:port
      config:
        file-extension: yml
        group: DEFAULT_GROUP
        prefix: ${sping.application.name}

springboot啟動類

@SpringBootApplication
@EnableFeignClients
@EnableCaching
@EnableScheduling
@EnableDiscoveryClient
@RefreshScope
public class PlatformApplication {

    public static void main(String[] args) {
        SpringApplication.run(PlatformApplication.class, args);
    }

}

啟動后就可以將服務注冊到nacos中

python集成flask注冊到nacos

首先下載nacos的sdk包

pip install nacos-sdk-python

python代碼

import glob
import nacos
import threading
from flask import request, send_file
from flask import Flask, Response

# nacos注冊中心配置
SERVER_ADDRESS = "http://ip:port"
client = nacos.NacosClient(SERVER_ADDRESS)


def service_register():
    """
     ephemeral參數(shù):是否是臨時服務,應為false; 
     剛才上面也提到了,如果是 非臨時實例,客戶端就無需主動完成心跳檢測。
     因此此處將服務注冊為 非臨時實例
    """
    client.add_naming_instance(
        "train", "ip", "port", ephemeral=False)

# 測試nacos
@app.route("/testNacos/<testId>", methods=["GET"])
def testNacos(testId):
    resMap = {}
    print("nacos: {}".format(testId))
    resMap["code"] = "200"
    resMap["message"] = "hello nacos"
    resMap["data"] = str(testId)
    response = Response(json.dumps(resMap), status=200,
                        content_type='application/json')
    return response

if __name__ == "__main__":
    # main()
    threading.Timer(5, service_register).start()
    app.run("0.0.0.0", 12352)

啟動后就可以將服務注冊到nacos中

到這里,服務注冊到nacos已經(jīng)完成了

使用openfeign進行服務間的調(diào)用

@FeignClient("train")
public interface InferRpcService {

    @GetMapping("/testNacos/{testId}")
    VitsResponse testNacos(@PathVariable String testId);
}

測試類

@Test
public void testNacosPy(){
    System.out.println(trainService.testNacos("232323"));
}

執(zhí)行后

springboot和flask整合nacos,使用openfeign實現(xiàn)服務調(diào)用,使用gateway實現(xiàn)網(wǎng)關的搭建(附帶jwt續(xù)約的實現(xiàn)),springboot,docker,spring boot,gateway,java,flask,后端,nacos,jwt

經(jīng)測試沒有問題

gateway網(wǎng)關服務

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>gateway</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gateway</name>
    <description>gateway</description>
    <properties>
        <java.version>21</java.version>
        <spring-cloud.version>2022.0.4</spring-cloud.version>
        <spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>4.4.0</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.41</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

配置文件(bootstrap.yml)

spring:
  application:
    name: gateway
  cloud:
    nacos:
      server-addr: ip:port
      config:
        file-extension: yml
        group: DEFAULT_GROUP
        prefix: ${sping.application.name}
    gateway:
      # 下游服務https配置
      httpclient:
        ssl:
          use-insecure-trust-manager: true
      routes:
        - id: platform
          uri: lb://platform
          predicates:
            - Path=/api/platform/**
          filters:
            - StripPrefix=2

啟動類

@RefreshScope
@EnableDiscoveryClient
@SpringBootApplication
public class GatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }

}

jwt續(xù)約

工具類

import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTVerificationException;
import com.auth0.jwt.interfaces.DecodedJWT;
import lombok.extern.slf4j.Slf4j;

import java.time.LocalDateTime;
import java.util.*;

@Slf4j
public class JWTUtils {

    private static final String SING = "auth";

    public static String getToken(Map<String, String> map) {

        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.MINUTE, 30);
        JWTCreator.Builder builder = JWT.create();
        map.forEach((k, v) -> {
            builder.withClaim(k, v);
        });
        String token = builder.withExpiresAt(instance.getTime())
                .sign(Algorithm.HMAC256(SING));
        return token;
    }

    public static DecodedJWT verify(String token) {
        return JWT.require(Algorithm.HMAC256(SING)).build().verify(token);
    }

    /**
     * 查看是否需要續(xù)約
     *
     * @param jwtToken 前端的
     * @return -1過期,不需要續(xù)約  0 不需要操作  1 需要續(xù)約
     */
    public static int renewed(String jwtToken) {
        DecodedJWT verify = null;
        try {
            verify = JWT.require(Algorithm.HMAC256(SING)).build().verify(jwtToken);
            if (Objects.nonNull(verify)) {
                log.info("過期時間: {}", verify.getExpiresAt());
                Date date = verify.getExpiresAt();
                if (date.before(new Date())) {
                    log.info("token已過期");
                    return -1;
                } else if (DateUtils.toLocalDateTime(date).minusMinutes(15L).isAfter(LocalDateTime.now())) {
                    log.info("token處于正常狀態(tài)");
                    return 0;
                } else if (DateUtils.toLocalDateTime(date).minusMinutes(15L).isBefore(LocalDateTime.now())) {
                    log.info("token需要續(xù)簽");
                    return 1;
                }
            }
        } catch (JWTVerificationException | IllegalArgumentException e) {
            log.info("token已過期");
            return -1;
        }

        log.info("token已過期");
        return -1;
    }

    public static String doRenewed(String number) {
        Map<String, String> map = Collections.singletonMap("openid", number);
        return getToken(map);
    }
}
public class DateUtils {

    public static LocalDateTime toLocalDateTime(Date date){
        return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
    }
}

全局過濾器

import com.alibaba.fastjson.JSON;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.example.gateway.constant.Constant;
import com.example.gateway.constant.LoginConstant;
import com.example.gateway.constant.VitsCloneConstant;
import com.example.gateway.dto.response.CommonResponse;
import com.example.gateway.utils.JWTUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

@Slf4j
@Component
public class AuthFilter implements GlobalFilter, Ordered {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        ServerHttpRequest request = exchange.getRequest();
        ServerHttpResponse response = exchange.getResponse();

        // 獲取請求路徑
        String path = request.getPath().toString();
        log.info("path:{}", path);

        // 當前過濾器        
            if (StringUtils.contains(path, VitsCloneConstant.API_PREFIX)) {
            // 如果是登錄接口,直接放行
            if (StringUtils.contains(path, LoginConstant.LOGIN_PATH)) {
                return chain.filter(exchange);
            }

            // 獲取請求頭中的Authorization字段
            String token = request.getHeaders().getFirst(LoginConstant.AUTHORIZATION_HEADER);

            // 如果校驗失敗,返回未授權狀態(tài)
            if (StringUtils.isEmpty(token)) {
                CommonResponse<String> error = CommonResponse.error("無效的授權信息", "無效的授權信息");
                response.setStatusCode(HttpStatus.UNAUTHORIZED);
                return response.writeWith(Mono.just(response.bufferFactory().wrap(JSON.toJSONBytes(error))));
            }

            int renewed = JWTUtils.renewed(token);
            if (renewed == -1) {
                log.info("token已過期");
                CommonResponse<String> error = CommonResponse.error("無效的授權信息", "無效的授權信息");
                response.setStatusCode(HttpStatus.UNAUTHORIZED);
                return response.writeWith(Mono.just(response.bufferFactory().wrap(JSON.toJSONBytes(error))));
            } else if (renewed == 0) {
                log.info("jwtToken狀態(tài)正常,無需操作");
                DecodedJWT verify = JWTUtils.verify(token);
                String openid = verify.getClaims().get("openid").asString();
                ServerHttpRequest modifiedRequest = exchange.getRequest()
                        .mutate()
                        .header("openId", openid)
                        .build();
                return chain.filter(exchange.mutate().request(modifiedRequest).build());
            } else {
                DecodedJWT verify = JWTUtils.verify(token);
                String openid = verify.getClaims().get("openid").asString();
                log.info("當前需要續(xù)約的jwtToken的用戶手機號碼: {}", openid);
                token = JWTUtils.doRenewed(openid);
                response.getHeaders().set(LoginConstant.AUTHORIZATION_HEADER, token);
                ServerHttpRequest modifiedRequest = exchange.getRequest()
                        .mutate()
                        .header("openId", openid)
                        .build();
                return chain.filter(exchange.mutate().request(modifiedRequest).build());
            }
        }
        return chain.filter(exchange);
    }

    @Override
    public int getOrder() {
        return -900;
    }

}

常量類

public interface Constant {

    String TOKEN = "token";
}
public interface LoginConstant {

    String LOGIN_PATH = "/login";

    String AUTHORIZATION_HEADER = "token";
}
public interface VitsCloneConstant {

    String API_PREFIX="/api/platform/";
}

啟動網(wǎng)關后,就可以通過網(wǎng)關訪問服務了文章來源地址http://www.zghlxwxcb.cn/news/detail-731760.html

到了這里,關于springboot和flask整合nacos,使用openfeign實現(xiàn)服務調(diào)用,使用gateway實現(xiàn)網(wǎng)關的搭建(附帶jwt續(xù)約的實現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Nacos基礎(2)——nacos的服務器和命名空間 & springBoot整合nacos & 多個nacos配置的情況

    Nacos基礎(2)——nacos的服務器和命名空間 & springBoot整合nacos & 多個nacos配置的情況

    1.nacos是服務發(fā)現(xiàn)、配置管理和服務管理平臺; 2.nacos的命名空間–組–服務; 3.springboot整合nacos,版本的對應; 4.引入多個nacos配置的方法; 用戶 服務管理,命名空間,集群管理 命名空間唯一id 自定義命名空間,公共命名空間 如何找到配置文件 新建配置 層級關系 bootstrap

    2024年02月03日
    瀏覽(27)
  • SpringBoot整合Nacos實現(xiàn)配置中心

    SpringBoot整合Nacos實現(xiàn)配置中心

    目錄 1.Nacos定位 2.Nacos的安裝配置 3.整合Nacos 3.1.Nacos安裝 3.2.Nacos登錄 3.3.配置Nacos? ? ? 4.Nacos使用 4.1.引入 Maven 依賴 4.2.配置bootstrap.yml 4.3.Nacos配置類 4.4.啟用Nacos服務 4.5.測試獲取配置 5.加載多個配置文件 datasource-dev.yaml mybatis-plus-dev.yaml 本地文件bootstrap.yml Contro代碼 測試結果

    2024年02月09日
    瀏覽(16)
  • SpringBoot 整合 Nacos 實現(xiàn)統(tǒng)一配置中心

    SpringBoot 整合 Nacos 實現(xiàn)統(tǒng)一配置中心

    目錄 1. Nacos 功能 1.1 配置中心 2. SpringBoot 整合 Nacos 實現(xiàn)統(tǒng)一配置中心 2.1 Nacos 的部署安裝 2.1.1 安裝并啟動 Nacos 2.1.2 開啟Nacos控制臺授權登錄 2.1.3 將 Nacos 的數(shù)據(jù)源切換為 MySQL 2.2 實現(xiàn)配置中心 2.2.1?創(chuàng)建配置信息 2.2.2 SringBoot 使用配置中心 配置中心 注冊中心 ????????在實際

    2024年02月06日
    瀏覽(22)
  • 微服務整合Seata1.5.2+Nacos2.2.1+SpringBoot

    微服務整合Seata1.5.2+Nacos2.2.1+SpringBoot

    本文以seata-server-1.5.2,以配置中心、注冊中心使用Nacos,store.mode=db(mysql)為例進行操作。 Seata簡介及入門參看:SpringCloud入門實戰(zhàn)(十五)分布式事務框架Seata簡介 鏈接: http://seata.io/zh-cn/blog/download.html下載壓縮包,解壓至非中文目錄。 本文版本環(huán)境: Spring Cloud Alibaba 2021.0

    2024年02月09日
    瀏覽(23)
  • SpringCloud Alibaba(一)微服務簡介+Nacos的安裝部署與使用+Nacos集成springboot實現(xiàn)服務注冊+Feign實現(xiàn)服務之間的遠程調(diào)用+負載均衡+領域劃分

    SpringCloud Alibaba(一)微服務簡介+Nacos的安裝部署與使用+Nacos集成springboot實現(xiàn)服務注冊+Feign實現(xiàn)服務之間的遠程調(diào)用+負載均衡+領域劃分

    目錄 一.認識微服務 1.0.學習目標 1.1.單體架構 單體架構的優(yōu)缺點如下: 1.2.分布式架構 分布式架構的優(yōu)缺點: 1.3.微服務 微服務的架構特征: 1.4.SpringCloud 1.5Nacos注冊中心 1.6.總結 二、Nacos基本使用安裝部署+服務注冊 (一)linux安裝包方式單節(jié)點安裝部署 1. jdk安裝配置 2. na

    2024年02月09日
    瀏覽(29)
  • 微服務遠程調(diào)用openFeign整合

    微服務遠程調(diào)用openFeign整合

    ?作者簡介:大家好,我是Leo,熱愛Java后端開發(fā)者,一個想要與大家共同進步的男人???? ??個人主頁:Leo的博客 ??當前專欄: 微服務探索之旅 ?特色專欄: MySQL學習 ??本文內(nèi)容:微服務遠程調(diào)用openFeign整合 ???個人小站 :個人博客,歡迎大家訪問 ??個人知識庫:

    2024年02月09日
    瀏覽(24)
  • 研發(fā)提速:nacos+openfeign環(huán)境下的本地鏈接服務

    項目研發(fā)過程中,經(jīng)常會遇到與測試人員工作重疊的情況,十分影響效率。 做了一個修改,可以在本地環(huán)境啟動項目后和測試環(huán)境交互,并且不影響測試環(huán)境,理論上也可以用于線上環(huán)境的異常的快速處理。 準備事項如下: 一:搭建本地的nacos服務。 二:導入測試環(huán)境相應

    2024年02月08日
    瀏覽(20)
  • springboot整合https使用自簽名證書實現(xiàn)瀏覽器和服務器之間的雙向認證

    springboot整合https使用自簽名證書實現(xiàn)瀏覽器和服務器之間的雙向認證

    效果描述: 本地環(huán)境? 兩臺以上電腦? 可以實現(xiàn)安裝客戶端證書的電腦可以訪問springboot啟動項目,沒有安裝客戶端證書的電腦無法訪問springboot啟動項目 1.操作:需要安裝openssl工具 工具包:Win64OpenSSL_Light-3_3_0.exe 或者Win64OpenSSL_Light-3_3_0.msi? 官網(wǎng):[ Downloads ] - /source/index.html

    2024年04月28日
    瀏覽(21)
  • 【springcloud微服務】Spring Cloud Alibaba 整合dubbo與openfeign

    dubbo與springcloud都可以單獨作為微服務治理框架在生產(chǎn)中進行使用,但使用過springcloud的同學大概了解到,springcloud生態(tài)的相關組件這些年已經(jīng)逐步停更,這就導致在服務架構演進過程中的迭代斷層,以至于一些新的技術組件引入困難重重,于是在國內(nèi)的市場上就有了升級版的

    2024年02月07日
    瀏覽(91)
  • 熟練使用Nacos、GateWay、OpenFeign、Sentinel常用組件

    Nacos 面試題 : 請簡述Nacos是什么,它主要解決了什么問題? Nacos提供了哪些核心功能? Nacos是如何支持服務發(fā)現(xiàn)的? 如何使用Nacos作為配置中心? Nacos的集群部署是如何實現(xiàn)的? 答案 : Nacos是一個更易于構建云原生應用的動態(tài)服務發(fā)現(xiàn)、配置管理和服務管理平臺。它主要解

    2024年04月13日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包