搭建高可用OpenStack(Queen版)集群(九)之部署nova计算节点

一、搭建高可用OpenStack(Queen版)集群之部署计算节点

  一、部署nova

  1、安装nova-compute

  在全部计算节点安装nova-compute服务

yum install python-openstackclient openstack-utils openstack-selinux -y
yum install openstack-nova-compute -y

  若yum安装时报错如下,解决办法:找到对应包进行单独安装

Failed:python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7                                                                                       python2-urllib3.noarch 0:1.21.1-1.el7  

   解决

  python2-urllib3.noarch 0:1.21.1-1.el7下载地址:python-urllib3-1.21.1-1.el7 | Build Info | CentOS Community Build Service  具体包的地址:http://cbs.centos.org/kojifiles/packages/python-urllib3/1.21.1/1.el7/noarch/python2-urllib3-1.21.1-1.el7.noarch.rpm

     python-backports-ssl_match_hostname

  2、配置nova.conf

  在全部计算节点操作

  注意:

  1. ”my_ip”参数,根据节点修改
  2. nova.conf文件的权限:root:nova
cp -rp /etc/nova/nova.conf{,.bak}
egrep -v "^$|^#" /etc/nova/nova.conf 
[DEFAULT]
my_ip=10.20.9.46
use_neutron=true
firewall_driver=nova.virt.firewall.NoopFirewallDriver
enabled_apis=osapi_compute,metadata
# 前端采用haproxy时,服务连接rabbitmq会出现连接超时重连的情况,可通过各服务与rabbitmq的日志查看;
# transport_url=rabbit://openstack:openstack@controller:5673
# rabbitmq本身具备集群机制,官方文档建议直接连接rabbitmq集群;但采用此方式时服务启动有时会报错,原因不明;如果没有此现象,强烈建议连接rabbitmq直接对接集群而非通过前端haproxy
transport_url=rabbit://openstack:openstack@controller01:5672,openstack:openstack@controller02:5672,openstack:openstack@controller03:5672
[api]
auth_strategy=keystone
[api_database]
[barbican]
[cache]
[cells]
[cinder]
[compute]
[conductor]
[console]
[consoleauth]
[cors]
[crypto]
[database]
[devices]
[ephemeral_storage_encryption]
[filter_scheduler]
[glance]
api_servers=http://controller:9292
[guestfs]
[healthcheck]
[hyperv]
[ironic]
[key_manager]
[keystone]
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller01:11211,controller02:11211,controller03:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova_pass
[libvirt]
# 通过“egrep -c '(vmx|svm)' /proc/cpuinfo”命令查看主机是否支持硬件加速,返回1或者更大的值表示支持,返回0表示不支持;
# 支持硬件加速使用”kvm”类型,不支持则使用”qemu”类型;
# 一般虚拟机不支持硬件加速
virt_type=qemu
[matchmaker_redis]
[metrics]
[mks]
[neutron]
[notifications]
[osapi_v21]
[oslo_concurrency]
lock_path=/var/lib/nova/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[pci]
[placement]
os_region_name=RegionTest
auth_type=password
auth_url=http://controller:35357/v3
project_name=service
project_domain_name=Default
username=placement
user_domain_name=Default
password=placement_pass
[quota]
[rdp]
[remote_debug]
[scheduler]
[serial_console]
[service_user]
[spice]
[upgrade_levels]
[vault]
[vendordata_dynamic_auth]
[vmware]
[vnc]
enabled=true
vncserver_listen=0.0.0.0
vncserver_proxyclient_address=$my_ip
# 因某些未做主机绑定的客户端不能访问”controller”名字,改为使用具体的ip地址
novncproxy_base_url=http://10.20.9.47:6080/vnc_auto.html
[workarounds]
[wsgi]
[xenserver]
[xvp]
  3、启动服务,并设置为开机自启,然后验证服务是否正常

  在全部计算节点操作

systemctl enable libvirtd.service openstack-nova-compute.service
systemctl restart libvirtd.service
systemctl restart openstack-nova-compute.servicesystemctl status libvirtd.service openstack-nova-compute.service
  4、向cell数据库添加计算节点

  在任意控制节点操作

  确认数据库中含有主机

