当前位置: 首页 > news >正文

使用apisix+oidc+casdoor配置微服务网关

一、服务架构图

在这里插入图片描述

二、安装配置

1. 安装配置apisix

(1). 快速启动及验证:
curl -sL https://run.api7.ai/apisix/quickstart | sh

该命令启动 apisix-quickstart 和 etcd 两个容器,APISIX 使用 etcd 保存和同步配置。APISIX 和 etcd 容器使用 Docker 的 host 网络模式,因此可以从本地直接访问。

如果一切顺利,将输出如下信息:

✔ APISIX is ready!

通过 curl 来访问正在运行的 APISIX 实例。比如,你可以发送一个简单的 HTTP 请求来验证 APISIX 运行状态是否正常:

curl "http://127.0.0.1:9080" --head | grep Server

如果一切顺利,将输出如下信息:

Server: APISIX/Version
(2). 其他安装方式

APISIX 安装指南

(3). 介绍如何修改服务配置

APISIX 会通过apisix/cli/ngx_tpl.lua这个模板和conf/config-default.yamlconf/config.yaml生成 Nginx 的配置文件,因此直接修改 Nginx 的配置文件是无效的。
进入容器,可以在/usr/local/apisix/conf/nginx.conf看到生成的 Nginx 配置文件。 在自定义 Nginx 配置文件之前,烦请仔细阅读conf/config-default.yaml
conf/config.yaml里面可以覆盖掉默认值。举个例子,你可以通过xxx_snippet之类的配置,在conf/nginx.conf里面注入你的自定义配置: 注意nginx_config及其子项的格式缩进,在执行./bin/apisix start时,错误的缩进将导致更新conf/nginx.conf文件失败。

在config.yaml文件,有一些snippet:

main_configuration_snippet: |
http_configuration_snippet: |
http_server_configuration_snippet: |
http_server_location_configuration_snippet: |
http_admin_configuration_snippet: |
http_end_configuration_snippet: |
stream_configuration_snippet: |

在其下面添加内容会生成到nginx.conf文件中指定位置。比如:http_server_location_configuration_snippet下写的内容会加入在 #http server location configuration snippet starts下
在这里插入图片描述
比如在config.yaml中进行以下配置:

http_server_location_configuration_snippet: |proxy_set_header   X-Forwarded-For     off;proxy_set_header   X-Forwarded-Proto    $var_x_forwarded_proto;proxy_set_header   X-Forwarded-Host     $var_x_forwarded_host;proxy_set_header   X-Forwarded-Port     $var_x_forwarded_port;

会在生成的nginx.conf以下位置中添加配置

# http server location configuration snippet startsproxy_set_header   X-Forwarded-For     off;proxy_set_header   X-Forwarded-Proto    $var_x_forwarded_proto;proxy_set_header   X-Forwarded-Host     $var_x_forwarded_host;proxy_set_header   X-Forwarded-Port     $var_x_forwarded_port;
1). 修改log级别

例如将log级别改为debug,在config.yaml中添加如下配置:

nginx_config:
#  http_configuration_snippet: |
#    client_header_buffer_size 16k; # 调整允许的请求头大小,最大为16kerror_log_level:  debug

https://apisix.apache.org/docs/apisix/FAQ/#how-do-i-change-apache-apisixs-log-level

2). 配置apisix使用redis存储session,解决OIDC默认使用cookie来存储加密后的jwt导致request header too large问题
nginx_config:http_server_configuration_snippet: |set $session_storage redis;set $session_secret 623q4hR325t36VsCD3g567922IC0073T;set $session_redis_host 172.25.0.11;set $session_redis_port 6379;set $session_redis_ssl off;set $session_redis_ssl_verify off;

https://github.com/apache/apisix/issues/6792#issuecomment-1126999266

(4). apisix常用命令

当 APISIX 启动时,Admin API 默认情况下将会监听 9180 端口,并且会占用前缀为 /apisix/admin 的 API。

因此,为了避免你设计的 API 与 /apisix/admin 冲突,你可以通过修改配置文件 /conf/config.yaml 中的配置修改默认监听端口。

APISIX 支持设置 Admin API 的 IP 访问白名单,防止 APISIX 被非法访问和攻击。你可以在 ./conf/config.yaml 文件中的 deployment.admin.allow_admin 选项中,配置允许访问的 IP 地址。

在下文出现的 X-API-KEY 指的是 ./conf/config.yaml 文件中的 deployment.admin.admin_key.key,它是 Admin API 的访问 token。

