springcloud简单了解及上手

springcloud微服务框架简单上手

文章目录

  • springcloud微服务框架简单上手
    • 一、SpringCloud简单介绍
      • 1.1 单体架构
      • 1.2 分布式架构
      • 1.3 微服务
    • 二、SpringCloud与SpringBoot的版本对应关系
      • 2022.x 分支
      • 2021.x 分支
      • 2.2.x 分支
    • 三、Nacos注册中心
      • 3.1 认识和安装Nacos
      • 3.2 配置Nacos
      • 3.3 nacos部署springboot项目
    • 四、http客户端Feign
      • 4.1 Feign的介绍
      • 4.2 自定义实现Feign
      • 4.3 Feign实践
    • 五、统一网关Gateway
      • 5.1 为什么要使用网关
      • 5.2 搭建网关服务
      • 5.3 测试网关GateWay

前言:作者是通过自己的项目所运用作为讲解,分享只是作者用到的方面

一、SpringCloud简单介绍

  • SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。
  • SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验:

在这里插入图片描述

1.1 单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。

**优点 **:
架构简单
部署成本低

缺点
耦合度高

如下就是简单的单体架构图

在这里插入图片描述

1.2 分布式架构

分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
优点
降低服务耦合
有利于服务升级拓展

如下就是简单的分布式架构图

在这里插入图片描述

1.3 微服务

微服务:是一种经过良好架构设计的分布式架构方案

微服务架构特征
单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
面向服务:微服务对外暴露业务接口
自治:团队独立、技术独立、数据独立、部署独立
隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

如下就是简单的微服务架构图

在这里插入图片描述

二、SpringCloud与SpringBoot的版本对应关系

2022.x 分支

适配 Spring Boot 3.0,Spring Cloud 2022.x 版本及以上的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用*标记): (注意,该分支 Spring Cloud Alibaba 版本命名方式进行了调整,未来将对应 Spring Cloud 版本,前三位为 Spring Cloud 版本,最后一位为扩展版本,比如适配 Spring Cloud 2022.0.0 版本对应的 Spring Cloud Alibaba 第一个版本为:2022.0.0.0,第个二版本为:2022.0.0.1,依此类推)

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2022.0.0.0*Spring Cloud 2022.0.03.0.2
2022.0.0.0-RC2Spring Cloud 2022.0.03.0.2
2022.0.0.0-RC1Spring Cloud 2022.0.03.0.0

2021.x 分支

适配 Spring Boot 2.4,Spring Cloud 2021.x 版本及以上的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用*标记):

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2021.0.5.0*Spring Cloud 2021.0.52.6.13
2021.0.4.0Spring Cloud 2021.0.42.6.11
2021.0.1.0Spring Cloud 2021.0.12.6.3
2021.1Spring Cloud 2020.0.12.4.2

2.2.x 分支

适配 Spring Boot 为 2.4,Spring Cloud Hoxton 版本及以下的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用*标记):

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2.2.10-RC1*Spring Cloud Hoxton.SR122.3.12.RELEASE
2.2.9.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE
2.2.8.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE
2.2.7.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE
2.2.6.RELEASESpring Cloud Hoxton.SR92.3.2.RELEASE
2.2.1.RELEASESpring Cloud Hoxton.SR32.2.5.RELEASE
2.2.0.RELEASESpring Cloud Hoxton.RELEASE2.2.X.RELEASE
2.1.4.RELEASESpring Cloud Greenwich.SR62.1.13.RELEASE
2.1.2.RELEASESpring Cloud Greenwich2.1.X.RELEASE
2.0.4.RELEASE(停止维护,建议升级)Spring Cloud Finchley2.0.X.RELEASE
1.5.1.RELEASE(停止维护,建议升级)Spring Cloud Edgware1.5.X.RELEASE
spring cloud alibaba、spring cloud、spring boot版本对应:来自 gitHub 中的spring cloud alibaba官方说明:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明spring官网:https://spring.io/spring历史官方文档:https://docs.spring.io/spring-cloud/docs/spring离线依赖及文档下载地址:https://repo.spring.io/ui/native/libs-release-local/org/springframework/

三、Nacos注册中心

3.1 认识和安装Nacos

Nacos 是一个开源的分布式服务发现、配置管理和服务管理平台。它提供了服务注册与发现、配置管理、服务健康监测等功能,可以帮助开发者构建和管理云原生微服务架构。