[root@controller01 ml2]# openstack compute service list --service nova-compute
+-----+--------------+-----------+------+---------+-------+----------------------------+
|  ID | Binary       | Host      | Zone | Status  | State | Updated At                 |
+-----+--------------+-----------+------+---------+-------+----------------------------+
| 123 | nova-compute | compute01 | nova | enabled | up    | 2018-09-15T13:06:40.000000 |
| 126 | nova-compute | compute02 | nova | enabled | up    | 2018-09-15T13:06:46.000000 |
+-----+--------------+-----------+------+---------+-------+----------------------------+
    1、手动发现计算节点

  手工发现计算节点主机,即添加到cell数据库

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
    2、自动发现计算节点

  在全部控制节点操作

  1. 为避免新加入计算节点时,手动执行注册操作”nova-manage cell_v2 discover_hosts”,可设置控制节点定时自动发现主机;
  2. 涉及控制节点nova.conf文件的[scheduler]字段;
  3. 如下设置自动发现时间为5min,可根据实际环境调节

  设置自动发现时间为5min

# vim /etc/nova/nova.conf
[scheduler]
discover_hosts_in_cells_interval=300

  重启nova服务,配置生效

systemctl restart openstack-nova-api.service
systemctl status openstack-nova-api.service
  5、验证

  登陆dashboard,管理员-->计算-->虚拟机管理器

  如果已注册成功,在"虚拟机管理器"标签下可发现计算节点,并能展示出各计算节点的资源;如果未注册或注册失败,则"虚拟机管理器"标签下无主机。

  http://10.20.9.47/

  账号:admin 密码:admin_pass

    1、查看计算节点情况

  

    2、查看openstack集群中所有节点情况

  

  二、部署Neutron

  1、安装neutron-linuxbridge

  在全部计算节点安装neutro-linuxbridge服务

yum install openstack-neutron-linuxbridge ebtables ipset -y
  2、配置neutron.conf

  在全部计算节点操作

  注意:

  1. ”bind_host”参数,根据节点修改
  2. neutron.conf文件的权限:root:neutron
cp -rp /etc/neutron/neutron.conf{,.bak}
egrep -v "^$|^#" /etc/neutron/neutron.conf
[DEFAULT]
state_path = /var/lib/neutron
bind_host = 10.20.9.46
auth_strategy = keystone
# 前端采用haproxy时,服务连接rabbitmq会出现连接超时重连的情况,可通过各服务与rabbitmq的日志查看;
# transport_url = rabbit://openstack:openstack@controller:5673
# rabbitmq本身具备集群机制,官方文档建议直接连接rabbitmq集群;
但采用此方式时服务启动有时会报错,原因不明;如果没有此现象,强烈建议连接rabbitmq直接对接集群而非通过前端haproxy
transport_url=rabbit://openstack:openstack@controller01:5672,openstack:openstack@controller02:5672,openstack:openstack@controller03:5672
[agent]
[cors]
[database]
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller01:11211,controller02:11211,controller03:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = neutron_pass
[matchmaker_redis]
[nova]
[oslo_concurrency]
lock_path = $state_path/lock
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[quotas]
[ssl]
  3、配置linuxbridge_agent.ini 
    1、配置linuxbridge_agent.ini 

  在全部计算节点操作

  注意:linuxbridge_agent.ini文件的权限:root:neutron

    单网卡需要设置:physical_interface_mappings = provider:ens192

cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak}
egrep -v "^$|^#" /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[DEFAULT]
[agent]
[linux_bridge]
# 网络类型名称与物理网卡对应,这里vlan租户网络对应规划的eth3;
# 需要明确的是物理网卡是本地有效,需要根据主机实际使用的网卡名确定;
# 另有”bridge_mappings”参数对应网桥
physical_interface_mappings = vlan:eth3
[network_log]
[securitygroup]
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
enable_security_group = true
[vxlan]
enable_vxlan = true
# tunnel租户网络(vxlan)vtep端点,这里对应规划的eth2(的地址),根据节点做相应修改
local_ip = 10.0.0.41
l2_population = true 
    2、配置内核参数
  1. bridge:是否允许桥接;
  2. 如果“sysctl -p”加载不成功,报” No such file or directory”错误,需要加载内核模块“br_netfilter”;
  3. 命令“modinfo br_netfilter”查看内核模块信息;
  4. 命令“modprobe br_netfilter”加载内核模块,解决错误