1). 查看路配置
curl http://127.0.0.1:9180/apisix/admin/routes  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1'
2). 删除路由配置
curl -i -X DELETE http://127.0.0.1:9180/apisix/admin/routes/1  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1'
3). 创建/更新路由配置
curl -i "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -d '
{"id": "getting-started-ip","uri": "/ip","upstream": {"type": "roundrobin","nodes": {"httpbin.org:80": 1}}
}'

详情可查看apisix官网文档: https://apisix.apache.org/docs/apisix/admin-api/

2. 安装配置casdoor

(1). 使用docker安装
docker run -p 8000:8000 casbin/casdoor-all-in-one

在这里插入图片描述
默认账号密码为:admin/123

(2). 配置casdoor

在这之前介绍一些casdoor的基本概念。
组织是Casdoor的基本单位,它管理着用户和应用,组织之间是相互隔离的。 如果一个用户登录到一个组织,他可以在无需再次登录的情况下访问属于该组织的所有应用。
根据架构图,casdoor作为认证中心,apisix是需要接入到casdoor的一个应用。

1). 创建组织

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

2). 创建应用

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

3). 创建用户

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

3. 将casdoor配置为apisix的认证中心

1). 创建oidc插件

它的作用是,当创建的路由引用这个插件时,如果用户未登录,拦截用户的请求

curl http://127.0.0.1:9180/apisix/admin/plugin_configs/1000 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
{"desc": "test-oidc","plugins": {                 "openid-connect":{                                              "client_id": "11f0f7aedeadf26f266c","client_secret": "8e30fc2463344170d8e05ec63d5a3056c8e605fa","discovery": "http://192.168.237.1:8000/.well-known/openid-configuration","bearer_only": false,"realm": "master","introspection_endpoint_auth_method": "client_secret_basic","redirect_uri":"http://192.168.237.1:9080/callback"}}
}'
2). 创建静态文件路由,允许直接访问静态文件

下面的静态服务可以用nginx打包一个容器来私服静态文件

curl http://127.0.0.1:9180/apisix/admin/routes/2000 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{"uri": "/*","host": "test_domain.com","vars": [["uri", "~~", ".(js|css|flash|media|jpg|png|gif|ico|svg|json)$"]],"upstream":{"type": "roundrobin","nodes":{"static-service:80":1}}
}'
3). 拦截余下所有路径请求

下面的plugin_config_id即为引用的oidc插件id,当请求网站根路径时,会自动跳转到casdoor,当用户未登录请求非静态文件路径时,会报错。

curl http://127.0.0.1:9180/apisix/admin/routes/3000 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{"uri": "/*","host": "test_domain.com","enable_websocket":true,"plugin_config_id": 1000,"upstream":{"type": "roundrobin","nodes":{"api-service:80":1}}
}'

相关文章:

使用apisix+oidc+casdoor配置微服务网关

一、服务架构图 二、安装配置 1. 安装配置apisix (1). 快速启动及验证: curl -sL https://run.api7.ai/apisix/quickstart | sh该命令启动 apisix-quickstart 和 etcd 两个容器,APISIX 使用 etcd 保存和同步配置。APISIX 和 etcd 容器使用 Docker 的 …...

【系统分析师】- 案例 -数据库特训

目录 1、规范化与逆规范化 2、数据库视图 3、数据库索引 4、SQL优化 5、数据库分区 6、分布式数据库 7、NoSql 8、读写分离(主从复制) 9、缓存一致性 10、云数据库 11、主题数据库 12、数据同步 1、规范化与逆规范化 规范化: 优点…...

创建型设计模式、结构型设计模式与行为型设计模式 上下文任务通用方案 设计模式 大全

设计模式(Design Pattern)是一种面向对象编程思想,分为创建型模式、结构型模式与行为型模式三大类,提供在特定上下文中解决常见任务通用方案,旨在让程序(软件)具有更好特点,如降低耦…...

2412git,gitdiff与编码

原文 除了git命令行工具外,还有其他工具或服务可让你查看git历史记录中的更改.最有趣的是那些按拉请的一部分更改的情况,因为这些是你正在审查和批准的更改. 但一个常见的问题是,它们给你展示的可能不是实际改变的内容. 我把讨论限制在我有经验的服务和工具上,即它是git命令…...

什么是 Git Hooks?

在团队开发中,当成员提交代码的描述信息不符合约定提交规范的时候,需要阻止当前的提交,而要实现这个目的,我们就需要先来了解一个概念,叫做 Git hooks,即Git 在执行某个事件之前或之后进行一些其他额外的操…...

