SpringCloud Netflix Eureka

文章目录

    • 一、 Eureka简介
        • Eureka组件
    • 二、 Eureka和Zookeeper 对比
        • 1 什么是CAP定理
        • 2 基于CAP定理比对Eureka和Zookeeper
    • 三、 搭建Eureka注册中心
        • 1 POM文件
        • 2 配置文件application.yml
        • 3 启动类
        • 4 访问Eureka Server WEB服务管理平台
    • 四、 Eureka 服务管理平台介绍
        • 1 Eureka Server服务管理平台访问预览
        • 2 System Status
        • 3 DS Replicas
        • 4 Instances currently registered with Eureka
        • 5 General Info
        • 6 Instance Info
    • 五、 搭建高可用集群
        • 1 在Eureka应用中定义多环境配置
        • 2 打包工程
        • 3 上传打包后的jar文件到Linux系统
        • 4 设置Linux主机域名
        • 5 启动Eureka
    • 六、 集群原理
        • 1 Eureka集群架构原理图
    • 七、 Eureka停服
        • 1 自我保护模式
        • 2 为什么要自我保护
        • 3 关闭自我保护 (一般不关)

一、 Eureka简介

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。

Eureka组件

Eureka包含两个组件:Eureka Server和Eureka Client。

1.1 Eureka Server

Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
Eureka Server本身也是一个服务,默认情况下会自动注册到Eureka注册中心。
如果搭建单机版的Eureka Server注册中心,则需要配置取消Eureka Server的自动注册逻辑。毕竟当前服务注册到当前服务代表的注册中心中是一个说不通的逻辑。
Eureka Server通过Register、Get、Renew等接口提供服务的注册、发现和心跳检测等服务。

1.2 Eureka Client

Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
Eureka Client分为两个角色,分别是:Application Service(Service Provider)和Application Client(Service Consumer)
1.2.1 Application Service
服务提供方,是注册到Eureka Server中的服务。
1.2.2 Application Client
服务消费方,通过Eureka Server发现服务,并消费。

注意:

在这里,Application Service和Application Client不是绝对上的定义,因为Provider在提供服务的同时,也可以消费其他Provider提供的服务;Consumer在消费服务的同时,也可以提供对外服务。

二、 Eureka和Zookeeper 对比

1 什么是CAP定理

CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(数据一致性)、 Availability(服务可用性)、Partition tolerance(分区容错性),三者不可兼得。
CAP由Eric Brewer在2000年PODC会议上提出。该猜想在提出两年后被证明成立,成为我们熟知的CAP定理
分布式系统CAP定理

在这里插入图片描述
在这里插入图片描述

2 基于CAP定理比对Eureka和Zookeeper

ZooKeeper分布集群是使用主从模型实现的。在一个时间点上,只有一个leader真正的对外提供服务。其他的follower都会实时备份leader中的数据,当leader宕机,则follower选举出新的leader对外提供服务。
Eureka分布集群是平等模型(无主模型),所有的节点都是平等的,客户端访问任意节点都可以提供实时的服务响应。如果某节点发送宕机等故障,接收到的请求会转交给其他的节点。无主模型,每个节点的数据可能不实时一致,节点需要通过网络通讯从其他节点获取数据,并实现数据的一致。可能有网络延迟或网络故障或通讯频率问题。

在这里插入图片描述

三、 搭建Eureka注册中心

Eureka Server既是一个注册中心,同时也是一个服务。那么搭建Eureka Server的方式和以往搭建Dubbo注册中心ZooKeeper的方式必然不同,那么首先搭建一个单机版的Eureka Server注册中心。

1 POM文件

<?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"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version></parent><groupId>com.bjsxt</groupId><artifactId>cloudeureka</artifactId><version>1.0-SNAPSHOT</version><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies>
</project>

2 配置文件application.yml

Eureka Server本身也是一个服务,同时又是一个注册中心。在Spring Cloud中,启动的微服务会自动的搜索注册中心并注册服务,那么在单机版Eureka Server环境中,当前服务注册到当前服务中,明显是不合适的。所以搭建Eureka Server单机版时,需要提供特殊的全局配置,避免回路注册逻辑。
同理,Eureka Server服务在注册中心中发现服务列表逻辑也是不必要的。毕竟注册中心是一个中立的服务管理平台,如果是单机版Eureka Server环境中,Eureka Server服务再去发现服务列表,明显也是不必要的。也需要通过全局配置,避免回路发现逻辑。