echo "# bridge" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
sysctl -p
  4、配置nova.conf

  在全部计算节点操作

  配置只涉及nova.conf的”[neutron]”字段

# vim /etc/nova/nova.conf
[neutron]
url=http://controller:9696
auth_type=password
auth_url=http://controller:35357
project_name=service
project_domain_name=default
username=neutron
user_domain_name=default
password=neutron_pass
region_name=RegionTest 
  5、启动服务

  在全部计算节点操作

  nova.conf文件已变更,首先需要重启全部计算节点的nova服务

systemctl restart openstack-nova-compute.service
systemctl status openstack-nova-compute.service

  启动网络服务

systemctl enable neutron-linuxbridge-agent.service
systemctl restart neutron-linuxbridge-agent.service
systemctl status neutron-linuxbridge-agent.service
  6、验证

  任意控制节点操作

  加载环境变量

. admin-openrc

  查看neutron相关的agent

[root@controller01 neutron]# openstack network agent list
+--------------------------------------+--------------------+--------------+-------------------+-------+-------+---------------------------+
| ID                                   | Agent Type         | Host         | Availability Zone | Alive | State | Binary                    |
+--------------------------------------+--------------------+--------------+-------------------+-------+-------+---------------------------+
| 03637bae-7416-4a23-b478-2fcafe29e11e | Linux bridge agent | controller02 | None              | :-)   | UP    | neutron-linuxbridge-agent |
| 1272cce8-459d-4880-b2ec-ce4f808d4271 | Metadata agent     | controller01 | None              | :-)   | UP    | neutron-metadata-agent    |
| 395b2cbb-87c0-4323-9273-21b9a9e7edaf | DHCP agent         | controller03 | nova              | :-)   | UP    | neutron-dhcp-agent        |
| 70dcfbb4-e60f-44a7-86ed-c07a719591fc | L3 agent           | controller02 | nova              | :-)   | UP    | neutron-l3-agent          |
| 711ef8dc-594d-4e81-8b45-b70944f031b0 | DHCP agent         | controller01 | nova              | :-)   | UP    | neutron-dhcp-agent        |
| 7626f6ec-620e-4eb4-b69b-78081f07cae5 | Linux bridge agent | compute02    | None              | :-)   | UP    | neutron-linuxbridge-agent |
| a1d93fac-d0bf-43d9-b613-3b6c6778e3ea | Linux bridge agent | compute01    | None              | :-)   | UP    | neutron-linuxbridge-agent |
| a5a67133-3218-41df-946e-d6162098b199 | Linux bridge agent | controller01 | None              | :-)   | UP    | neutron-linuxbridge-agent |
| af72caaf-48c3-423d-8526-31f529a1575b | L3 agent           | controller01 | nova              | :-)   | UP    | neutron-l3-agent          |
| b54c108f-a543-43f5-b81f-396b832da9c3 | Linux bridge agent | controller03 | None              | :-)   | UP    | neutron-linuxbridge-agent |
| cde2adf4-6796-4d50-9471-fda0cc060f09 | Metadata agent     | controller03 | None              | :-)   | UP    | neutron-metadata-agent    |
| d1707f54-e626-47fe-ba20-2f5e15abb662 | DHCP agent         | controller02 | nova              | :-)   | UP    | neutron-dhcp-agent        |
| e47a48b8-e7cb-48d1-b10f-895b7a536b70 | L3 agent           | controller03 | nova              | :-)   | UP    | neutron-l3-agent          |
| ec20a89d-2527-4342-9dab-f47ac5d71726 | Metadata agent     | controller02 | None              | :-)   | UP    | neutron-metadata-agent    |
+--------------------------------------+--------------------+--------------+-------------------+-------+-------+---------------------------+
[root@controller01 neutron]# openstack network agent list --agent-type linux-bridge
+--------------------------------------+--------------------+--------------+-------------------+-------+-------+---------------------------+
| ID                                   | Agent Type         | Host         | Availability Zone | Alive | State | Binary                    |
+--------------------------------------+--------------------+--------------+-------------------+-------+-------+---------------------------+
| 03637bae-7416-4a23-b478-2fcafe29e11e | Linux bridge agent | controller02 | None              | :-)   | UP    | neutron-linuxbridge-agent |
| 7626f6ec-620e-4eb4-b69b-78081f07cae5 | Linux bridge agent | compute02    | None              | :-)   | UP    | neutron-linuxbridge-agent |
| a1d93fac-d0bf-43d9-b613-3b6c6778e3ea | Linux bridge agent | compute01    | None              | :-)   | UP    | neutron-linuxbridge-agent |
| a5a67133-3218-41df-946e-d6162098b199 | Linux bridge agent | controller01 | None              | :-)   | UP    | neutron-linuxbridge-agent |
| b54c108f-a543-43f5-b81f-396b832da9c3 | Linux bridge agent | controller03 | None              | :-)   | UP    | neutron-linuxbridge-agent |
+--------------------------------------+--------------------+--------------+-------------------+-------+-------+---------------------------+

  三、部署cinder

  https://www.cnblogs.com/netonline/p/9337900.html

  在采用ceph或其他商业/非商业后端存储时,建议将cinder-volume服务部署在控制节点,通过pacemaker将服务运行在active/passive模式。

  1、安装cinder

  在全部计算点安装cinder服务