Android中加载一张图片占用的内存

在安卓(Android)系统中,加载图片占用内存的大小并不是图片本身的大小,比如一张图片大小为100kb,那当他加载到Android上时其占用的内存大小并不是100kb。 加载图片到内存中占用的内存大小取决于多种因素,包括…...

【竞技宝】LOL:IG新赛季分组被质疑

北京时间2024年12月31日,今天已经2024年的最后一天,在进入一月之后,英雄联盟将迎来全新的2025赛季。而目前新赛季第一阶段的抽签结果已经全部出炉,其中人气最高的IG战队在本次抽签中抽到了“绝世好签”引来了网友们的质疑。 首先介…...

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之12 方案再探之3:特定于领域的模板 之2 首次尝试和遗留问题解决

本文提要 现在就剩下“体”本身的 约定了--这必然是 自律自省的&#xff0c;或者称为“戒律” --即“体”的自我训导discipline。完整表述为&#xff1a; 严格双相的庄严“相” (<head>侧&#xff09;&#xff0c;完全双性的本质“性”&#xff08;<boot>侧&…...

超融合时间节点同步

1. 执行以下命令停止相关进程。 l 节点为主机&#xff0c;执行&#xff1a; perl /opt/galax/gms/common/config/restartCnaProcess.pl l 节点为VRM&#xff0c;执行&#xff1a; sh /opt/omm/ha/module/hacom/script/stop_ha.sh 2. 执行以下命令修改节…...

【分布式文件存储系统Minio】2024.12保姆级教程

文章目录 1.介绍1.分布式文件系统2.基本概念 2.环境搭建1.访问网址2.账号密码都是minioadmin3.创建一个桶4.**Docker安装miniomc突破7天限制**1.拉取镜像2.运行容器3.进行配置1.格式2.具体配置 4.查看桶5.给桶开放权限 3.搭建minio模块1.创建一个oss模块1.在sun-common下创建2.…...

pycharm pytorch tensor张量可视化,view as array

Evaluate Expression 调试过程中&#xff0c;需要查看比如attn_weight 张量tensor的值。 方法一&#xff1a;attn_weight.detach().numpy(),view as array 方法二&#xff1a;attn_weight.cpu().numpy(),view as array...

LeetCode 3219.切蛋糕的最小总开销 II:贪心——先切贵的

【LetMeFly】3219.切蛋糕的最小总开销 II&#xff1a;贪心——先切贵的 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-cost-for-cutting-cake-ii/ 有一个 m x n 大小的矩形蛋糕&#xff0c;需要切成 1 x 1 的小块。 给你整数 m &#xff0c;n 和两个数组&…...

【PDF物流单据提取明细】批量PDF提取多个区域内容导出表格或用区域内容对文件改名,批量提取PDF物流单据单号及明细导出表格并改名的技术难点及小节

相关阅读及下载&#xff1a; PDF电子物流单据&#xff1a; 批量PDF提取多个区域局部内容重命名PDF或者将PDF多个局部内容导出表格&#xff0c;具体使用步骤教程和实际应用场景的说明演示https://mp.weixin.qq.com/s/uCvqHAzKglfr40YPO_SyNg?token720634989&langzh_CN扫描…...

Redis到底支不支持事务啊?

大家好&#xff0c;我是锋哥。今天分享关于【Redis到底支不支持事务啊&#xff1f;】面试题。希望对大家有帮助&#xff1b; Redis到底支不支持事务啊&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 支持事务&#xff0c;但它的事务模型与传统的…...

Druid连接Oracle数据库,连接失效导致SQL无法执行

原始配置&#xff1a; type: com.alibaba.druid.pool.DruidDataSource druid:initial-size: 5max-active: 25min-idle: 5max-wait: 10000testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsetimeBetweenEvictionRunsMillis: 2000minEvictableIdleTimeMillis: 600000ma…...

JVM 及内存管理:掌握 Java 8 的内存模型与垃圾回收机制

Java 虚拟机&#xff08;JVM&#xff09;是运行 Java 程序的核心&#xff0c;它负责代码执行和内存管理。Java 8 引入了一些重要的内存模型和垃圾回收机制优化。本文将详细解析 JVM 的内存模型、垃圾回收机制&#xff0c;并配以相关图解&#xff0c;帮助你深刻理解 JVM 的工作原…...

用户界面的UML建模06