server:# 设置Eureka Server WEB控制台端口、服务注册发现端口。Eureka Server服务注册发现端口默认为8761。port: 8761
spring:application:# 设置spring应用命名,默认为null。同命名的应用会注册到同一个服务集群中。name: cloud-eureka
eureka:client:# 是否将自己注册到Eureka-Server中,默认的为trueregister-with-eureka: false# 是否从Eureka-Server中获取服务注册信息,默认为truefetch-registry: false

如果需要修改Eureka Server服务注册发现端口,具体配置如下:

server:# 设置Eureka Server WEB控制台端口、服务注册发现端口。Eureka Server服务注册发现端口默认为8761。port: 8080
spring:application:# 设置spring应用命名,默认为null。同命名的应用会注册到同一个服务集群中。name: cloud-eureka
eureka:client:# 是否将自己注册到Eureka-Server中,默认的为trueregister-with-eureka: false# 是否从Eureka-Server中获取服务注册信息,默认为truefetch-registry: falseservice-url:defaultZone: http://localhost:8080/eureka/

3 启动类

package com.bjsxt.eureka;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;/*** @EnableEurekaServer - 启动时初始化Eureka Server注册中心。*/
@SpringBootApplication
@EnableEurekaServer
public class EurekaApp {public static void main(String[] args) {SpringApplication.run(EurekaApp.class, args);}
}

4 访问Eureka Server WEB服务管理平台

访问服务管理平台地址为: http://ip:port/

四、 Eureka 服务管理平台介绍

1 Eureka Server服务管理平台访问预览

在这里插入图片描述

2 System Status

系统状态展示

3 DS Replicas

注册中心集群列表

4 Instances currently registered with Eureka

已在注册中心中注册的服务列表

5 General Info

当前注册中心相关信息展示

6 Instance Info

当前注册中心实例信息展示

五、 搭建高可用集群

1 在Eureka应用中定义多环境配置

1.1 application-eureka1.yml

server:# 设置Eureka Server WEB控制台端口、服务注册发现端口。Eureka Server服务注册发现端口默认为8761。port: 8761
spring:application:# 设置spring应用命名,默认为null。同命名的应用会注册到同一个服务集群中。name: cloud-eureka
eureka:client:service-url:defaultZone:- http://eureka2:8761/eureka/instance:hostname: eureka1

1.2 application-eureka2.yml

server:# 设置Eureka Server WEB控制台端口、服务注册发现端口。Eureka Server服务注册发现端口默认为8761。port: 8761
spring:application:# 设置spring应用命名,默认为null。同命名的应用会注册到同一个服务集群中。name: cloud-eureka
eureka:client:service-url:defaultZone:- http://eureka1:8761/eureka/instance:hostname: eureka2

2 打包工程

2.1 POM依赖 (增加Spring Boot打包插件)

<?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"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version></parent><groupId>com.bjsxt</groupId><artifactId>cloudeureka</artifactId><version>1.0-SNAPSHOT</version><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

2.2 打包
在这里插入图片描述

2.3 打包结果
在这里插入图片描述

3 上传打包后的jar文件到Linux系统

/root/upload (目录随意)

4 设置Linux主机域名

修改/etc/hosts文件,设置主机域名。将主机域名和IP进行绑定。
vi /etc/hosts
新增内容如下:两个Linux系统修改内容相同。(IP根据具体环境配置)

192.168.14.128 eureka1
192.168.14.129 eureka2

5 启动Eureka

5.1 使用java命令启动

java -jar -Dspring.profiles.active=eureka1 cloudeureka-1.0-SNAPSHOT.jar

5.2 脚本启动

当然,每次通过命令来启动Eureka Server过于麻烦,可以定义一个shell文件来简化操作。(Java程序员不必要掌握shell脚本的编写。建议对shell脚本有一定的了解,至少能够修改内部的必要参数值。Shell脚本一般由运维或部署人员开发。也可能有系统工程师开发。)具体shell内容如下:

项目jar包名称: cloudeureka-1.0-SNAPSHOT.jar (打包的jar包)
配置文件变量名称:eureka1 和 eureka2 (分别配置)

