SpringCloudAlibaba:4.2云原生网关higress的基本使用

概述

简介

Higress是基于阿里内部的Envoy Gateway实践沉淀、以开源Istio + Envoy为核心构建的下一代云原生网关, 实现了流量网关 + 微服务网关 + 安全网关三合一的高集成能力,深度集成Dubbo、Nacos、Sentinel等微服务技术栈

定位

在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理, 而在容器和 K8s 主导的云原生时代,Higress 成为 K8s 生态的网关标准,赋予了网关新的使命,使得流量网关 + 微服务网关合二为一成为可能

官网

复制代码
 https://higress.io/zh-cn/

路由配置

依赖

复制代码
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>java_sc_alibaba</artifactId>
        <groupId>jkw.life</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>test-higress8006</artifactId>

    <dependencies>
        <!-- nacos-discovery -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringMVC-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>


</project>

application.yml

复制代码
server:
  port: 8006
spring:
  application:
    name: test-higress8006
  cloud:
    nacos:
      discovery:
        # 配置 nacos注册中心地址
        server-addr: 192.168.66.103:8848

启动类

复制代码
package jkw;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@Slf4j
@EnableDiscoveryClient
@SpringBootApplication
public class Main8006 {
    public static void main(String[] args) {
        SpringApplication.run(Main8006.class, args);
        log.info("************** 服务提供者 8001 启动成功 ************");
    }
}

测试控制器

复制代码
package jkw.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 测试控制器
 */
@RequestMapping("/test")
@RestController
public class TestCon {
    @GetMapping("/index")
    public String index() {
        return "higress index";
    }
}

higress路由配置

原理剖析:higress从所在的nacos中获取服务,这些服务可以用higress作为网关

1.域名映射配置:使用Switchhosts进行域名映射,把higress所在地址映射域名【192.168.66.103 www.jkw.com

2.域名管理:创建域名【www.jkw.com http】

3.路由配置:创建路由【8006-higress-test 精确匹配 | /test/index test-higress8006.DEFAULT-GROUP.public.nacos】

4.访问:http://www.jkw.com/test/index

跨域配置

跨域问题的来源

源于浏览器的同源策略限制,同源策略是一种约定,同源策略是浏览器最核心也最基本的安全功能, 如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。 可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

简介

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域

解决

CORS("跨域资源共享"(Cross-origin resource sharing)):目的域告诉请求者允许什么来源域来请求, CORS使得浏览器在向目的域发起请求之前先发起一个OPTIONS方式的请求到目的域获取目的域的信息

higress配置跨域

路由配置:策略:配置跨域

相关推荐
分布式存储与RustFS2 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun2 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
张洛闻Eren3 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
不吃香菜kkk、3 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove3 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21
春天花会开1313 天前
Supabase 自部署 Edge Functions 超时从 60s 延长到 360s 完整复盘
运维·云原生
ysu_03144 天前
【2026】K8s GPU调度空占怎么解?Kueue与Volcano Gang配置
云原生·kubernetes·gpu算力·volcano·ai基础设施·kueue·gang scheduling
天天喝旺仔5 天前
分布式服务容错实战:用 Sentinel 实现限流、熔断与降级
分布式·微服务·云原生·sentinel
逐流人5 天前
Containerd容器管理实战:从架构原理到nerdctlcrictl工具链
linux·运维·云原生·容器·云计算·containerd
运维开发王义杰5 天前
跨项目直连数据库:是架构反模式,还是现实的工程妥协?
云原生