具体来说,Nacos 提供了以下核心功能:

  1. 服务注册与发现(Service Discovery):允许服务实例注册到 Nacos,并通过 Nacos 客户端发现其他服务实例。这样,服务之间可以动态地发现和通信,实现了微服务架构中的服务发现功能。
  2. 配置管理(Configuration Management):Nacos 提供了统一的配置管理平台,允许开发者集中管理微服务的配置信息,支持配置的动态变更和实时推送,从而提高了配置管理的灵活性和可靠性。
  3. 服务健康监测(Health Check):Nacos 会定期检查服务实例的健康状态,确保只有健康的服务实例会被注册到服务发现中,并且及时地将不健康的实例移除,从而提高了整个系统的稳定性和可用性。

Nacos下载

链接:https://pan.baidu.com/s/1gwHPkvylWLtrjQYQCwmqqw?pwd=T401
提取码:T401

3.2 配置Nacos

Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。如果无法关闭占用8848端口的进程,也可以进入nacos的conf目录,修改配置文件中的端口:

在这里插入图片描述

修改其中的内容为其他端口

在这里插入图片描述

启动nacos,进入bin目录, 然后 cmd 进入该目录执行命令

./startup.cmd -m standalone

出现下面内容即可

在这里插入图片描述

如果觉得在cmd输入命令麻烦可以修改脚本, 编辑start.cmd脚本,将集群模式修改为单机模式,在bin目录下右击startup.cmd文件,用记事本的方式打开,将MODE改成standalone即可,如下图所示

在这里插入图片描述

这样直接双击startup.cmd即可运行nacos

在这里插入图片描述

ctrl+左键点击命令窗口给的地址

在这里插入图片描述

nacos账号: nacos

nacos密码: nacos

在这里插入图片描述

到此nacos安装完成

3.3 nacos部署springboot项目

父工程

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.5.RELEASE</version><type>pom</type><scope>import</scope>
</dependency>

添加nacos的客户端依赖

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

修改需要更改服务的中的application.yml文件

spring:  application:  # 应用配置项name: dataAccountService  # 应用名称为 dataAccountServicecloud:  nacos: server-addr: localhost:8848  # Nacos 服务端地址为 localhost:8848discovery:  # Nacos 服务发现配置项cluster-name: CQ  # 使用的 Nacos 集群名称为 CQ

启动springboot项目和nacos,出现自己配置的服务,及完成nacos的简单部署,在我的项目中,nacos主要做的是服务注册与发现,并没有其他内容,如果有需要可以参考其他博客

在这里插入图片描述

四、http客户端Feign

4.1 Feign的介绍

Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign
其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。

Feign 的主要优势在于:

  1. 声明式 API 定义:Feign 允许开发者使用接口和注解来定义 RESTful 服务的请求和响应,而无需关心底层的 HTTP 请求和响应处理逻辑。通过编写简单的 Java 接口和添加 Feign 注解,就可以定义服务调用的各种细节,比如 URL、HTTP 方法、请求参数、请求头等。
  2. 模板化请求:Feign 提供了一套模板化的请求构建和发送机制,使得开发者可以轻松地构造 HTTP 请求并发送到目标服务端点。Feign 会根据接口定义和注解配置,自动构造出对应的 HTTP 请求,并将请求参数、请求头等信息注入到请求中。
  3. 集成了负载均衡和服务发现:Feign 可以与 Spring Cloud 中的服务发现组件(如 Eureka、Consul 等)和负载均衡组件(如 Ribbon)集成,从而实现服务之间的负载均衡和自动服务发现。开发者可以直接通过服务名来调用其他微服务,而无需硬编码服务的地址和端口。
  4. 可扩展性:Feign 提供了丰富的扩展点,开发者可以通过自定义编码器、解码器、拦截器等来扩展 Feign 的功能,从而满足各种特定的业务需求。

在这里插入图片描述

Feign运行自定义配置来覆盖默认配置,可以修改的配置如下:

类型作用说明
feign.Logger.Level修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL
feign.codec.Decoder响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象
feign.codec.Encoder请求参数编码将请求参数编码,便于通过http请求发送
feign. Contract支持的注解格式默认是SpringMVC的注解
feign. Retryer失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试

4.2 自定义实现Feign

导入依赖

如果服务A需要调用服务B的方法,则将依赖写入服务A的pom文件中,既服务A是消费者

        <!--        feign消费者--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.6.RELEASE</version></dependency>

配置Feign日志有两种方式:
方式一:配置文件方式
全局生效:

feign:httpclient:enabled: trueclient:config:default:  # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置logger-level: NONE #日志级别