yum install -y openstack-cinder targetcli python-keystone
  2、配置cinder.conf

  在全部计算点操作

  注意:

  1. ”my_ip”参数,根据节点修改
  2. cinder.conf文件的权限:root:cinder
cp -rp /etc/cinder/cinder.conf{,.bak}
egrep -v "^$|^#" /etc/cinder/cinder.conf
[DEFAULT]
state_path = /var/lib/cinder
my_ip = 10.20.9.46
glance_api_servers = http://controller:9292
auth_strategy = keystone
# 简单的将cinder理解为存储的机头,后端可以采用nfs,ceph等共享存储
enabled_backends = ceph
# 前端采用haproxy时,服务连接rabbitmq会出现连接超时重连的情况,可通过各服务与rabbitmq的日志查看;
# transport_url = rabbit://openstack:openstack@controller:5673
# rabbitmq本身具备集群机制,官方文档建议直接连接rabbitmq集群;但采用此方式时服务启动有时会报错,原因不明;
# 如果没有此现象,强烈建议连接rabbitmq直接对接集群而非通过前端haproxy
transport_url=rabbit://openstack:openstack@controller01:5672,openstack:openstack@controller02:5672,openstack:openstack@controller03:5672
[backend]
[backend_defaults]
[barbican]
[brcd_fabric_example]
[cisco_fabric_example]
[coordination]
[cors]
[database]
connection = mysql+pymysql://cinder:123456@controller/cinder
[fc-zone-manager]
[healthcheck]
[key_manager]
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller01:11211,controller02:11211,controller03:11211
auth_type = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = cinder_pass
[matchmaker_redis]
[nova]
[oslo_concurrency]
lock_path = $state_path/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[oslo_reports]
[oslo_versionedobjects]
[profiler]
[service_user]
[ssl]
[vault]
  3、启动服务

  在全部计算点操作

systemctl enable openstack-cinder-volume.service target.service
systemctl restart openstack-cinder-volume.service
systemctl restart target.service
systemctl status openstack-cinder-volume.service target.service
  4、验证

  在任意控制节点操作

  加载环境变量

. admin-openrc 

  查看agent服务或:cinder service-list

  此时后端存储服务为ceph,但ceph相关服务尚未启用并集成到cinder-volume,导致cinder-volume服务的状态也是”down”

