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

【K8S in Action】服务:让客户端发现pod 并与之通信(2)

一 通过Ingress暴露服务

Ingress (名词) 一一进入或进入的行为;进入的权利;进入的手段或地点;入口。一个重要的原因是每个 LoadBalancer 服务都需要自己的负载均衡器, 以及
独有的公有 IP 地址, 而 Ingress 只需要一个公网 IP 就能为许多服务提供访问。
Ingress 在网络栈 (HTTP) 的应用层操作。

1.1 Ingress 控制器是必不可少的

只有Ingress控制器在集群中运行,Ingress 资源才能正常工作。在 minikube 上启动 Ingress 的扩展功能。

# 确保已启用 Ingress 附加组件
$ minikube addons list
- default-storageclass: enabled
- kube-dns: enabled
- heapster: disabled
- ingress: disabled    # 没有启动
- registry-creds: disabled
- addon-manager: enabled 
- dashboard: enabled# 启用 Ingress 附加组件
$ minikube addons enable ingress
ingress was successfully enabled# 查看控制Pod
$ kubectl get po  --all-namespaces

1.2 创建 Ingress 资源

apiVersion: extensions/vlbetal
kind: Ingress 
metadata:name : kubia.example.com
spec : rules: - host: kubia.example.com    #将域名映射到对应的服务http : paths - path: /backend: serviceName: kubia-nodeport   # 将请求发送到kubia-nodeport 的80端口servicePort 80要通过 http://kubi example.com 访问服务,需要确保域名解析为 ngress 控制器 IP
kubectl get ingresses
NAME   HOSTS                ADDRESS         PORTS AGE 
kubia  kubia.example.com  192.168.99.100    80   29m 