#!/bin/bashcd `dirname $0`CUR_SHELL_DIR=`pwd`
CUR_SHELL_NAME=`basename ${BASH_SOURCE}`JAR_NAME="项目jar包名称"
JAR_PATH=$CUR_SHELL_DIR/$JAR_NAME#JAVA_MEM_OPTS=" -server -Xms1024m -Xmx1024m -XX:PermSize=128m"
JAVA_MEM_OPTS=""SPRING_PROFILES_ACTIV="-Dspring.profiles.active=配置文件变量名称"
#SPRING_PROFILES_ACTIV=""
LOG_DIR=$CUR_SHELL_DIR/logs
LOG_PATH=$LOG_DIR/eureka-server.logecho_help()
{echo -e "syntax: sh $CUR_SHELL_NAME start|stop"
}if [ -z $1 ];thenecho_helpexit 1
fiif [ ! -d "$LOG_DIR" ];thenmkdir "$LOG_DIR"
fiif [ ! -f "$LOG_PATH" ];thentouch "$LOG_DIR"
fiif [ "$1" == "start" ];then# check serverPIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}'`if [ -n "$PIDS" ]; thenecho -e "ERROR: The $JAR_NAME already started and the PID is ${PIDS}."exit 1fiecho "Starting the $JAR_NAME..."# startnohup java $JAVA_MEM_OPTS -jar $SPRING_PROFILES_ACTIV $JAR_PATH >> $LOG_PATH 2>&1 &COUNT=0while [ $COUNT -lt 1 ]; dosleep 1COUNT=`ps  --no-heading -C java -f --width 1000 | grep "$JAR_NAME" | awk '{print $2}' | wc -l`if [ $COUNT -gt 0 ]; thenbreakfidonePIDS=`ps  --no-heading -C java -f --width 1000 | grep "$JAR_NAME" | awk '{print $2}'`echo "${JAR_NAME} Started and the PID is ${PIDS}."echo "You can check the log file in ${LOG_PATH} for details."elif [ "$1" == "stop" ];thenPIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}'`if [ -z "$PIDS" ]; thenecho "ERROR:The $JAR_NAME does not started!"exit 1fiecho -e "Stopping the $JAR_NAME..."for PID in $PIDS; dokill $PID > /dev/null 2>&1doneCOUNT=0while [ $COUNT -lt 1 ]; dosleep 1COUNT=1for PID in $PIDS ; doPID_EXIST=`ps --no-heading -p $PID`if [ -n "$PID_EXIST" ]; thenCOUNT=0breakfidonedoneecho -e "${JAR_NAME} Stopped and the PID is ${PIDS}."
elseecho_helpexit 1
fi

设置好shell启动脚本后,需要提供可执行权限:shell脚本文件名自己修改。
chmod 755 xxx.sh
脚本使用方式为:
启动Eureka Server命令: ./xxx.sh start
关闭Eureka Server命令: ./xxx.sh stop

六、 集群原理

Eureka Server注册中心的集群和Dubbo的ZooKeeper注册中心集群在结构上有很大的不同。
Eureka Server注册中心集群中每个节点都是平等的,集群中的所有节点同时对外提供服务的发现和注册等功能。同时集群中每个Eureka Server节点又是一个微服务,也就是说,每个节点都可以在集群中的其他节点上注册当前服务。又因为每个节点都是注册中心,所以节点之间又可以相互注册当前节点中已注册的服务,并发现其他节点中已注册的服务。

1 Eureka集群架构原理图

在这里插入图片描述

七、 Eureka停服

1 自我保护模式

一般情况下,微服务在 Eureka 上注册后,会每 30 秒发送心跳包,Eureka 通过心跳来判断服务时候健康,同时会定期删除超过 90 秒没有发送心跳服务。
有两种情况会导致 Eureka Server 收不到微服务的心跳:一是微服务自身的原因;二是微服务与 Eureka 之间的网络故障。
通常微服务自身的故障关闭只会导致个别服务出现故障,一般不会出现大面积故障,而网络故障通常会导致 Eureka Server 在短时间内无法收到大批心跳。考虑到这个区别,Eureka 设置了一个阀值,当判断离线服务的数量超过阀值时,Eureka Server 认为很大程度上出现了网络故障,将不再删除心跳过期的服务。
那么这个阀值是多少呢?15分钟之内是否低于 85%;Eureka Server 在运行期间,会统计心跳失败的比例在15分钟内是否低于85%,这种算法叫做 Eureka Server 的自我保护模式。

