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

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

相关推荐
Karoku0664 小时前
【k8s集群应用】kubeadm1.20高可用部署(3master)
运维·docker·云原生·容器·kubernetes
探索云原生9 小时前
在 K8S 中创建 Pod 是如何使用到 GPU 的: nvidia device plugin 源码分析
ai·云原生·kubernetes·go·gpu
启明真纳9 小时前
elasticache备份
运维·elasticsearch·云原生·kubernetes
会飞的土拨鼠呀12 小时前
chart文件结构
运维·云原生·kubernetes
Hello Dam16 小时前
面向微服务的Spring Cloud Gateway的集成解决方案:用户登录认证与访问控制
spring cloud·微服务·云原生·架构·gateway·登录验证·单点登录
power-辰南17 小时前
Zookeeper 底层原理解析
分布式·zookeeper·云原生
power-辰南17 小时前
Zookeeper常见面试题解析
分布式·zookeeper·云原生
Cairry.1 天前
WatchAlert - 开源多数据源告警引擎
云原生·开源·prometheus
会飞的土拨鼠呀1 天前
Kubernetes 是什么?
云原生·容器·kubernetes
向阳逐梦1 天前
开源云原生数据仓库ByConity ELT 的测试体验
数据仓库·云原生·开源