4.1 抽象表示层的结构&#xff08;Abstract Presentation Structure&#xff09; 如图6 所示&#xff0c;抽象表示层模型具有一个顶层的容器&#xff08;container&#xff09;&#xff0c;《apm》AbstractForm&#xff0c;其包含了许多组件&#xff0c;《apm》AbstractCompon…...

HTML——41有序列表

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>有序列表</title></head><body><!--有序列表&#xff1a;--><!--1.列表中各个元素在逻辑上有先后顺序&#xff0c;但不存在一定的级别关系-->…...

REDIS1.0

redis的基础知识&#xff1a; NOsql&#xff1a; not only sql 非关系型数据库&#xff1a;主流的数据库以外&#xff0c;基本上都是nosql 非关系型数据库也有库&#xff0c;库是系统自带的&#xff0c;而且也不需要创建&#xff0c;也不能创建&#xff0c;也无需在裤子创建…...

【HarmonyOS之旅】ArkTS语法(二) -> 动态构建UI元素

目录 1 -> Builder 2 -> BuilderParam8 2.1 -> 引入动机 2.2 -> 参数初始化组件 2.3 -> 尾随闭包初始化组件 3 -> Styles 4 -> Extend 5 -> CustomDialog 1 -> Builder 可通过Builder装饰器进行描述&#xff0c;该装饰器可以修饰一个函数&…...

【漫话机器学习系列】028.CP

Mallows’ Cp&#xff1a;标准化公式解析与应用 Mallows’ Cp 是一种常用的模型选择工具&#xff0c;用于在一系列候选模型中权衡拟合度和复杂性&#xff0c;帮助我们选择性能最优的模型。本文将基于其标准化公式展开详细解析&#xff0c;并探讨其应用场景、实现方法、优点与局…...

【SpringBoot教程】搭建SpringBoot项目之编写pom.xml

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f44f;今天毛毛张分享的内容主要是Maven 中 pom 文件&#x1f195;&#xff0c;涵盖基本概念、标签属性、配置等内容 文章目录 1.前言&#x1f96d;2.项目基本…...

送给一年编程道路的自己

回望过去一年在编程道路上的成长与收获&#xff0c;是一个很有意义的过程。总结自己这一年的编程经历&#xff0c;不仅可以帮助你更清晰地了解自己的进步和不足&#xff0c;还能为未来的发展指引方向。以下是一些可能的收获&#xff0c;供你参考&#xff1a; 1. 技能提升 语言…...

libvirt学习

文章目录 libvirt 简介节点、Hypervisor和域libvirt 安装和配置libvirt的XML配置文件libvirt APIMain libvirt APIsError handlingSpecial specific APIs 建立到Hypervisor的连接libvirt API使用编译libvirt工具virshvirt-clonevirt-dfvirt-imagevirt-installvirt-topvirt-what…...

第二十五天 项目实践:图像分类

项目实践&#xff1a;图像分类 一、数据集准备 在图像分类任务中&#xff0c;数据集的选择和准备是至关重要的。一个高质量的数据集可以显著提高模型的训练效果和泛化能力。 数据集选择 ImageNet&#xff1a;这是一个广泛应用于训练卷积神经网络&#xff08;CNN&#xff09;模…...

学技术学英文:Tomcat的线程模型调优

导读&#xff1a; tomcat 线程调优关键需要理解下面这几个参数&#xff1a; 1. maxConnections 描述&#xff1a;指定服务器能够同时接受和处理的最大连接数。也就是说&#xff0c;服务器在任何时候都能处理的最大并发连接数。作用&#xff1a;限制服务器在任何给定时间点能…...

软考高项(二十)高级项目管理 ★重点集萃★

&#x1f451; 个人主页 &#x1f451; &#xff1a;&#x1f61c;&#x1f61c;&#x1f61c;Fish_Vast&#x1f61c;&#x1f61c;&#x1f61c; &#x1f41d; 个人格言 &#x1f41d; &#xff1a;&#x1f9d0;&#x1f9d0;&#x1f9d0;说到做到&#xff0c;言出必行&am…...

Android 系统 `android.app.Fragment` 类的深度定制与常见问题解析

Android 系统 android.app.Fragment 类的深度定制与常见问题解析 目录 引言Fragment 概述Fragment 的生命周期Fragment 的系统层深度定制 4.1 Fragment 的创建与初始化4.2 Fragment 的布局与视图4.3 Fragment 的通信机制4.4 Fragment 的动画与过渡4.5 Fragment 的状态保存与恢…...