2 为什么要自我保护

因为同时保留"好数据"与"坏数据"总比丢掉任何数据要更好,当网络故障恢复后,这个 Eureka 节点会退出"自我保护模式"。Eureka 还有客户端缓存功能(也就是微服务的缓存功能)。即便 Eureka 集群中所有节点都宕机失效,微服务的 Provider 和 Consumer都能依托服务缓存正常通信。微服务的负载均衡策略会自动剔除离线的微服务节点。

3 关闭自我保护 (一般不关)

修改Eureka Server中的核心配置文件application.yml

server:# 设置Eureka Server WEB控制台端口、服务注册发现端口。Eureka Server服务注册发现端口默认为8761。port: 8761
spring:application:# 设置spring应用命名,默认为null。同命名的应用会注册到同一个服务集群中。name: cloud-eureka
eureka:client:service-url:defaultZone:- http://eureka2:8761/eureka/instance:hostname: eureka1server:# 是否开启自我保护, 默认为trueenable-self-preservation: false# 清理间隔,单位是毫秒。默认值为1分钟eviction-interval-timer-in-ms: 60000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用枚举定义常量更好点儿

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;昨天给大家分享的是“java中的Queue队列的用法示例”&#xff0c;今天&#xff0c;分享的主题是“java中&#xff0c;推荐使用枚举定义常量”。 前言&#xff1a;常量&#xff0c;相信大家多不会陌生&#xff0c;常量值一般…

SpringCloud Netflix Ribbon

文章目录一、 Ribbon简介二、 使用Ribbon开发微服务1 创建springcloud工程 和 commons子模块2 开发服务提供者 - ribbonappservice3 开发服务消费者 - ribbonappclient三、 集中式与进程内负载均衡区别四、 Ribbon常见的负载均衡策略1 Ribbon中的常用负载均衡简介2 配置负载均衡…

Entity Framework Core 生成跟踪列

注意&#xff1a;我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布时&#xff0c;功能可能存在变动。 当您设计数据库时&#xff0c;有时需要添加列以跟踪记录何时更改&#xff0c;以及谁进行了更改。例如&#xff0c;您添加以下列&#xff1a; Cre…

老师,我们想看到您的笑容!

“老师&#xff0c;你可以对我们笑笑吗&#xff1f;”今天偶然遇见一位学生在吃饭的路上和我说道。我冲他点了点头&#xff0c;笑道&#xff1a;“好呀”&#xff01;是啊&#xff0c;我是好久没有把笑声带回班级中了。1目前&#xff0c;4班都在倾尽全力的做项目&#xff0c;试…

阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设

转载自 阿里巴巴开源 Spring Cloud Alibaba&#xff0c;加码微服务生态建设 本周&#xff0c;Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布&#xff1a;阿里巴巴开源 Spring Cloud Alibaba&#xff0c;并发布了首个预览版本。随后&#xff0c;Spring Cloud…

微软发布Azure Stack更多细节,预计9月交付

在近日举行的微软全球合作伙伴大会上&#xff0c;微软宣布Azure Stack现在开始接受预定&#xff0c;预计9月份就可以交付。Azure Stack是微软公有Azure云的私有云实现。和其他私有云提供商不同&#xff0c;微软将把Azure Stack作为一项基于消费的服务&#xff0c;这和其公有云的…

今天你们表现的真棒!!!

12月5日在报告厅举行了“2020级青鸟4班 HTML网页设计大赛”。从一个洁白如纸的空白页面&#xff0c;到布满五彩斑斓样式的cool页面&#xff0c;是同学们一个字母一个单词的敲打出来的。从头脑空白啥都不会说到现在的条理清晰张嘴就来的演讲&#xff0c;是同学们时时刻刻写稿子背…

再有人问你Netty是什么,就把这篇文章发给他

转载自 再有人问你Netty是什么&#xff0c;就把这篇文章发给他 本文基于Netty4.1展开介绍相关理论模型&#xff0c;使用场景&#xff0c;基本组件、整体架构&#xff0c;知其然且知其所以然&#xff0c;希望给大家在实际开发实践、学习开源项目提供参考。 这是一篇万字长文&a…

SpringCloud Netflix Hystrix

