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配置跨域

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

相关推荐
我好饿12 小时前
部署k8s集群+containerd+dashboard
云原生·容器·kubernetes
济南java开发,求内推3 小时前
两台服务器搭建三个节点
云原生·eureka
阿里云云原生3 小时前
2025 云栖精选资料:《从云原生到 AI 原生核心技术与最佳实践》PPT 免费下载
云原生
阿里云云原生4 小时前
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
云原生
Vio7255 小时前
Eureka注册中心
云原生·eureka
Yeats_Liao6 小时前
遗留系统微服务改造(二):数据迁移实战攻略与一致性保证
微服务·云原生·架构
野蛮人6号6 小时前
黑马微服务P3快速入门入门案例无法跑通解决方案,本文解决了数据库连接和java版本不匹配的问题
微服务·云原生·架构
没有口袋啦8 小时前
K8s集群多节点部署(Ubuntu22.04)
docker·云原生·容器·kubernetes
荣光波比8 小时前
K8S(三)—— 基于kubeadm 1.20版本部署Kubernetes集群与Harbor私有仓库实战
云原生·容器·kubernetes
荣光波比9 小时前
K8S(二)—— K8S 1.28 集群部署指南(kubeadm 方式)
云原生·容器·kubernetes