[root@controller01 ~]# openstack volume service list
+------------------+--------------+------+---------+-------+----------------------------+
| Binary           | Host         | Zone | Status  | State | Updated At                 |
+------------------+--------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller01 | nova | enabled | up    | 2018-09-10T13:09:24.000000 |
| cinder-scheduler | controller03 | nova | enabled | up    | 2018-09-10T13:09:25.000000 |
| cinder-scheduler | controller02 | nova | enabled | up    | 2018-09-10T13:09:23.000000 |
+------------------+--------------+------+---------+-------+----------------------------+

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

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

相关文章

【如何在MacOS升级ruby版本】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

OpenAI Whisper API (InvalidRequestError)

题意: OpenAI Whisper API(无效请求错误) 问题背景: Im trying to use OpenAI Whisper API to transcribe my audio files. When I run it by opening my local audio files from disk, it worked perfectly. Now Im developing a FastAPI e…

【超音速 专利 CN116109587A】一种复杂环境下密封钉焊缝质量检测方法

申请号CN202310066309.X公开号(公开)CN116109587A申请日2023.01.12申请人(公开)超音速人工智能科技股份有限公司(833753)发明人(公开)张俊峰(总); 陈炯标 原文摘要 本发明公开了一种复杂环境下密封钉焊缝…

如何在手机上设置国内代理IP地址:详细指南

在某些情况下,我们可能需要在手机上设置国内代理IP地址,以便访问特定的网络服务或提高网络连接的稳定性。本文将详细介绍如何在Android和iOS设备上设置代理IP地址。 在Android设备上设置代理IP地址 在Android设备上设置代理IP地址非常简单,只…

每日一练1:数字统计(含链接)

链接&#xff1a; [NOIP2010]数字统计_牛客题霸_牛客网 代码&#xff1a; #include <iostream> using namespace std;int main() {int a, b;int count 0;cin >> a >> b;for(int i a; a < b; a){i a;while(i>0){if(i%10 2) count;i / 10;}}cout…

asp.net Temporary ASP.NET Files修改为其他位置

Temporary ASP.NET Files这个文件夹是编译期间用于临时文件存储的目录。当请求一个新页面时ASP.NET会分析aspx页面并为其生成一个.cs文件&#xff0c;然后JIT编译器会编译这个cs生成一个dll&#xff0c;这些过程都是在这个目录里面进行的。其中还放了你在项目中引用的Assembly的…

线性代数|机器学习-P32循环矩阵的特征向量-傅里叶矩阵

文章目录 1. 大纲2. 循环矩阵2.1 移位矩阵P2.2 P的特征值和特征向量2.3 循环卷积矩阵2.4 循环卷积计算 3. 傅里叶矩阵 1. 大纲 循环矩阵在机器学习&#xff0c;图像处理中的应用循环卷积矩阵的特征值&#xff0c;特征向量&#xff0c;卷积规则循环卷积矩阵多项式表达&#xff…

小琳Python课堂:Python优先级队列深入解析:`PriorityQueue`类的使用与原理

小琳Python课堂开讲啦&#xff01;今天我们来深入解析Python中的PriorityQueue类&#xff0c;这个类在 多任务处理和数据优先级管理 中非常有用哦&#xff01;&#x1f31f; 在Python中&#xff0c;PriorityQueue类是queue模块的一部分&#xff0c;用于实现一个优先级队列。优先…

详解JavaScript

目录 JavaScript 引入样式 基础语法 变量 数据类型 运算符 JavaScript对象 数组 数组定义 数组操作 函数 语法格式 关于参数个数 函数表达式 对象 JQuery 语法 选择器 事件 常见的事件 操作元素 获取/设置元素内容 获取/设置元素属性 获取/设置CSS属性 …

【Spring Boot 3】【Web】返回图片

【Spring Boot 3】【Web】返回图片 背景介绍开发环境开发步骤及源码工程目录结构 背景 软件开发是一门实践性科学&#xff0c;对大多数人来说&#xff0c;学习一种新技术不是一开始就去深究其原理&#xff0c;而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中&a…

线性查找表的应用:用户登录注册程序