文章目录一、 Hystrix简介1 什么是灾难性雪崩效应2 什么是Hystrix二、 服务降级(Ribbon中)三、 服务熔断(Ribbon中)&#xff08;服务降级的强化版&#xff09;四、 请求缓存(Ribbon中)(不推荐)(查询频率高&#xff0c;修改频率低时谨慎使用)五、 Openfeign的雪崩处理1 服务降级…

[信息安全] 3.HTTPS工作流程

0. 简单回顾 在前面两篇博客中介绍了密码相关的一些基本工具&#xff0c;包括&#xff08;对称密码&#xff0c;公钥密码&#xff0c;密码散列函数&#xff0c;混合密码系统&#xff0c;消息认证码码&#xff0c;数字签名&#xff0c;伪随机数&#xff0c;数字证书&#xff09…

如何实现省市关联的下拉列表

前言&#xff1a;在某些电商网站或者APP中&#xff0c;通常填写地址时&#xff0c;会有这样的功能&#xff1a;当我们选择的省份是“山东”时&#xff0c;则城市的下拉列表里所展示的便是山东的城市&#xff0c;当选择的省份是“山西”时&#xff0c;城市的下拉列表所展示的便是…

什么样的事才是有意义的

有时候就在想&#xff0c;真正什么样的事才算有意义呢&#xff1f;

在Azure Container Service创建Kubernetes(k8s)群集运行ASP.NET Core跨平台应用程序

引子 在此前的一篇文章中&#xff0c;我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序&#xff0c;看起来非常不错&#xff0c;不是吗&#xff1f;那么&#xff0c;如果我们希望真正在实际的生产环境去部署和运行这个应用程序&#xff0c;应该怎么做呢&#xf…

这也许是你不曾留意过的 Mybatis 细节

转载自 这也许是你不曾留意过的 Mybatis 细节 Mybatis 可以说是 Java 后端的必备技能&#xff0c;可能你和我一样经常使用到它。但有时 cv 多了&#xff0c;会忘记了一些细节处理&#xff0c;比如为什么要加上这个注解&#xff1f;它的作用是什么等等。 这篇文章是我以前写的…

Nacos整合Ribbon实现客户端负载均衡

启动类去掉RibbonClient注解 10 50 100 1 权重优先调用 注意:启动类加RibbonClient注解 2 集群优先调用 3 元数据基于版本优先调用

ssl1344-Knights【最大独立集,最大匹配,图论】

正题 大意 求在一个扣掉m个格子的n*n的棋盘能放置的最多的马。 解题思路 求最大独立集就好了&#xff0c;最大独立集点数-最大匹配数。最重要的是如何建图。定义一个数组point[i][j]表示点的编号。但是如果这样的话就会O(n4)O(n4)就会超时。现在我们把棋盘从左到右后从上到…

小课堂?小视频?小商店?

今天&#xff0c;没有什么特别内容可更新&#xff0c;就来随便聊聊吧。01雄雄的小课堂这是一个公众号&#xff0c;内容主要有两大类。一类是以分享编程技术为主&#xff0c;一方面是为了提升自己&#xff0c;另一方面也是为了帮助别人&#xff0c;希望阅者有益&#xff0c;平时…

Entity Framework Core 软删除与查询过滤器

注意&#xff1a;我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布后&#xff0c;功能可能存在变动。 继续探索Entity Framework Core 2.0&#xff0c;今天我将探讨如何轻松使用软删除&#xff08;或逻辑删除&#xff09;。我的意思是以透明的方式实…

相比学习好的学生,老师最喜欢努力认真学习的学生

相比学习好的学生&#xff0c;老师还是更喜欢努力学习的学生。好多人有这样的错觉&#xff0c;谁学习好&#xff0c;老师就喜欢谁&#xff0c;谁就是老师面前的大红人&#xff0c;可能有的老师是这样的吧&#xff0c;但是&#xff0c;对于我来说&#xff0c;相比那些学习好的学…

Postgresql快速写入\/读取大量数据(.net)

环境及测试 使用.net驱动npgsql连接post数据库。配置&#xff1a;win10 x64, i5-4590, 16G DDR3, SSD 850EVO. postgresql 9.6.3&#xff0c;数据库与数据都安装在SSD上&#xff0c;默认配置&#xff0c;无扩展。 CREATE TABLE public.mesh (x integer NOT NULL,y integer N…