OpenStack Yoga版安装笔记(十)placement练习

news2025/1/15 16:36:05

1、练习场景说明

 在OpenStack Yoga版安装笔记(九)中,placement已经在controller node虚拟机上安装完成,并且已经成功拍摄了快照。

此时,controller node虚机已经安装了keystone、keystone DB、glance、glance DB、OpenStackClient、memcache、placement、placement DB等组件:

(上图中,由于本次练习不涉及glance,所以未画出) 

 将controller node虚机转到此快照然后开机,在后面将在这台虚机上执行以下命令:

openstack --os-placement-api-version 1.2 resource class list --sort-column name

观察OpenStack组件之间完整交互过程。

2、查看OpenStack服务相关进程和TCP连接情况

2.1 查看相关进程

root@controller:~# ps -aux | grep -E 'keystone|placement|glance|rabbitmq|memcache|apache2|mysql'
memcache     811  0.0  0.0 411376  4152 ?        Ssl  Jul31   0:01 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 10.0.20.11 -P /var/run/memcached/memcached.pid
rabbitmq     814  0.1  1.5 2634844 123880 ?      Ssl  Jul31   0:28 /usr/lib/erlang/erts-12.2.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa  -noshell -noinput -s rabbit boot -boot start_sasl -syslog logger [] -syslog syslog_error_logger false
root         869  0.0  0.0  14052  6820 ?        Ss   Jul31   0:00 /usr/sbin/apache2 -k start
mysql        966  0.0  1.1 1337780 92048 ?       Ssl  Jul31   0:01 /usr/sbin/mariadbd
rabbitmq    1003  0.0  0.0   2780  1432 ?        Ss   Jul31   0:00 erl_child_setup 65536
rabbitmq    1339  0.0  0.0   3740  1276 ?        Ss   Jul31   0:00 inet_gethost 4
rabbitmq    1340  0.0  0.0   3740   108 ?        S    Jul31   0:00 inet_gethost 4
glance      1358  0.9  1.4 168668 120948 ?       Ss   Jul31   2:37 /usr/bin/python3 /usr/bin/glance-api --config-file=/etc/glance/glance-api.conf --config-dir=/etc/glance/ --log-file=/var/log/glance/glance-api.log
glance      1370  0.0  1.2 168668 105164 ?       S    Jul31   0:00 /usr/bin/python3 /usr/bin/glance-api --config-file=/etc/glance/glance-api.conf --config-dir=/etc/glance/ --log-file=/var/log/glance/glance-api.log
glance      1371  0.0  1.2 168668 105168 ?       S    Jul31   0:00 /usr/bin/python3 /usr/bin/glance-api --config-file=/etc/glance/glance-api.conf --config-dir=/etc/glance/ --log-file=/var/log/glance/glance-api.log
glance      1372  0.0  1.2 168668 105168 ?       S    Jul31   0:00 /usr/bin/python3 /usr/bin/glance-api --config-file=/etc/glance/glance-api.conf --config-dir=/etc/glance/ --log-file=/var/log/glance/glance-api.log
glance      1373  0.0  1.2 168668 105168 ?       S    Jul31   0:00 /usr/bin/python3 /usr/bin/glance-api --config-file=/etc/glance/glance-api.conf --config-dir=/etc/glance/ --log-file=/var/log/glance/glance-api.log
keystone    6449  0.0  0.1 108884 11456 ?        Sl   00:00   0:00 (wsgi:keystone-pu -k start
keystone    6450  0.0  0.1 108884 11456 ?        Sl   00:00   0:00 (wsgi:keystone-pu -k start
keystone    6451  0.0  0.1 108884 11456 ?        Sl   00:00   0:00 (wsgi:keystone-pu -k start
keystone    6452  0.0  0.1 108892 11456 ?        Sl   00:00   0:00 (wsgi:keystone-pu -k start
keystone    6453  0.0  0.1 108884 11460 ?        Sl   00:00   0:00 (wsgi:keystone-pu -k start
placeme+    6454  0.0  0.1 108884 11460 ?        Sl   00:00   0:00 (wsgi:placement-a -k start
placeme+    6455  0.0  0.1 108884 11460 ?        Sl   00:00   0:00 (wsgi:placement-a -k start
placeme+    6456  0.0  0.1 108884 11460 ?        Sl   00:00   0:00 (wsgi:placement-a -k start
placeme+    6457  0.0  0.1 108884 11460 ?        Sl   00:00   0:00 (wsgi:placement-a -k start
placeme+    6458  0.0  0.1 108892 11460 ?        Sl   00:00   0:00 (wsgi:placement-a -k start
www-data    6459  0.0  0.1 2009808 12280 ?       Sl   00:00   0:00 /usr/sbin/apache2 -k start
www-data    6460  0.0  0.1 1944272 12280 ?       Sl   00:00   0:00 /usr/sbin/apache2 -k start
root       15673  0.0  0.0   4180  2428 pts/3    S+   02:53   0:00 grep --color=auto -E keystone|placement|glance|rabbitmq|memcache|apache2|mysql
root@controller:~# 

ps -aux | grep -E 'keystone|placement|glance|rabbitmq|memcache|apache2|mysql'命令解释:

ps -aux 来列出所有运行中的进程,并通过管道 | 将输出传递给 grep 命令。grep -E 表示使用扩展正则表达式,'keystone|placement|glance|rabbitmq|memcache|apache2|mysql' 是一个正则表达式,用于匹配包含 keystoneplacementglancerabbitmq、memcache 、 apache2 、mysql中任意关键词的行。

这里是命令的详细解释:

  • ps -aux: 显示系统上所有运行的进程的详细信息。
  • grep -E: 使用扩展正则表达式来搜索文本。
  • 'keystone|placement|glance|rabbitmq|memcache|apache2|mysql': 这是一个正则表达式,| 是逻辑或运算符,表示匹配列表中的任意一个字符串。

这个命令的输出将包括所有包含上述关键词之一的进程。OpenStack 的 Keystone 认证服务、Glance 镜像服务、Placement 服务、RabbitMQ 消息队列、Memcached 缓存服务、 Apache WEB服务、MySQL 数据库服务相关的进程都会被列出。

 2.2 查看相关TCP监听端口

1、查看所以监听端口信息:

root@controller:~# ss -lnp | grep -E "memcached|beam\.smp|apache2|mariadbd|glance\-api"         
u_str LISTEN 0      869                       /run/mysqld/mysqld.sock 34903                  * 0    users:(("mariadbd",pid=966,fd=97))                                                                                                                                      
u_str LISTEN 0      100            /var/run/apache2/wsgi.869.2.1.sock 48420                  * 0    users:(("apache2",pid=6453,fd=17),("apache2",pid=6452,fd=17),("apache2",pid=6451,fd=17),("apache2",pid=6450,fd=17),("apache2",pid=6449,fd=17),("apache2",pid=869,fd=17))
u_str LISTEN 0      100            /var/run/apache2/wsgi.869.2.2.sock 48421                  * 0    users:(("apache2",pid=6458,fd=19),("apache2",pid=6457,fd=19),("apache2",pid=6456,fd=19),("apache2",pid=6455,fd=19),("apache2",pid=6454,fd=19),("apache2",pid=869,fd=19))
u_dgr UNCONN 0      0                                               * 28652                  * 0    users:(("beam.smp",pid=814,fd=17))                                                                                                                                      
tcp   LISTEN 0      1024                                   10.0.20.11:11211            0.0.0.0:*    users:(("memcached",pid=811,fd=22))                                                                                                                                     
tcp   LISTEN 0      4096                                      0.0.0.0:9292             0.0.0.0:*    users:(("glance-api",pid=1373,fd=4),("glance-api",pid=1372,fd=4),("glance-api",pid=1371,fd=4),("glance-api",pid=1370,fd=4),("glance-api",pid=1358,fd=4))                
tcp   LISTEN 0      128                                       0.0.0.0:25672            0.0.0.0:*    users:(("beam.smp",pid=814,fd=18))                                                                                                                                      
tcp   LISTEN 0      869                                    10.0.20.11:3306             0.0.0.0:*    users:(("mariadbd",pid=966,fd=96))                                                                                                                                      
tcp   LISTEN 0      128                                             *:5672                   *:*    users:(("beam.smp",pid=814,fd=33))                                                                                                                                      
tcp   LISTEN 0      511                                             *:8778                   *:*    users:(("apache2",pid=6460,fd=8),("apache2",pid=6459,fd=8),("apache2",pid=869,fd=8))                                                                                    
tcp   LISTEN 0      511                                             *:5000                   *:*    users:(("apache2",pid=6460,fd=6),("apache2",pid=6459,fd=6),("apache2",pid=869,fd=6))                                                                                    
tcp   LISTEN 0      511                                             *:80                     *:*    users:(("apache2",pid=6460,fd=4),("apache2",pid=6459,fd=4),("apache2",pid=869,fd=4))                                                                                    
root@controller:~# 

2、只看tcp相关的监听端口信息:

root@controller:~# ss -tlnp | grep -E "memcached|beam\.smp|apache2|mariadbd|glance\-api"
LISTEN 0      1024      10.0.20.11:11211      0.0.0.0:*    users:(("memcached",pid=811,fd=22))                                                                                                                     
LISTEN 0      4096         0.0.0.0:9292       0.0.0.0:*    users:(("glance-api",pid=1373,fd=4),("glance-api",pid=1372,fd=4),("glance-api",pid=1371,fd=4),("glance-api",pid=1370,fd=4),("glance-api",pid=1358,fd=4))
LISTEN 0      128          0.0.0.0:25672      0.0.0.0:*    users:(("beam.smp",pid=814,fd=18))                                                                                                                      
LISTEN 0      869       10.0.20.11:3306       0.0.0.0:*    users:(("mariadbd",pid=966,fd=96))                                                                                                                      
LISTEN 0      128                *:5672             *:*    users:(("beam.smp",pid=814,fd=33))                                                                                                                      
LISTEN 0      511                *:8778             *:*    users:(("apache2",pid=6460,fd=8),("apache2",pid=6459,fd=8),("apache2",pid=869,fd=8))                                                                    
LISTEN 0      511                *:5000             *:*    users:(("apache2",pid=6460,fd=6),("apache2",pid=6459,fd=6),("apache2",pid=869,fd=6))                                                                    
LISTEN 0      511                *:80               *:*    users:(("apache2",pid=6460,fd=4),("apache2",pid=6459,fd=4),("apache2",pid=869,fd=4))     

ss -lnp | grep -E "memcached|beam\.smp|apache2|mariadbd|glance\-api"命令解释:

使用 ss -lnp 命令过滤特定服务(memcached, beam.smp, apache2, mariadbd, glance-api)后的结果。这里是对输出中每部分的解释:

  1. Unix 域套接字监听状态 (u_str LISTEN):

    • /run/mysqld/mysqld.sock: MariaDB 或 MySQL 服务的 Unix 域套接字,正在监听连接。
    • /var/run/apache2/wsgi.869.2.1.sock 和 /var/run/apache2/wsgi.869.2.2.sock: Apache2 用于 WSGI 应用程序的 Unix 域套接字。
  2. UDP 未连接状态 (u_dgr UNCONN):

    • 显示了一个与 beam.smp 进程(Erlang 虚拟机)相关的 UDP 套接字,但因为状态是 UNCONN,它还没有连接。
  3. TCP 监听状态 (tcp LISTEN):

    • 10.0.20.11:11211: memcached 服务监听在特定的 IP 地址和端口上。
    • 0.0.0.0:9292: Glance API 服务监听在所有 IPv4 地址的 9292 端口上。
    • 0.0.0.0:25672: 另一个 beam.smp 进程监听在所有 IPv4 地址的 25672 端口上,可能用于 RabbitMQ 消息队列或其他 Erlang 应用。
    • 10.0.20.11:3306: MariaDB 或 MySQL 服务监听在特定的 IP 地址和端口上,通常用于数据库服务。
    • *:5672: 通常用于 RabbitMQ 服务的 AMQP 协议,监听在所有地址的 5672 端口上。
    • *:8778 和 *:5000: 这些端口上的监听服务与 Apache2 相关,分别用于 placement 服务和keystone服务。
    • *:80: Apache2 Web 服务器监听在所有地址的 80 端口上,这是 HTTP 的默认端口。

users 部分列出了使用这些套接字的进程信息,包括进程名称、PID(进程ID)和文件描述符(fd)。

例如,users:(("apache2",pid=6453,fd=17)) 表示 PID 为 6453 的 Apache2 进程使用了文件描述符 17。

这些输出行提供了系统上关键服务的网络监听状态的快照,包括它们监听的协议、地址、端口和关联的进程信息。

 2.3 查看已建立的相关TCP连接

root@controller:~# ss -tp | grep -E "memcached|beam\.smp|apache2|mariadbd|glance\-api"
ESTAB 0      0               127.0.0.1:54684          127.0.0.1:epmd  users:(("beam.smp",pid=814,fd=19))

 抓包过程中,将执行此命令,观察TCP建立情况。

3、Wireshark抓包

3.1 抓包目的

通过执行openstack --os-placement-api-version 1.2 resource class list --sort-column name查看OpenStack各组件之间的完整交互情况。

3.2 抓包方式

1、建议在Windows 11(10.0.20.1)上使用MobaXterm软件,登录到10.0.20.11,运行Wireshark,并捕获“Loopback: lo”端口的流量。

2、执行openstack命令

在win11(10.0.20.1)上使用SecureCRT软件打开一个新窗口,通过ssh连接到10.0.20.11,在osclient上执行相应操作:

root@controller:~# . admin-openrc 
root@controller ~(admin/amdin)# openstack --os-placement-api-version 1.2 resource class list --sort-column name

3、同时,在win11(10.0.20.1)上使用SecureCRT软件通过SSH登录到10.0.20.11,以监控TCP连接的建立情况。

root@controller:~# ss -tp | grep -E "memcached|beam\.smp|apache2|mariadbd|glance\-api|openstack"

 4、停止捕获数据包,然后开始分析。

3.3 抓包分析

3.3.1 TCP连接建立信息

在执行上述openstack命令的同时,记录下的TCP连接信息:

root@controller:~# ss -tp | grep -E "memcached|beam\.smp|apache2|mariadbd|glance\-api|openstack"
ESTAB      0      0               10.0.20.11:mysql          10.0.20.11:43428 users:(("mariadbd",pid=966,fd=148)) 
ESTAB      0      0               10.0.20.11:11211          10.0.20.11:59030 users:(("memcached",pid=811,fd=23)) 
CLOSE-WAIT 1      0               10.0.20.11:41884          10.0.20.11:5000  users:(("openstack",pid=22082,fd=3))
ESTAB      0      0               10.0.20.11:43424          10.0.20.11:mysql users:(("apache2",pid=6451,fd=20))  
ESTAB      0      0               10.0.20.11:59030          10.0.20.11:11211 users:(("apache2",pid=6458,fd=17))  
ESTAB      0      0               10.0.20.11:43428          10.0.20.11:mysql users:(("apache2",pid=6458,fd=12))  
ESTAB      0      0               10.0.20.11:56250          10.0.20.11:5000  users:(("apache2",pid=6458,fd=21))  
ESTAB      0      0                127.0.0.1:54684           127.0.0.1:epmd  users:(("beam.smp",pid=814,fd=19))  
ESTAB      0      0               10.0.20.11:39544          10.0.20.11:8778  users:(("openstack",pid=22082,fd=4))
ESTAB      0      0               10.0.20.11:mysql          10.0.20.11:43424 users:(("mariadbd",pid=966,fd=115)) 

 3.3.2 抓包结果

需要指出的是,在本次练习中,所有相关组件都在控制节点上进行交互,因此无法通过IP地址来区分不同服务,同时目前的wireshark版本抓包信息中,没有相关的进程信息。我们只能通过分析具体的报文来进行判断。对于某些报文,我们需要根据端口号来检查特定的TCP连接,并通过这些连接找到相应的PID号,然后根据这个PID号来确定具体的服务

例如,在上图的第3943号报文中,源端口是59030,目的端口是11211,无法确定是哪个服务发出的源端口,需要检查TCP连接(参见3.3.1节)。通过这种方式,我们发现相应的进程号(pid)是6458:

 根据PID 6458进行信息查询(参见2.1章节),可以确定是由placement服务发出的:

4、Mermaid绘制时序图

 附mermaid code:

sequenceDiagram
  autonumber
  participant C as OpenStackClient
  participant P as placement
  participant M as memcached
  participant K as keystone
  participant KD as keystone DB
  participant PD as placement DB 
  C ->> K: user admin scope to project admin, 发送username:admin/password:openstack
  Note left of C: 命令行中输入: <br/> openstack <br/>--os-placement-api-version 1.2 <br/>resource class list <br/>--sort-column name
  K ->> KD: Keystone第一次login keyston DB, 查询user admin的身份
  KD ->> K: ok
  K ->> C: user admin身份验证成功,Keystone生成admin token
  C ->> P: user admin向placement service发送GET /resource_classes HTTP/1.1,请求中包含之前从Keystone 获取的admin token
  P ->> PD: placement第一次Login placement DB,(没有进行实际的查询)
  PD ->> P: Response
  P ->> M: placement服务接收到请求,去memcache检查请求中的admin token
  Note right of M: 先检查memcached是否有admin token
  M ->> P: 没有,继续去keystone检查
  P ->> K: user placement scope to project service,发送username:placement/password:openstack
  Note right of P: placement首先要认证自己的身份!
  K ->> KD: Keystone第二次login, 查询user placement的身份
  KD ->> K: ok
  K ->> P: placement的身份验证成功,Keystone 生成placement token
  P ->> K: placement服务将admin token发送回 Keystone,请求验证admin token的有效性,请求中包含之前从 Keystone 获取的placement token
  Note right of P: placement拿着自己的token,去验证admin token
  K ->> KD: Keystone第三次login, 查询admin token
  KD ->> K: ok
  K ->> P: admin token有效,Keystone 返回给placement service
  P ->> M: please store admin token
  Note right of M: 保存一份到memcache
  M ->> P: stored
  P ->> PD: placement service继续查询placement db,没有重新login
  PD ->> P: 返回查询结果
  P ->> C: 返回查询结果

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

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

相关文章

反序列化漏洞vulhub靶场serial

环境搭建 下载 https://download.vulnhub.com/serial/serial.zip 解压出来就是这种 你会得到一个这样的文件&#xff0c;这里使用VMware新建一个虚拟机&#xff0c;这里记录比较重要的几部分。 这里就是使用我们刚才下过来的。 漏洞过程详解 1.信息收集 打开靶机&#xff0…

干货满满,从零到一:编程小白如何在大学成为编程大神?

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

Git(4) 解决Git相关问题的实用技巧

本文将介绍一些Git实用的技巧&#xff0c;实际操作中解决常见的Git问题。 问题1&#xff1a;将本地项目推送到远程仓库 如何将本地项目推送到远程仓库&#xff0c;包括处理常见错误的方法&#xff0c;并最终将代码推送到 main 分支。 步骤 1. 初始化本地仓库 确保已经在本地…

类和对象的深入了解6

1.初始化列表 初始化列表&#xff1a;以一个冒号开始&#xff0c;接着是一个以逗号分隔的数据成员列表&#xff0c;每个"成员变量"后面跟一个放在括 号中的初始值或表达式。 class Date { public:Date(int year, int month, int day): _year(year), _month(month),…

Cellpress|单细胞文章|单细胞转录和大队列食管癌免疫治疗

新辅助免疫检查点阻断 (ICB) 在可手术食管鳞状细胞癌 (ESCC) 中显示出希望&#xff0c;但缺乏可用的疗效生物标志物。该文章对接受新辅助 ICB 的 ESCC 患者的肿瘤进行单细胞 RNA 测序&#xff0c;发现一组表达SPRY1 (CD8 Tex-SPRY1) 的耗竭 CD8 T 细胞亚群&#xff0c;其显示…

72.结构体变量直接赋值

目录 一.结构体变量直接赋值 二.视频教程 一.结构体变量直接赋值 通过上节课的学习得出了一个结论&#xff1a;俩个相同类型的结构体变量直接可以只用赋值号进行赋值。 像这样&#xff1a; struct test {int a;int b; };int main(void) {struct test x {1,2};struct test …

反序列化靶机实战serial(保姆级教程)

一.信息收集 靶机地址下载&#xff1a;https://download.vulnhub.com/serial/serial.zip 打开靶机&#xff0c;在kali虚拟机中进行主机存活探测 可以知道靶机ip地址为192.168.133.171 然后扫描端口 可以发现有一个22端口跟80端口 然后接下来用kali扫描它的目录 可以发现有一…

10年仓库管理经验:“管、存、发、盘”一文搞定!

前段时间去一家仓储设备公司交流学习&#xff0c;和一位有着10年经验的老仓管聊了个痛快&#xff0c;从他那儿学到了不少仓库管理的实践方法。 回来自己整理了一套仓库管理高效的实用方法&#xff0c;现在就来跟大家伙儿聊聊仓库管理中那些常见问题&#xff0c;以及我是怎么琢…

vite构建vue3项目hmr不生效问题踩坑记录

vite构建vue3项目hmr不生效问题踩坑记录 hmr的好处 以下是以表格形式呈现的前端开发中HMR&#xff08;热模块替换&#xff09;带来的好处&#xff1a; 好处描述提升开发效率允许开发者在不刷新整个页面的情况下实时更新修改的代码&#xff0c;减少等待时间保持应用状态在模块…

技术分享| 前端性能优化——虚拟滚动(Virtual Scroll)

前端遇到大量数据&#xff08;尤其是大数据表&#xff09;的DOM 渲染时&#xff0c;通常会卡顿&#xff0c;需要考虑优化性能问题&#xff0c;这里针对DOM 渲染引出“虚拟滚动”方案&#xff0c; 详细请在以下各文章中详细了解&#xff1a; vue插件 vue-virtual-scroll-list解决…

C语言| 文件操作详解(二)

目录 四、有关文件的随机读写函数 4.1 fseek 4.2 ftell 4.3 rewind 五、判定文件读取结束的标准与读写文件中途发生错误的解决办法 5.1 判定文件读取结束的标准 5.2 函数ferror与feof 5.2.1 函数ferror 5.2.2 函数feof 在上一章中&#xff0c;我们主要介绍了文件类型…

鸿蒙系统开发【事件订阅】网络

事件订阅 介绍 本示例通过ohos.telephony.observer等接口订阅网络状态、信号状态、蜂窝数据、sim状态等事件&#xff0c;并获取状态变化返回的结果。 效果预览 使用说明 1.打开应用&#xff0c;开启所有订阅事件开关。 2.开关一次移动网络&#xff0c;触发网络状态变化。 …

Linux-4:Shell编程——基础语法(50%-100%)

目录 前言 一、数组 1.数组定义 2.关联数组 3.数组长度 二、运算符 1.算术运算符 2.关系运算符 3.布尔运算符 4.逻辑运算符 5.字符串运算符 6.文件测试运算符 三、read命令 1.接收用户输入 2.开启转义 3. -p 输入提示 4. -s 静默模式 -t 设置超时时间 5.读取…

Spark Steaming有状态转换实验

创建一个streaming目录 mkdir streaming 一、运行网络版的WordCount 1. 连接虚拟机后利用sudo打开hosts后加入红色方框内语句并保存&#xff1a; sudo vim /etc/hosts Netcat是一个用于TCP/UDP连接和监听的Linux工具, 主要用于网络传输及调试领域。先下载&#xff1a; sudo…

简明中医辨证施治小程序

这是一款学习中医辨证施治的好工具&#xff0c;将中医内科、妇科、儿科常见疾病的辨证施治进行整理&#xff0c;各种疾病的辨证分型、症状、治法、方剂选用等均编辑成简明的条目&#xff0c;一目了然&#xff0c;另外内含方剂学及中药学&#xff0c;内容包括常用方剂的出处、组…

GO goroutine状态流转

Gidle -> Grunnable newproc获取新的goroutine&#xff0c;并放置到P运行队列中 这也是go关键字之后实际编译调用的方法 func newproc(fn *funcval) {// 获取当前正在运行中的goroutinegp : getg()// 获取调用者的程序计数器地址&#xff0c;用于调试和跟踪pc : getcallerp…

量化小白也能自动化挖掘出6万+因子

最近逛某乎&#xff0c;碰到了这个问题&#xff1a;如何看待量化交易WorldQuant世坤大赛北大牛人提交了6万因子&#xff1f; 我的第一直觉&#xff0c;这肯定不是纯手工挖出来的&#xff0c;6w个因子&#xff0c;一天挖一个&#xff0c;节假日都不休息的话&#xff0c;需要164年…

轻松入门Linux—CentOS,直接拿捏 —/— <6>vim集合

一、Vim操作详解 1、linux彩蛋 输入命令python会启动Python解释器&#xff0c;允许你输入和执行Python代码。然后&#xff0c;输入import this会导入this模块&#xff0c;它是Python的一种彩蛋&#xff08;Easter egg&#xff09;&#xff0c;然后得到下列结果 选中这段结果复…

Nacos安装教程(全网最靠谱,最简单~)

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 本文将详细介绍 Nacos 的安装及使用。 官方网址&#xff1a;Nacos官网| Nacos 配置中心 | Nacos 下载| Nacos 官方…