[Qt] Qt介绍 | 搭建SDK

目录 1. Qt 简介 什么是 Qt&#xff1f; 1.1 引入 1.2 GUI 1.3 Qt 介绍 2. Qt 发展史 3. Qt 支持的平台 4. Qt 版本信息 5. Qt 的优点 6. Qt 应用场景 7. Qt 成功案例 8. Qt 发展前景及就业分析 二. Qt 开发环境搭建 1. 开发工具概述 2.Qt SDK 安装 3.使用 1. …...

工作中常用Vim的命令

Hi, 我是你们的老朋友&#xff0c;主要专注于嵌入式软件开发&#xff0c;有兴趣不要忘记点击关注【码思途远】 目录 0. ctags -R 1.认识 Vim的几种工作模式 2.高频使用命令 2.1 修改文件 2.2 关于行号 2.3 删除多行&#xff0c;删除部分 2.4 复制粘贴 2.5 光标移动 2.…...

【广州计算机学会、广州互联网协会联合主办 | ACM独立出版 | 高录用】第四届大数据、信息与计算机网络国际学术会议(BDICN 2025)

第四届大数据、信息与计算机网络国际学术会议&#xff08;BDICN 2025&#xff09;定于2025年01月10-12日在中国广州举行。会议旨在为从事“大数据”、“计算机网络”与“信息”研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术&#xff0c;了解学术发…...

CSS系列(43)-- Anchor Positioning详解

前端技术探索系列&#xff1a;CSS Anchor Positioning详解 &#x1f3af; 致读者&#xff1a;探索智能定位的艺术 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 CSS Anchor Positioning&#xff0c;这个强大的元素定位特性。 基础概念 &#x1f680; 锚点设…...

测试带宽上行方法

测试宽带上行速度的软件有多种&#xff0c;以下是一些常见的选择&#xff1a; Speedtest 平台支持&#xff1a;iOS、Android、Windows、MacOS等 特点&#xff1a;全球知名的网络测速软件&#xff0c;测试结果准确&#xff0c;支持多平台。用户可以选择最近的服务器进行测试&am…...

pugixml XML配置文件 的增删改查

<?xml version"1.0" encoding"UTF-8"?> <SXConfiguration><LocalSetting><VMSLoginServer><exitServerName>2</exitServerName><server><name>2</name><ip>152.131.121.131</ip><…...

自动化办公-将 Excel 的 Sheet 页拆分成单独的 Excel 文件

在日常的数据处理工作中&#xff0c;很多时候我们会遇到一个包含多个工作表&#xff08;Sheet&#xff09;的 Excel 文件&#xff0c;可能需要将每个工作表分别保存为独立的 Excel 文件。手动进行这种操作非常繁琐且易出错&#xff0c;但借助 Python 中的 pandas 库&#xff0c…...

安全漏洞合集

一&#xff0c;X-Content-Type-Options响应头降低XSS攻击的风险 在Nginx配置文件中&#xff0c;可以使用add_header指令来添加自定义的HTTP响应头。 &#xff08;通常是nginx.conf或站点特定的配置文件&#xff09;添加以下指令来设置X-Content-Type-Options响应头&#xff1a…...

python 堆排序(Heap Sort)

堆排序&#xff08;Heap Sort&#xff09; 堆排序是一种基于二叉堆数据结构的排序算法。它的基本思想是&#xff1a;将待排序的数组构建成一个最大堆&#xff08;或最小堆&#xff09;&#xff0c;然后依次将堆顶元素&#xff08;最大值或最小值&#xff09;与堆的最后一个元素…...

word中文献引用[]符号的上下标格式修改

word中文献引用[]符号的上下标格式修改 百度网址 1、查找打开使用通配符&#xff0c;输入[[][0-9]{1,2}[]]&#xff0c;即可匹配所有的字[1],[12]这些字符&#xff0c;然后鼠标点击替换为的空白处&#xff0c;再点击特殊格式–>“字体”&#xff0c;选中上标&#xff0c;最…...

地心地固坐标系

地心地固坐标系&#xff08;ECEF, Earth-Centered, Earth-Fixed&#xff09; 是一种三维坐标系&#xff0c;常用于表示地球表面或地球内部的点的位置。它的特点是坐标系的原点位于地球的质心&#xff0c;并且坐标轴固定在地球表面&#xff0c;并随地球自转而旋转。 ECEF 坐标系…...

3.CSS字体属性