线性查找表是很简单的数据结构和算法。网站的用户登录注册时是基本的功能。本文首先给出线性查找表的基本实现&#xff0c;然后给出在用户登录注册的程序流程图&#xff0c;并将线性查找表应用到用户查询这一具体任务&#xff0c;并基于 Python 语言在控制台实现用户注册、登录…

【简单】 猿人学web第一届 第15题 备周则意怠,常见则不疑

数据接口分析 数据接口 https://match.yuanrenxue.cn/api/match/15 请求时需要携带 page 页码&#xff0c;m为加密参数 cookie中没有加密信息&#xff0c;携带 SessionId请求即可 加密参数还原 查看数据接口对应的 requests 栈 m参数 是通过 window.m() 方法执行后得到的 打上…

什么是 AWS CloudWatch?

AWS CloudWatch 是 AWS 提供的一项全面的监控和可观测性服务&#xff0c;使用户能够收集和可视化指标、日志和事件&#xff1b;设置警报&#xff1b;并根据预定义的条件自动执行操作。CloudWatch 提供对 AWS 资源和应用程序的运行状况、性能和运行状态的深入了解&#xff0c;使…

Linux查看jar包错误日志及持久化运行jar包

一、查看jar包运行信息命令&#xff1a;ps -ef | grep java 如图&#xff0c;给出了所部署jar包的环境变量&#xff0c;服务名称&#xff0c;服务端口信息。 这样便能得到部署的jar包是否在服务器成功运行及基本信息。 二、查看日志 启动信息无误&#xff0c;查看日志是否有报错…

GitLab 是什么?GitLab使用常见问题解答

GitLab 是什么 GitLab是由GitLab Inc.开发&#xff0c;使用MIT许可证的基于网络的Git仓库管理工具开源项目&#xff0c;且具有wiki和issue跟踪功能&#xff0c;使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的web服务。 ​GitLab 是由 GitLab Inc.开发&#xff0c…

Python和JAX及MATLAB小波分析导图

&#x1f3af;要点 离散小波变换和逆离散小波变换时间序列谱分析计算比例图和频谱图显示数据莫莱小波时频数据表征海表温度异常的区域平均值捕捉市场波动时间频率关联信息信号和图像分解压缩重建降维分析金融波动连续小波卷积网络和离散小波信号分类图像处理、提取地震图速度和…

Java面试自我介绍

持续更新中 模块序号目录链接前言介绍1前言地址2介绍地址基础知识3计算机网络地址4操作系统地址5Java基础地址6Java并发地址7Java虚拟机地址中间件8Mysql地址9Redis地址10Elasticsearch地址11RabbitMQ地址12RocketMQ地址框架13分布式系统地址14MyBatis地址15Dubbo地址16Spring地…

uniapp组件用法

一. 什么是组件,有什么好处? 在uni-app中&#xff0c;组件是构成应用的基本单位&#xff0c;它们是用来定义用户界面的一部分&#xff0c;并且通常包含了视图和逻辑。组件的设计使得开发者能够以声明式的方式构建应用界面&#xff0c;并且通过组件化的开发方式来提高代码的复…

预训练语言模型的前世今生 - 从Word Embedding到BERT

目录 一、预训练 1.1 图像领域的预训练1.2 预训练的思想二、语言模型 2.1 统计语言模型2.2 神经网络语言模型三、词向量 3.1 独热&#xff08;Onehot&#xff09;编码3.2 Word Embedding四、Word2Vec 模型五、自然语言处理的预训练模型六、RNN 和 LSTM 6.1 RNN6.2 RNN 的梯度消…

GAMES104:10+11游戏引擎中物理系统的基础理论算法和高级应用-学习笔记

文章目录 概览一&#xff0c;物理对象与形状1.1 对象 Actor1.2 对象形状Actor Shape 二&#xff0c;力与运动2.1 牛顿定律2.2 欧拉法2.2.1 显式欧拉法Explicit (Forward) Euler’s Method2.2.2 隐式欧拉法 Implicit (Backward) Euler’s Method2.2.3 半隐式欧拉法 Semi-implici…