局部生效

feign:httpclient:enabled: trueclient:config:dataAssetService:  # 这里用dataAssetService就是局部配置,只对dataAssetService服务生效logger-level: NONE #日志级别

方式二:编程方式,先声明一个Bean:

public class FeignClientConfiguration {@Beanpublic Logger.Level feignLogLevel(){return Logger.Level.BASIC; }
}

而后如果是全局配置,则把它放到@EnableFeignClients这个注解中

@EnableFeignClients(defaultConfiguration = FeignClientConfiguration.class) 

如果是局部配置,则把它放到@FeignClient这个注解中:

@FeignClient(value = "dataAssetService", configuration = FeignClientConfiguration.class) 

4.3 Feign实践

方式一(继承):给消费者的FeignClient和提供者的controller定义统一的父接口作为标准。

  • 服务紧耦合

  • 父接口参数列表中的映射不会被继承

    自定义Feign 客户端接口


//被消费的服务名称
@FeignClient(name = "dataManagementService")
public interface dataAssetClient {/*** 获取数据标准信息* @param dataStandardCode * @return* /dataStandard/getDataStandardInfo为被消费的接口路径*/@GetMapping("/dataStandard/getDataStandardInfo")R getDataStandard(@RequestParam("dataStandardCode") String dataStandardCode);
}

消费者的controller


/*** <p>* 数据资产表 前端控制器* </p>** @author 不入青山入我怀* @since 2024-03-21*/
@RestController
@RequestMapping("/dataAsset")
public class DataAssetController {@Autowiredprivate dataAssetClient dataassetClient;//数据标准目录/*** 远程调用其他接口* /dataAsset/getDataStandard 在该服务调用其他服务的接口路径* @return*/@GetMapping("getDataStandard")public R getDataStandard() {return dataassetClient.getDataStandard("");}}

被消费者controller(正常写就行)