3.1字体系列 CSS使用font-family属性定义文本的字体系列。 p{font-family:"微软雅黑"} div{font-family:Arial,"Microsoft Yahei",微软雅黑} 3.2字体大小 css使用font-size属性定义字体大小 p{ font-size:20px; } px(像素)大小是我们网页的最常用的单…...

使用PyTorch实现的二分类模型示例,综合了CNN、LSTM和Attention技术

以下是一个使用PyTorch实现的二分类模型示例,综合了CNN、LSTM和Attention技术,并尝试满足你提出的各项需求: 1. 数据预处理 扩充输入数据维度 假设你的原始数据是二维的(例如图像或序列数据),可以通过一些变换来扩充维度。例如,对于图像数据,可以进行翻转、旋转、缩放…...

[Wi-Fi]802.11u Vs hotspot2.0

介绍 802.11u 和 Hotspot 2.0 是两个相关但不同的技术标准&#xff0c;它们都旨在改善无线网络的用户体验&#xff0c;特别是在公共 Wi-Fi 环境中。 802.11u 定义&#xff1a;802.11u 是 IEEE 802.11 标准的一个扩展&#xff0c;专注于增强无线网络的互操作性和用户体验。功能…...

VisualStudio 2019 升级遇到的问题及解决

事件起因 今天计划想研究下.net core&#xff08;后面版本直接称为 .net &#xff09;,发现 .net sdk 5.0 最新版本安装不成功。解决之后&#xff0c;真是手欠&#xff0c;看着Visual Studio 2019 有更新了&#xff0c;就直接点击了&#xff0c;这时才发现问题大了。。。 安装…...

Java - 日志体系_Simple Logging Facade for Java (SLF4J)日志门面_SLF4J集成logback 及 原理分析

文章目录 Pre官网集成步骤POM依赖使用第一步&#xff1a;编写 Logback 的配置文件第二步&#xff1a;在代码中使用 SLF4J 原理分析1. 获取对应的 ILoggerFactory2. 根据 ILoggerFactory 获取 Logger 实例3. 日志记录过程 小结 Pre Java - 日志体系_Apache Commons Logging&…...

机器学习-方案设计题(在线医疗诊断项目)

在一个在线医疗诊断项目中&#xff0c;我们希望利用机器学习算法来预测患者是否患有某种疾病。请设计一个方案&#xff0c;包括数据收集、预处理、特征选择、模型选择和评估等步骤来完成这个任务。 1.数据收集数据来源 ‌电子病历系统‌&#xff1a;收集患者的基本信息&…...

基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解

目录 1、三种方式介绍 1.1请求限流 1.2 线程隔离方案 1.3 服务熔断 2、基于sentinel实现 2.1 启动sentinel 2.2 基于springboot整合sentinel 2.2.1请求限流 2.2.2请求隔离 2.2.2.1 OpenFeign整合Sentinel 2.2.3 服务熔断 2.2.3.1 编写降级代码 2.2.3.2 服务熔断 1、…...

[开源]C++代码分享

一&#xff0c;声明 被人水平有限&#xff0c;开源只是为了分享。勿喷&#xff01;&#xff01;&#xff01;还请大佬指点。 二&#xff0c;代码 // --------------------------------------------------------- 头文件 ----------------------------------------------- #in…...

vulnhub ica1

搭建靶机跟之前一样 不过这个要修改一下网卡;下面链接有教程 vulnhub jangow靶机-CSDN博客 1.扫描靶机IP arp-scan -l 192.168.47.135 2.信息收集 nmap -sS 192.168.47.135 访问网站 这个是一个web应用&#xff0c;框架是qdpm 9.2 在kali上搜索一下发现有两个漏洞&#x…...

Linux(Centos 7.6)基础命令/常用命令说明

1.目录相关命令 命令命令说明pwd用于显示/打印当前目录位置。ls/ll 列出当前目录下的文件或者目录&#xff0c;ll是ls -l的别名&#xff0c;ls仅显示名称&#xff0c;ll会显示详细的目录文件信息。 cd目录切换&#xff0c;常见用法有&#xff0c;cd /切换到根目录&#xff0c;…...

Solon 加入 GitCode:助力国产 Java 应用开发新飞跃

在当今数字化快速发展的时代&#xff0c;Java 应用开发框架不断演进&#xff0c;开发者们始终在寻找更快、更小、更简单的解决方案。近期&#xff0c;Solon 正式加入 GitCode&#xff0c;为广大 Java 开发者带来全新的开发体验&#xff0c;尤其是在国产应用开发进程中&#xff…...