通过配置 DNS 服务器将kubia.example.com解析为 IP地址,或者在 /ect/host文件( Windows 系统为 \windows\system32\drivers\etc\hosts 中添加下面 行内容
192.168.99.100 kubia.example.com

通过 Ingress 访问 pod: curl http: / /kubia.example.com

在这里插入图片描述

1.3 通过相同的Ingress 暴露多个服务

- host:kubia.example.com http: paths: - path: /kubia backend: serviceName : kubia   # kubia.example.com/kubia 转发到kubia服务80端口servicePort: 80 - path: /foo backend: serviceName : bar  # kubia.example.com/foo 转发到bar服务80端口ser cePort: 80

二 pod 就绪后发出信号

还有一件关于 Service 和 Ingress 的事情。pod 可能需要时间来加载配置或数据。不要将请求转发到正在启动的 pod 中, 到完全准备就绪。

像存活探针一样,就绪探针有三种类型:
• Exec 探针,执行进程的地方。容器的状态由进程的退出状态代码确定
•HTTP GET 探针,向容器发送 HTTP GET 请求,通过响应的 HTTP 状态代码
判断容器是否准备好
• TCP socket 探针,它打开 TCP 连接到容器的指定端口。如果连接己建立,
则认为容器己准备就绪

启动容器时,可以为 k8s 配置等待时间,经过等待时间后才可以执行第1次准备就绪检查。之后,它会周期性地调用探针,并根据就绪探针的结果采取行动。如果某个 po 报告它尚未准备就绪,则会从该服务中删除该 pod 。如果再次准备就绪,则重新添加 pod。

apiVersion: vl 
kind: ReplicationController
spec: template:spec: containers:- name: kubiaimage: luksa/kubiareadinessProbe:        就绪探针exec:  - ls - /var/ready   定期在容器内执行ls/var/ready命令,返回退出码0, 表示成功
  • 务必定义就绪探针
  • 不要将停止 pod 的逻辑纳入就绪探针中
    只要删除该容器, Kubemetes就会从所有服务中移除该容器。

三 使用 headless服务来发现独立的pod

如果客户端需要链接到所有的 pod 呢?如果后端的 pod 都需要连接到所有其他
pod如何处理。

  • 一种选择是让客户端调用 Kubemetes API 服务器并通过 API调用获取 pod 及其 IP 地址列表。
    但由于应始终努力保持应用程序与 Kubemetes 无关, 因此使用 API 服务器并不理想。
  • Kubemetes 允许客户通过 DNS 查找发现 pod IP
    当执行服务的 DNS 查找时, DNS 服务器会返回单个 IP一服务的集群 IP。 但是, 如果告诉Kubemetes, 不需要为服务提供集群 IP (通过在服务 spec 中将 clusterIP 字段设置为 None 来完成此操作), 则 DNS 服务器将返回 podIP 而不是单个服务 IP。

3.1 创建headless服务

apiVersion: vl 
kind: Service 
metadata:name: kubia-headless 
spec: clusterIP: None     服务成为handless的ports: - port: 80targetPort: 8080selector: app: kubia

kubectl create 创建服务之后,可以 通过kubectl get和kubectl describe来查看服务,你会发现它没有集群IP,并且它的后端 包含与pod选择器匹配的就绪 pod。

3.2 通过DNS发现pod

尝试执行DNS查找以查看是否获得了实际的podIP。需要从其中 一个pod中执行查找。
注意: headless 服务仍然提供跨 pod 的负载平衡, 但是通过 DNS 轮询机制不是通过服务代理

kubect1 run dnsutils --image=tutum/dnsutils --generator=run-pod/vl  --command -- sleep infinitykubectl exec dnsutils nslookup kubia-headless    执行 DNS 查找
Name: kubia-headless.default.svc.cluster.local
Address: 10.108.1.4 
Name: kubia-headless.default.svc.cluster.local
Address: 10.108.2.5kubectl exec dnsutils nslookup kubia      返回的IP是服务的集群 IP
Name: kubia.default.svc.cluster.local 
Address: 10.111.249.153

–generator=run-pod/vl 选项中, 该选项让 kubec七1直接创建pod, 而不需要通过 ReplicationController 之类的资源来创建。

3.3 发现所有的pod一包括未就绪的pod

不必通过查询KubemetesAPI服务器, 可以使用DNS查找机制来查找那些未准备好的pod。 要告诉Kubemetes无论pod的准备状态如何, 希望将所有pod 添加到服务中 。 必须将以下注解添加到服务中

kind: Service 
metadata: annotations:service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"

警告: 注解名称表明了这是一个alpha功能。Service AP I已经支待一个 名为 publishNotReadyAddresses 的新服务规范字段。

4 排除服务故障

服务是Kubemetes的一个重要概念, 也是让许多开发人员感到困扰的根源。 许多开发人员为了弄清楚无法通过服务IP 或FQDN 连接到他们的pod的原因花费了
大量时间。
如果无法通过服务访问pod, 应该根据下面的列表进行排查:

  • 确保从集群内连接到服务的集群IP,而不是从外部
  • 不要通过ping服务IP 来判断服务是否可 访问(请记住, 服务的集群IP 是虚
    拟IP, 是无法ping通的)
  • 如果已经定义了就绪探针, 请确保 它返回成功;否则该pod不会成为服务的
    一部分
  • 要确认某个容器是服务的一部分, 请使用kubectl ge七 endpoints来检
    查相应的端点对象
  • 如果尝 试通 过FQDN或其 中 一 部 分来访问服务(例如, myservice.
    mynamespace.svc.cluster.local或 myservice.mynamespace), 但并不起作用, 请查看是否可以使用其集群IP而不是FQDN来访问服务
  • 检查是否连接到服务公开的端口,而不是目标端口
  • 尝试直接连接到podIP以确认pod正在接收正确端口上的 连接
  • 如果甚至无法通过pod的IP 访问应用, 请确保应用不是仅绑定到本地主机

相关文章:

【K8S in Action】服务:让客户端发现pod 并与之通信(2)

一 通过Ingress暴露服务 Ingress (名词) 一一进入或进入的行为;进入的权利;进入的手段或地点;入口。一个重要的原因是每个 LoadBalancer 服务都需要自己的负载均衡器, 以及 独有的公有 IP 地址, 而 Ingres…...

Spring Boot 中实现跨域的几种方式

前言 在现代Web应用中,由于安全性和隐私的考虑,浏览器限制了从一个域向另一个域发起的跨域HTTP请求。解决这个问题的一种常见方式是实现跨域资源共享(CORS)。Spring Boot提供了多种方式来处理跨域请求,本文将介绍其中的…...

WT2605C音频蓝牙语音芯片:单芯片实现蓝牙+MP3+BLE+电话本多功能应用

在当今的电子产品领域,多功能、高集成度成为了一种趋势。各种产品都需要具备多种功能,以满足用户多样化的需求。针对这一市场趋势,唯创知音推出了一款集成了蓝牙、MP3播放、BLE和电话本功能的音频蓝牙语音芯片——WT2605C,实现了单…...

计算机毕业设计 基于SpringBoot的高校宣讲会管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

Android 使用Serialiable接口和Parcelable接口进行数据传送

一、前言 这篇文章主要针对Serialiable和Parcelable接口来传递对象。呈现的功能是跳转到另一个界面,然后通过toast展现我收到的数据。 二、使用Serialiable接口传递数据 1.创建需要传递的对象 //必须实现Serializable接口,此对象才有传递的资格 publ…...

【数据结构入门精讲 | 第十七篇】一文讲清图及各类图算法

在上一篇中我们进行了的并查集相关练习,在这一篇中我们将学习图的知识点。 目录 概念深度优先DFS伪代码 广度优先BFS伪代码 最短路径算法(Dijkstra)伪代码 Floyd算法拓扑排序逆拓扑排序 概念 下面介绍几种在对图操作时常用的算法。 深度优先D…...

Python 直方图的绘制-`hist()`方法(Matplotlib篇-第7讲)

Python 直方图的绘制-hist()方法(Matplotlib篇-第7讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…...

Quartz持久化(springboot整合mybatis版本实现调度任务持久化)--提供源码下载

1、Quartz持久化功能概述 1、实现使用quartz提供的默认11张持久化表存储quartz相关信息。 2、实现定时任务的编辑、启动、关闭、删除。 3、实现自定义持久化表存储quartz定时任务信息。 4、本案例使用springboot整合mybatis框架和MySQL数据库实现持久化 5、提供源码下载 …...

掌握的单词个数 - 华为OD统一考试

OD统一考试 题解: Java / Python / C++ 题目描述 有一个字符串数组 words 和一个字符串 chars。假如可以用 chars 中的字母拼写出 words 中的某个"单词"(字符串),那么我们就认为你掌握了这个单词。 words 的字等仅由 a-z 英文小写宁母组成,例如“abc”。 char…...

如何使用ArcGIS Pro将Excel表转换为SHP文件

有的时候我们得到的数据是一张张的Excel表格,如果想要在ArcGIS Pro中进行分析或者制图则需要先转换为SHP格式,这里为大家介绍一下转换方法,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的POI数据,除了P…...

11.1Linux串口应用程序开发

UART简介 UART的全称是Universal Asynchronous Receiver and Transmitter,即异步发送和接收。 串口在嵌入式中用途非常的广泛,主要的用途有: 打印调试信息;外接各种模块:GPS、蓝牙; 串口因为结构简单、稳…...

log4j学习

依赖 <!--log4j依赖--> <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version> </dependency><!--测试--> <dependency><groupId>org.junit.jupiter</g…...

【Vue2+3入门到实战】(4)Vue基础之指令修饰符 、v-bind对样式增强的操作、v-model应用于其他表单元素 详细示例

目录 一、今日学习目标1.指令补充 二、指令修饰符1.什么是指令修饰符&#xff1f;2.按键修饰符3.v-model修饰符4.事件修饰符 三、v-bind对样式控制的增强-操作class1.语法&#xff1a;2.对象语法3.数组语法4.代码练习 四、京东秒杀-tab栏切换导航高亮1.需求&#xff1a;2.准备代…...

【数据结构和算法】找到最高海拔

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 前缀和的解题模板 2.1.1 最长递增子序列长度 2.1.2 寻找数组中第 k 大的元素 2.1.3 最长公共子序列…...

redis相关问题

1、概述&#xff1a; 1. 非关系型数据库 2. 是分布式缓存数据库 3. 使用 key -value结构存储 2、作用&#xff1a; 用作缓存降低数据库压力&#xff0c;提高性能&#xff1b;可以用作消息队列&#xff08;削峰、解耦、异步调用&#xff09; 3、基础语法&#xff1a; 基础命令…...

第41节: Vue3 watch函数

在UniApp中使用Vue3框架时&#xff0c;你可以使用watch函数来观察和响应Vue实例上的数据变化。以下是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用watch函数&#xff1a; <template> <view> <input v-model"message" type"text…...

Centos7:升级gcc、g++到版本5.2.0

背景 Centos7.9版本默认的g版本是4.8.5&#xff0c;在实践golang项目中&#xff0c;用到C14&#xff0c;编译时会报错&#xff1a;gcc: error: unrecognized command line option ‘-stdc14’ 因此&#xff0c;gcc需要升级到更高版本&#xff0c;我这里使用源码编译形式升级到g…...

Pytohn data mode plt

文章目录 文件的读写创建.csv类型的文件&#xff0c;并读取文件创建.xlsx文件 使用Python做图生成数据集切片取值操作修改张量中指定位置的数据 知识点torch.arange(x)torch.tensor(2)Atorch.randn(36).reshape(6,6)shapenumel()reshape(x,y,z)torch.zeros(3,3,4)torch.ones(2,…...

内网离线搭建之----kafka集群

1.系统版本 虚拟机192.168.9.184 虚拟机192.168.9.185 虚拟机192.168.9.186系统 centos7 7.6.1810 2.依赖下载 ps&#xff1a;置顶资源里已经下载好了&#xff0c;直接用&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;…...

5.1 显示窗口的内容(一)

一&#xff0c;如何显示窗口的内容&#xff1f; 显示器用于在物理硬件&#xff08;如计算机显示器或触摸屏显示器&#xff09;上显示窗口的内容。 屏幕API提供的功能允许我们创建同时写入多个窗口和显示的应用程序。屏幕支持多个显示器&#xff0c;但创建和管理使用多个显示器…...

基于包围盒算法的三维点云数据压缩和曲面重建matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 包围盒构建 4.2 点云压缩 4.3 曲面重建 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...........................................…...

关于Python里xlwings库对Excel表格的操作(十八)

这篇小笔记主要记录如何【设置单元格数据的对齐方式】。前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 &#xff08;1&#xff09;如何安装导入xlwings库&#xff1b; &#xff08;2&#xff09;如何在Wps下…...

VScode远程连接服务器,Pycharm专业版下载及远程连接(深度学习远程篇)

Visual Code、PyCharm专业版&#xff0c;本地和远程交互。 远程连接需要用到SSH协议的技术&#xff0c;常用的代码编辑器vscode 和 pycharm都有此类功能。社区版的pycharm是免费的&#xff0c;但是社区版不支持ssh连接服务器&#xff0c;只有专业版才可以&#xff0c;需要破解…...

Vue2和Vue3组件间通信方式汇总(3)------$bus

组件间通信方式是前端必不可少的知识点&#xff0c;前端开发经常会遇到组件间通信的情况&#xff0c;而且也是前端开发面试常问的知识点之一。接下来开始组件间通信方式第三弹------$bus,并讲讲分别在Vue2、Vue3中的表现。 Vue2Vue3组件间通信方式汇总&#xff08;1&#xff09…...

PyTorch加载数据以及Tensorboard的使用

一、PyTorch加载数据初认识 Dataset:提供一种方式去获取数据及其label 如何获取每一个数据及其label 总共有多少的数据 Dataloader:为后面的网络提供不同的数据形式 数据集 在编译器中导入Dataset from torch.utils.data import Dataset 可以在jupyter中查看Dataset官方文档&…...

TensorFlow是什么

TensorFlow是什么 Tensorflow是一个Google开发的第二代机器学习系统&#xff0c;克服了第一代系统DistBelief仅能开发神经网络算法、难以配置、依赖Google内部硬件等局限性&#xff0c;应用更加广泛&#xff0c;并且提高了灵活性和可移植性&#xff0c;速度和扩展性也有了大幅…...

docker-compose 安装Sonar并集成gitlab

文章目录 1. 前置条件2. 编写docker-compose-sonar.yml文件3. 集成 gitlab4. Sonar Login with GitLab 1. 前置条件 安装docker-compose 安装docker 创建容器运行的特有网络 创建挂载目录 2. 编写docker-compose-sonar.yml文件 version: "3" services:sonar-postgre…...

支付平台在选择服务器租用时要注意什么?

如果要建设一个支付平台的话要进行服务器租用&#xff0c;一旦涉及到钱的方面就必须要顾虑到多方面&#xff0c;这样才能保证安全性&#xff0c;今天小编就给大家讲一讲要注意什么呢&#xff1f; 1、带宽:带宽是业务稳定性的直接因素&#xff0c;只有带宽充足&#xff0c;这样…...

IDEA2018升级2023,lombok插件不兼容导致get/set方法无法使用

1、问题 最近了解到一款叫CodeGeeX 的智能编程助手&#xff0c;想要试用一下&#xff0c;但是IDEA2018版本太低了&#xff0c;没有CodeGeeX插件&#xff0c;于是打算将IDEA升级到2023.2.5版本&#xff0c;具体升级过程略过&#xff0c;升级完成后&#xff0c;启动项目&#xf…...

企业微信服务商代开发模式获取授权企业的客户信息

服务商代开发素材&#xff1a; 服务商可信ip 企业微信认证 测试时不用再次创建一个企业微信&#xff0c;可以用当前的企业微信作为授权企业使用一、创建代开发应用模板 1&#xff0c;代开发模板回调URL配置 参考 注意&#xff1a;保存代开发应用模板时的corpId是服务商的企业…...

库存管理方法有哪些

库存管理是工作中一个离不开的话题&#xff0c;不管是仓管还是业务员都或多或少接触过库存管理方面的工作&#xff0c;例如&#xff1a;进货、销售、库存盘点等等这些都属于库存管理的范筹&#xff0c;那么库存管理方法有哪些&#xff1f;用哪种方法管理库存比较好&#xff0c;…...

数字化车间推动制造业生产创新

一、数字化车间应用场景 1&#xff1a;资源智能化管理 数字化车间通过搭建智能化的设备监测系统&#xff0c;实时采集和监控设备的运行状态和生产数据&#xff0c;对设备进行实时管理和维护&#xff0c;降低故障率和维修成本。同时&#xff0c;通过对生产过程中的数据采集和分…...

Linux的安装及管理程序

一、如何在linux安装卸载软件 1. 编译安装 灵活性较高 难度较大 可以安装较新的版本 2. rpm安装&#xff08;redhat&#xff09; linux 包安装 查软件信息&#xff1a;是否安装&#xff0c;文件列表 rpm 软件名 3. yum yum是RPM升级版本&#xff0c;解决rpm的弊端 安装软件 首…...

c语言-表达式求值

目录 前言一、隐式类型转换1.1 整型提升 二、算术转换三、操作符的属性四、问题表达式总结 前言 表达式求值的顺序一部分由操作符的优先级和结合性决定。 有些表达式的操作数在求值的过程中可能需要转换为其他类型 一、隐式类型转换 隐式类型转换是在编译器自动进行的类型转换…...

小型洗衣机哪个牌子质量好?口碑最好的四款小型洗衣机推荐

随着科技的快速发展&#xff0c;现在的人们越来越注重自己的卫生问题&#xff0c;不仅在吃上面会注重卫生问题&#xff0c;在用的上面也会更加严格要求&#xff0c;而衣服做为我们最贴身的东西&#xff0c;我们对它的要求也会更加高&#xff0c;所以最近这几年较火爆的无疑是内…...

springCould中的Ribbon-从小白开始【5】

目录 1.什么是Ribbo❤️❤️❤️ 2.eureka自带Ribbon ❤️❤️❤️ 3. RestTemplate❤️❤️❤️ 4.IRule❤️❤️❤️ 5.负载均衡算法❤️❤️❤️ 1.什么是Ribbo 1.Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具。2.主要功能是提供客户端的软件…...

持续集成交付CICD:Jira 发布流水线

目录 一、实验 1.环境 2.GitLab 查看项目 3.Jira 远程触发 Jenkins 实现合并 GitLab 分支 4.K8S master节点操作 5.Jira 发布流水线 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins…...

JuiceSSH结合内网穿透实现公网远程访问本地Linux虚拟机

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …...

使用 pytest.ini 文件控制输出 log 日志

一、前置说明 pytest.ini 文件中可以配置参数来控制 pytest 的运行行为,其存放路径要求与 conftest.py 一样。 项目根目录project_root/ ├── pytest.ini ├── tests/ │ └── test_demo.py以test开头的测试子目录project_root/ ├── tests/ │ ├── pytest.in…...

【Spring】SpringBoot 配置文件

文章目录 什么是配置文件SpringBoot配置文件配置文件快速入手配置文件的格式properties 配置文件说明properties 基本语法读取配置文件信息properties 配置格式缺点 yml 配置文件说明yml 基本语法使用 yml 连接数据库 yml 使用进阶yml 配置不同数据类型配置对象配置集合配置Map…...

Koordinator 支持 K8s 与 YARN 混部,小红书在离线混部实践分享

作者&#xff1a;索增增&#xff08;小红书&#xff09;、宋泽辉&#xff08;小红书&#xff09;、张佐玮&#xff08;阿里云&#xff09; 背景介绍 Koordinator 是一个开源项目&#xff0c;基于阿里巴巴在容器调度领域多年累积的经验孵化诞生&#xff0c;目前已经支持了 K8s…...

网游逆向分析与插件开发-游戏反调试功能的实现-项目需求与需求拆解

上一个专栏结束位置&#xff1a;网游逆向分析与插件开发-代码保护壳的优化-修改随机基址为固定基址-CSDN博客 上一个专栏是做了一个壳有了一定的保护&#xff0c;但是保护还是不够&#xff0c;最大的保护是根上把问题解决了&#xff0c;就是我不允许你对我进行调试&#xff0c…...

阶段七-GitEE

Git&#xff1a;版本控制软件 Git的优点 1.1 协同修改 多人并行不悖的修改服务器端的同一个文件。 1.2 数据备份 不仅保存目录和文件的当前状态&#xff0c;还能够保存每一个提交过的历史状态。 1.3 版本管理 在保存每一个版本的文件信息的时候要做到不保存重复数据&…...

Redis小记(1)

目录 1.Redis和Mysql的区别 2.Redis常用命令 1.Redis和Mysql的区别 a:mysql和redis的存储方式不同 mysql是关系型数据库&#xff0c;用表来进行存储数据。 redis是通过键值对来存储数据&#xff0c;key使用string来标识&#xff0c;value可以是各种不同的数据结构。 b:mys…...

Flutter windows 环境配置

Flutter windows 环境配置 从零开始&#xff0c;演示flutter环境配置到启动项目&#xff0c;同时支持 vscode 和 android studio 目录 Flutter windows 环境配置一、环境配置1. Flutter SDK2. Android Studio3. JDK4. 拓展安装5. Visual Studio 2022二、项目创建和启动1. vsco…...

odoo17核心概念view5——ir_ui_view.py

这是view系列的第5篇文章&#xff0c;介绍一下view对应的后端文件ir_ui_view.py&#xff0c;它是base模块下的一个文件 位置&#xff1a;odoo\addons\base\models\ir_ui_view.py 该文件一共定义了三个模型 1.1 ir.ui.view.custom 查询数据库这个表是空的&#xff0c;从名字看…...

截断整型提升算数转换

文章目录 &#x1f680;前言&#x1f680;截断&#x1f680;整型提升✈️整型提升是怎样的 &#x1f680;算术转换 &#x1f680;前言 大家好啊&#xff01;这里阿辉补一下前面操作符遗漏的地方——截断、整型提升和算数转换 看这一篇要先会前面阿辉讲的数据的存储否则可能看不…...

阿里云 ECS Docker、Docker Compose安装

https://help.aliyun.com/document_detail/51853.html https://docs.docker.com/compose/install/ Centos https://blog.csdn.net/Alen_xiaoxin/article/details/104850553 systemctl enable dockerdocker-compose安装 https://blog.csdn.net/qq465084127/article/details/…...

LeetCode——1276. 不浪费原料的汉堡制作方案

通过万岁&#xff01;&#xff01;&#xff01; 题目&#xff0c;给你两个数tomatoSlices和cheeseSlices&#xff0c;然后每制作一个巨无霸汉堡则消耗4个tomatoSlices和1和cheeseSlices&#xff0c;每制作一个小皇堡则需要消耗2个tomatoSlices和1和cheeseSlices。问给你这两个…...

隆道吴树贵:生成式人工智能在招标采购中的应用

12月22日&#xff0c;由中国招标投标协会主办的招标采购数字发展大会在北京召开&#xff0c;北京隆道网络科技有限公司总裁吴树贵受邀出席大会&#xff0c;并在“招标采购数字化交易创新成果”专题会议上发言&#xff0c;探讨生成式人工智能如何在招标采购业务中落地应用。 本次…...