    /*** 获取数据标准信息* @param dataStandardCode* @return*/@GetMapping("getDataStandardInfo")public R getDataStandardInfo(@RequestParam("dataStandardCode") String dataStandardCode){return dataStandardService.getDataStandardInfo(dataStandardCode);//实现具体逻辑}

作者的Feign的实现逻辑

在这里插入图片描述

你也可以将FeignClient抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用,如下图

在这里插入图片描述

五、统一网关Gateway

5.1 为什么要使用网关

  1. 路由与负载均衡:网关可以作为请求的入口,根据请求的路径或者其他条件将请求路由到不同的后端服务。这样可以实现请求的负载均衡,将流量合理地分发到不同的服务实例上,从而提高整个系统的性能和可扩展性。
  2. 安全性:网关可以作为安全屏障,用于保护后端服务免受恶意攻击或者非法访问。通过网关可以实现访问控制、身份认证、权限验证等安全功能,确保只有合法的请求可以访问后端服务。
  3. 监控与统计:网关可以对请求进行监控和统计,记录请求的响应时间、成功率、失败率等指标,并生成相应的监控报告和统计数据。这样可以帮助开发者实时了解系统的运行状况,及时发现和解决问题。
  4. 日志与审计:网关可以记录请求的日志,包括请求的来源、目的地、参数、响应状态等信息,用于后续的审计和分析。这对于排查问题、追踪请求流程、分析用户行为等都非常有帮助。
  5. 服务聚合与协议转换:网关可以将多个后端服务的接口聚合成一个统一的接口供客户端调用,从而简化客户端的调用逻辑。同时,网关还可以实现不同协议之间的转换,比如将 HTTP 请求转换为 WebSocket 请求,或者将 RESTful 接口转换为 GraphQL 接口等。

5.2 搭建网关服务

创建新的module,引入SpringCloudGateway的依赖和nacos的服务发现依赖:

   <!--        网关gateway--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>2.2.6.RELEASE</version></dependency><!--        nacos服务注册发现--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.6.RELEASE</version></dependency>

编写路由配置及nacos地址

网关路由可以配置的内容包括:

  • 路由id:路由唯一标示
  • uri:路由目的地,支持lb和http两种
  • predicates:路由断言,判断请求是否符合要求,符合则转发到路由目的地
  • filters:路由过滤器,处理请求或响应
spring:  application:  name: gateway  # 应用名称为 gatewaycloud: nacos: discovery: server-addr: localhost:8848  # Nacos 服务端地址为 localhost:8848gateway: routes:  # 网关路由配置项,定义了多个路由规则- id: server-provice  # 第一个路由规则的标识符uri: lb://serve-provide  # 路由到服务名为 serve-provide 的服务predicates:  # 定义了路由匹配的条件- Path=/api/serve/**  # 匹配路径以 /api/serve/ 开头的请求filters:  # 定义了对请求和响应的处理规则- RewritePath=/api/(?<segment>/?.*),/$\{segment}  # 重写请求路径,将 /api/ 后面的路径段作为参数传递给后端服务- id: data-asset-service  # 第二个路由规则的标识符uri: lb://dataAssetService  # 路由到服务名为 dataAssetService 的服务predicates:  # 定义了路由匹配的条件- Path=/api/dataAsset/** ,/api/dataAssetField/** ,/api/dataAssetRelationCategory/**  # 匹配多个路径的请求filters:  # 定义了对请求和响应的处理规则- RewritePath=/api/(?<segment>/?.*),/$\{segment}  # 重写请求路径,将 /api/ 后面的路径段作为参数传递给后端服务server:port: 8989 

GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理:

在这里插入图片描述

5.3 测试网关GateWay

利用Postman来测试,通过访问网关的端口8989,成功把接口转发到对应的服务中去

在这里插入图片描述

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

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

相关文章

C++ 并发编程指南(11)原子操作 | 11.6、计算机内存结构

文章目录 一、计算机内存结构1、内存的基本组成2、内存的类型3、内存的结构层次4、CPU架构5、局部性原理6、总结 前言 在探讨计算机的运行效率和数据处理能力时&#xff0c;内存结构无疑是一个至关重要的部分。内存&#xff0c;作为计算机系统中的关键组件&#xff0c;承担着存…

【保姆级介绍自动化的讲解】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

【C语言】4.C语言数组(2)

文章目录 6. 二维数组的创建6.1 ⼆维数组的概念6.2 ⼆维数组的创建 7. 二维数组的初始化7.1 不完全初始化7.2 完全初始化7.3 按照⾏初始化7.4 初始化时省略⾏&#xff0c;但是不能省略列 8. 二维数组的使用8.1 ⼆维数组的下标8.2 ⼆维数组的输⼊和输出 9. 二维数组在内存中的存…

利用一段代码轻松绕过PHP授权系统

利用一段代码轻松绕过PHP授权系统 第一步&#xff1a;首先你需要改名全局文件 比如说全局文件 common.php&#xff0c;那么 你将他改为core.php 第二步&#xff1a;创建文件 创建一个文件&#xff0c;和改名前的全局文件名称一样&#xff0c;然后把以下代码复制进去就OK了 …

【MySQL01】【 Explain 命令详解】

文章目录 一、前言二、Explain 概览三、Explain 详解1. id2. select_type3. table4. type5. possible_keys6. key7. key_len8. ref9. rows10. filtered11. extra 列 四、补充1. EXPLAIN 扩展1.1 Extend EXPLAIN1.2 JSON 格式的执行计划 2. Intersection、Union、Sort-Union 索引…

使用C++实时读取串口数据(window使用已编译LibModbus库并用QT实现一个实时读取串口数据)

先看这篇文章&#xff0c;写得很详细: QT应用篇 四、window编译LibModbus库并用QT编写一个Modbus主机 手把手教学 编译好的LibModbus库可以在上面文章里下载&#xff0c;也可以在我的链接里下载&#xff1a; 为了在Qt Creator中创建新项目并嵌入上述C代码&#xff0c;请执行以…

C++进阶:红黑树介绍及模拟实现(图示详解过程)

C进阶&#xff1a;红黑树介绍及模拟实现 上次介绍了AVL树&#xff1a;C进阶&#xff1a;AVL树详解及模拟实现&#xff08;图示讲解旋转过程&#xff09; 今天就来紧接着来红黑树啦!!! 文章目录 1.红黑树介绍约束规则 2.项目文件规划3.整体框架&#xff08;节点和Tree&#xf…

whisper报错:hp, ht, pid, tid = _winapi.CreateProcess [WinError 2] 系统找不到指定的文件。

in _execute_child hp&#xff0c; ht&#xff0c; pid&#xff0c; tid _winapi.CreateProcess&#xff08;executable&#xff0c; args&#xff0c; FileNotFoundError&#xff1a; [WinError 2] 系统找不到指定的文件。 原因&#xff1a; 没装ffmpeg 或者 ffmpeg没添加到…

k8s pod就绪探针

Pod 可能需要时间来加载配置或数据&#xff0c;或者可能需要执行预热过程以防止第一个用户请求时间太长影响了用户体验。在这种情况下&#xff0c;不希望该 pod 立即开始接收请求&#xff0c;尤其是在运行的实例可以正确快速地处理请求的情况下。不要将请求转发到正在启动的 po…

YOLOv5独家改进:backbone改进 | 微软新作StarNet:超强轻量级Backbone | CVPR 2024

💡💡💡创新点:star operation(元素乘法)在无需加宽网络下,将输入映射到高维非线性特征空间的能力,这就是StarNet的核心创新,在紧凑的网络结构和较低的能耗下展示了令人印象深刻的性能和低延迟 💡💡💡如何跟YOLOv5结合:替代YOLOv5的backbone 收录 YOL…

电容笔记汇总

电容 一、电容理论基础 1、电容的本质 两个相互靠近的导体&#xff0c;中间夹一层不导电的绝缘介质&#xff0c;这就构成了电容器。当电容器的两个极板之间加上电压时&#xff0c;电容器就会储存电荷。 两个相互靠近的金属板中间夹一层绝缘介质组成的器件&#xff0c;当两端…

豆浆机缺水检测功能如何实现的

豆浆机缺水检测功能的实现是通过光学液位传感器来完成的。这种传感器具有多种优势&#xff0c;如内部所有元器件经过树脂胶封处理&#xff0c;没有任何机械活动部件&#xff0c;免调试、免检验、免维护等特点。它采用了光电液位传感器内置的光学电子元件&#xff0c;体积小、功…

Docker常用镜像安装

1. mysql 1.1 安装 获取镜像 docker pull mysql:8.0.30创建文件挂载目录 创建容器并运行 docker run -p 3306:3306 --name mysql8 \ -v /home/docker/mysql8/log:/var/log/mysql \ -v /home/docker/mysql8/data:/var/lib/mysql \ -v /home/docker/mysql8/mysql-files:/va…

保研机试之【设备驱动程序】

B选项&#xff1a; 综上&#xff0c;我认为这道题选择D~

一些近来对内网攻防的思考

我知道我最近托更托了很久了&#xff0c;其实也不是小编懒啊 这小编也是一直在写&#xff0c;但是遇到的问题比较多&#xff08;我太菜了&#xff09;&#xff0c;所以一直拖着。 但是总不能不更吧 那就讲一下进来的一些内网攻防的思考吧 1.CrossC2上线Linux到CS(成功) …

用友网络的危与机:2023年亏损约10亿元,王文京面临严肃拷问

“企业在新的产业浪潮来临时&#xff0c;应该主动推进新阶段的产品和业务创新&#xff0c;这样才能够在新的浪潮成为主流的时候&#xff0c;走到行业前面&#xff0c;否则就会从产业发展的潮流中掉下来”。用友网络创始人王文京&#xff0c;曾用“冲浪理论”形容一家企业成功的…

Steam喜加一,限时免费领取《Machinika Museum》

《Machinika Museum》限时免费领取啦&#xff01;这是一款烧脑解谜游戏&#xff0c;让你挖掘神秘外星装置的秘密。在这个非常特别的异星装置博物馆里&#xff0c;你将扮演一名研究员&#xff0c;负责解开各种机械谜题&#xff0c;探索背后的故事。 在这个未来世界&#xff0c;外…

MLP的代替:KAN

受柯尔莫哥洛夫-阿诺德表示定理的启发&#xff0c;作者提出柯尔莫哥洛夫-阿诺德网络&#xff08;KAN&#xff09;作为多层感知器&#xff08;MLP&#xff09;有前途的替代品。MLP 在节点&#xff08;“神经元”&#xff09;上具有固定的激活函数&#xff0c;而 KAN 在边&#x…

自动化中遇到的问题归纳总结

1、动态元素定位不到 解决方法&#xff1a;尽量使用固定元素定位&#xff0c;如没有固定元素&#xff0c;则采用绝对路径进行定位&#xff0c;因为元素路径是唯一且不变的 2、自动化脚本执行速度较慢 尽量使用css方法定位元素&#xff0c;使用等待时&#xff0c;少用sleep方…

[笔记] srlua库编译

文章目录 前言一、环境二、编译过程2.1 gcc安装2.2 编译lua2.3 编译srlua库 三、测试srlua库参考总结 前言 一、环境 centos7.9 gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) lua5.1源码 srlua 源码 二、编译过程 2.1 gcc安装 yum install gcc这里gcc安装过程和环…