Linux学习之HIS部署(4)

ElasticSearch部署

ElasticSearch资源
RabbitMQ资源
ElasticSearch服务部署
#OpenJDK环境部署
[root@Services ~]# yum clean all; yum repolist -v
...
Total packages: 8,265
[root@Services ~]# yum -y install java-1.8.0-openjdk-devel.x86_64   #安装OpenJDk
...
Complete!
[root@Services ~]#[root@Services ~]# ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el8_5.x86_64/ /usr/lib/jvm/jdk                                                    #创建JDK软链接
[root@Services ~]# vim /etc/bashrc                                  #配置环境变量
[root@Services ~]# tail -3 /etc/bashrc 
export JAVA_HOME="/usr/lib/jvm/jdk/"        #声明JAVA_HOME变量
export CLASSPATH=.                          #声明类库加载目录
export PATH=${JAVA_HOME}/bin/:$PATH         #声明PATH变量
[root@Services ~]# source /etc/bashrc       #刷新bash环境
[root@Services ~]# echo ${JAVA_HOME}                                #测试JAVA_HOME变量
/usr/lib/jvm/jdk/
[root@Services ~]# which java                           
/usr/lib/jvm/jdk/bin/java
[root@Services ~]# java -version
openjdk version "1.8.0_332"
OpenJDK Runtime Environment (build 1.8.0_332-b09)
OpenJDK 64-Bit Server VM (build 25.332-b09, mixed mode)
[root@Services ~]# #安装Elasticsearch服务
[root@Services ~]# ls elasticsearch-6.8.0.rpm 
elasticsearch-6.8.0.rpm
[root@Services ~]# yum -y localinstall ./elasticsearch-6.8.0.rpm #配置Elasticsearch服务
[root@Services ~]# vim /etc/elasticsearch/elasticsearch.yml 
[root@Services ~]# cat /etc/elasticsearch/elasticsearch.yml | grep -Pv "^\s*(#|$)"
node.name: Services                 #ES节点名称
path.data: /var/lib/elasticsearch   #ES数据存储路径
path.logs: /var/log/elasticsearch   #ES日志存储路径
network.host: 0.0.0.0               #监听地址
http.port: 9200                     #HTTP端口
[root@Services ~]##启动Elasticsearch服务
[root@Services ~]# systemctl enable elasticsearch.service   #设置服务开机自启动
[root@Services ~]# systemctl start elasticsearch.service    #启动Elasticsearch服务
[root@Services ~]# ss -antpul | grep java
tcp   LISTEN 0      128      *:9200      *:*    users:(("java",pid=9847,fd=209))
tcp   LISTEN 0      128      *:9300      *:*    users:(("java",pid=9847,fd=196))
[root@Services ~]# #测试Elasticsearch服务
[root@Services ~]# curl http://localhost:9200/          #访问9200端口,返回一段json数据
{"name" : "Services","cluster_name" : "elasticsearch","cluster_uuid" : "1cf7N861QBC_C0RE8gm0OA","version" : {"number" : "6.8.0","build_flavor" : "default","build_type" : "rpm","build_hash" : "65b6179","build_date" : "2019-05-15T20:06:13.172855Z","build_snapshot" : false,"lucene_version" : "7.7.0","minimum_wire_compatibility_version" : "5.6.0","minimum_index_compatibility_version" : "5.0.0"},"tagline" : "You Know, for Search"
}
ElasticSerach插件部署
#插件安装方法
#方式一:从官网下载ES插件,通常为ZIP格式,解压到/usr/share/elasticsearch/plugins/目录
#方式二:使用elasticsearch-plugin命令#elasticsearch-plugin install file://path/xx.zip#elasticsearch-plugin install http://addresss/xx#elasticsearch-plugin install ftp://address/xx
#方式三:容器
# IK分词器插件
#本地安装IK分词器插件
[root@Services ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin list   #查看插件列表
[root@Services ~]# ls elasticsearch-analysis-ik-6.8.0.zip 
elasticsearch-analysis-ik-6.8.0.zip
[root@Services ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin install    file:///root/elasticsearch-analysis-ik-6.8.0.zip                            #安装插件
-> Downloading file:///root/elasticsearch-analysis-ik-6.8.0.zip
[=================================================] 100%   
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.Continue with installation? [y/N]y
-> Installed analysis-ik
[root@Services ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin list   #查看插件列表
analysis-ik
[root@Services ~]# #测试IK分词器
[root@Services ~]# systemctl restart elasticsearch.service          #重启服务加载插件[root@Services ~]#  curl -H "Content-Type: application/json" -XPOST http://localhost:9200/_analyze?pretty -d '
{
"analyzer": "standard",
"text": "华为手机"
}'                                                                  #测试标准分词
{"tokens" : [{"token" : "华","start_offset" : 0,"end_offset" : 1,"type" : "<IDEOGRAPHIC>","position" : 0},{"token" : "为","start_offset" : 1,"end_offset" : 2,"type" : "<IDEOGRAPHIC>","position" : 1},{"token" : "手","start_offset" : 2,"end_offset" : 3,"type" : "<IDEOGRAPHIC>","position" : 2},{"token" : "机","start_offset" : 3,"end_offset" : 4,"type" : "<IDEOGRAPHIC>","position" : 3}]
}
[root@Services ~]#[root@Services ~]# curl -H "Content-Type: application/json" -XPOST http://localhost:9200/_analyze?pretty -d '   
{"analyzer": "ik_smart","text": "华为手机"
}'                                                                  #测试IK分词器
{"tokens" : [{"token" : "华为","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "手机","start_offset" : 2,"end_offset" : 4,"type" : "CN_WORD","position" : 1}]
}
HEAD 插件(容器部署)
#安装podman工具
[root@Services ~]# yum clean all; yum repolist -v
...
Total packages: 8,265
[root@Services ~]# yum -y install podman                    #安装podman
Complete!
[root@Services ~]# podman --version                         #确认podman安装
podman version 4.0.2
[root@Services ~]# #导入ES-HEAD镜像
[root@Services ~]# ls elasticsearch-head.tar 
elasticsearch-head.tar
[root@Services ~]# podman images                            #查看本地已有镜像
REPOSITORY  TAG         IMAGE ID    CREATED     SIZE
[root@Services ~]# podman load -i elasticsearch-head.tar    #导入ES-HEAD插件镜像
Getting image source signatures
Copying blob 604c78617f34 done  
Copying blob 60a0858edcd5 done  
Copying blob b6ca02dfe5e6 done  
Copying blob 0a5e2b2ddeaa done  
Copying blob 53c779688d06 done  
Copying blob fa18e5ffd316 done  
Copying blob cf2eea3d6e04 done  
Copying blob d556e03b8284 done  
Copying blob 95ea76455b84 done  
Copying blob ce5705289a91 done  
Copying blob d09533ddfc0d done  
Copying blob eb415bbb4658 done  
Copying blob f418a5a1e636 done  
Copying config d008a8ccd0 done  
Writing manifest to image destination
Storing signatures
Loaded image(s): localhost/elasticsearch-head:latest
[root@Services ~]# podman images                            #确认ES-HEAD镜像已导入
REPOSITORY                    TAG         IMAGE ID      CREATED      SIZE
localhost/elasticsearch-head  latest      d008a8ccd029  7 weeks ago  862 MB
[root@Services ~]# #启动ES-HEAD容器
[root@Services ~]# podman ps                                #查看有运行的容器,应为空
CONTAINER ID  IMAGE       COMMAND     CREATED     STATUS      PORTS       NAMES
[root@Services ~]# podman run -d --name es-head --hostname es-head -p 9100:9100 localhost/elasticsearch-head:latest                         #后台运行ES-HEAD容器
f222cb764271574148d31b184bd0aebda419ce3ebd43843c0ff8f1f4dc6ba53c
[root@Services ~]# podman ps                                #确认ES-HEAD容器已运行
CONTAINER ID  IMAGE                                COMMAND               CREATED        STATUS            PORTS                   NAMES
f222cb764271  localhost/elasticsearch-head:latest  /bin/sh -c grunt ...  2 seconds ago  Up 2 seconds ago  0.0.0.0:9100->9100/tcp  es-head
[root@Services ~]# ss -antpul | grep 9100                   #确认9100端口被监听
tcp   LISTEN 0      128          0.0.0.0:9100      0.0.0.0:*    users:(("conmon",pid=12651,fd=5))
[root@Services ~]# #修改Elasticsearch配置,开启跨域访问
[root@Services ~]# vim /etc/elasticsearch/elasticsearch.yml 
[root@Services ~]# sed -rn '59,61p' /etc/elasticsearch/elasticsearch.yml 
http.port: 9200
http.cors.enabled: true         #开启HTTP跨域访问支持
http.cors.allow-origin: "*"     #允许跨域的访问范围
[root@Services ~]# systemctl restart elasticsearch.service 
[root@Services ~]# ss -antpul | grep java
tcp   LISTEN 0      128    *:9200      *:*    users:(("java",pid=12764,fd=214))
tcp   LISTEN 0      128    *:9300      *:*    users:(("java",pid=12764,fd=201))
[root@Services ~]# #测试访问Elasticsearch-HEAD插件:http://192.168.88.50:9100/

在这里插入图片描述

Elasticsearch API
#测试指定API
[root@Services ~]# curl -H "Content-Type: application/json" -XGET http://localhost:9200/_cat/health
1677142976 09:02:56 elasticsearch green 1 1 0 0 0 0 0 0 - 100.0%
[root@Services ~]# curl -H "Content-Type: application/json" -XGET http://localhost:9200/_cat/health?v
epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1677142979 09:02:59  elasticsearch green           1         1      0   0    0    0        0             0                  -                100.0%
[root@Services ~]##创建索引(必做练习)
[root@Services ~]# curl -H "Content-Type: application/json" -XPUT http://localhost:9200/tedu/ -d '
{ "settings": {"index": {"number_of_shards": 1,"number_of_replicas": 0}}
}'
{"acknowledged":true,"shards_acknowledged":true,"index":"tedu"}

在这里插入图片描述

#调用API批量导入数据
[root@Services ~]# ls data.sh logs.jsonl accounts.json 
accounts.json  data.sh  logs.jsonl
[root@Services ~]# cat data.sh 
#!/bin/bash
curl -H "Content-Type: application/json" -XPUT http://localhost:9200/account/user/_bulk --data-binary @accounts.json
curl -H "Content-Type: application/json" -XPUT http://localhost:9200/_bulk --data-binary @logs.jsonl
[root@Services ~]# bash data.sh 

在这里插入图片描述

RabbitMQ服务

RabbitMQ部署
#安装Erlang
[root@Services ~]# yum clean all; yum repolist -v
[root@Services ~]# ls erlang-25.2-1.el8.x86_64.rpm 
erlang-25.2-1.el8.x86_64.rpm
[root@Services ~]# yum -y localinstall ./erlang-25.2-1.el8.x86_64.rpm #安装RabbitMQ
[root@Services ~]# ls rabbitmq-server-3.11.5-1.el8.noarch.rpm 
rabbitmq-server-3.11.5-1.el8.noarch.rpm
[root@Services ~]# yum -y localinstall ./rabbitmq-server-3.11.5-1.el8.noarch.rpm #启动RabbitMQ服务
[root@Services ~]# systemctl enable rabbitmq-server.service #设置RabbitMQ开机自启动    
[root@Services ~]# systemctl start rabbitmq-server.service  #启动RabbitMQ服务
[root@Services ~]# ss -antpul | grep :5672                  #确认5672端口监听
tcp   LISTEN 0      128    *:5672     *:*    users:(("beam.smp",pid=13298,fd=35))[root@Services ~]# rabbitmqctl status                       #查看RabbitMQ服务状态
Status of node rabbit@Services ...
RuntimeOS PID: 13298
OS: Linux
Uptime (seconds): 15
Is under maintenance?: false
RabbitMQ version: 3.11.5
RabbitMQ release series support status: supported
Node name: rabbit@Services
Erlang configuration: Erlang/OTP 25 [erts-13.1.3] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [jit:ns]
Crypto library: OpenSSL 1.1.1k  FIPS 25 Mar 2021
Erlang processes: 274 used, 1048576 limit
Scheduler run queue: 1
Cluster heartbeat timeout (net_ticktime): 60PluginsEnabled plugin file: /etc/rabbitmq/enabled_plugins
Enabled plugins:Data directoryNode data directory: /var/lib/rabbitmq/mnesia/rabbit@Services
Raft data directory: /var/lib/rabbitmq/mnesia/rabbit@Services/quorum/rabbit@ServicesConfig filesLog file(s)* /var/log/rabbitmq/rabbit@Services.log* /var/log/rabbitmq/rabbit@Services_upgrade.log* <stdout>Alarms(none)MemoryTotal memory used: 0.1288 gb
Calculation strategy: rss
Memory high watermark setting: 0.4 of available memory, computed to: 1.6343 gbreserved_unallocated: 0.0809 gb (62.85 %)
code: 0.0321 gb (24.94 %)
other_proc: 0.0189 gb (14.65 %)
other_system: 0.0134 gb (10.44 %)
other_ets: 0.0027 gb (2.14 %)
atom: 0.0014 gb (1.07 %)
metrics: 0.0006 gb (0.43 %)
binary: 0.0002 gb (0.16 %)
mnesia: 0.0001 gb (0.06 %)
plugins: 0.0 gb (0.03 %)
msg_index: 0.0 gb (0.02 %)
quorum_ets: 0.0 gb (0.02 %)
quorum_queue_dlx_procs: 0.0 gb (0.0 %)
quorum_queue_procs: 0.0 gb (0.0 %)
stream_queue_procs: 0.0 gb (0.0 %)
stream_queue_replica_reader_procs: 0.0 gb (0.0 %)
allocated_unused: 0.0 gb (0.0 %)
connection_channels: 0.0 gb (0.0 %)
connection_other: 0.0 gb (0.0 %)
connection_readers: 0.0 gb (0.0 %)
connection_writers: 0.0 gb (0.0 %)
mgmt_db: 0.0 gb (0.0 %)
queue_procs: 0.0 gb (0.0 %)
queue_slave_procs: 0.0 gb (0.0 %)
stream_queue_coordinator_procs: 0.0 gb (0.0 %)File DescriptorsTotal: 2, limit: 32671
Sockets: 0, limit: 29401Free Disk SpaceLow free disk space watermark: 0.05 gb
Free disk space: 5.8313 gbTotalsConnection count: 0
Queue count: 0
Virtual host count: 1ListenersInterface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
[root@Services ~]# #启用RabbitMQ网页管理插件
[root@Services ~]# rabbitmq-plugins list                        #列出所有插件
[root@Services ~]# rabbitmq-plugins enable rabbitmq_management  #启动网页管理插件
Enabling plugins on node rabbit@Services:
rabbitmq_management
The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch
Applying plugin configuration to rabbit@Services...
The following plugins have been enabled:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatchstarted 3 plugins.
[root@Services ~]# rabbitmq-plugins list
Listing plugins with pattern ".*" ...Configured: E = explicitly enabled; e = implicitly enabled| Status: * = running on rabbit@Services|/
[  ] rabbitmq_amqp1_0                  3.11.5
[  ] rabbitmq_auth_backend_cache       3.11.5
[  ] rabbitmq_auth_backend_http        3.11.5
[  ] rabbitmq_auth_backend_ldap        3.11.5
[  ] rabbitmq_auth_backend_oauth2      3.11.5
[  ] rabbitmq_auth_mechanism_ssl       3.11.5
[  ] rabbitmq_consistent_hash_exchange 3.11.5
[  ] rabbitmq_event_exchange           3.11.5
[  ] rabbitmq_federation               3.11.5
[  ] rabbitmq_federation_management    3.11.5
[  ] rabbitmq_jms_topic_exchange       3.11.5
[E*] rabbitmq_management               3.11.5
[e*] rabbitmq_management_agent         3.11.5
[  ] rabbitmq_mqtt                     3.11.5
[  ] rabbitmq_peer_discovery_aws       3.11.5
[  ] rabbitmq_peer_discovery_common    3.11.5
[  ] rabbitmq_peer_discovery_consul    3.11.5
[  ] rabbitmq_peer_discovery_etcd      3.11.5
[  ] rabbitmq_peer_discovery_k8s       3.11.5
[  ] rabbitmq_prometheus               3.11.5
[  ] rabbitmq_random_exchange          3.11.5
[  ] rabbitmq_recent_history_exchange  3.11.5
[  ] rabbitmq_sharding                 3.11.5
[  ] rabbitmq_shovel                   3.11.5
[  ] rabbitmq_shovel_management        3.11.5
[  ] rabbitmq_stomp                    3.11.5
[  ] rabbitmq_stream                   3.11.5
[  ] rabbitmq_stream_management        3.11.5
[  ] rabbitmq_top                      3.11.5
[  ] rabbitmq_tracing                  3.11.5
[  ] rabbitmq_trust_store              3.11.5
[e*] rabbitmq_web_dispatch             3.11.5
[  ] rabbitmq_web_mqtt                 3.11.5
[  ] rabbitmq_web_mqtt_examples        3.11.5
[  ] rabbitmq_web_stomp                3.11.5
[  ] rabbitmq_web_stomp_examples       3.11.5
[root@Services ~]# ss -antpul | grep :15672
tcp LISTEN 0 128   0.0.0.0:15672  0.0.0.0:*    users:(("beam.smp",pid=13298,fd=37))#访问RabbitMQ管理页面: http://192.168.88.50:15672/

在这里插入图片描述

RabbitMQ服务应用
#RabbitMQ创建用户
[root@Services ~]# rabbitmqctl list_users           #列出RabbitMQ已有用户
Listing users ...
user    tags
guest   [administrator]
[root@Services ~]# rabbitmqctl add_user admin       #添加admin用户
Adding user "admin" ...
Password: 
hisadmin        #密码必须设置为hisadmin,为后续项目使用
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
[root@Services ~]# rabbitmqctl list_users           #列出RabbitMQ已有用户
Listing users ...
user    tags
admin   []
guest   [administrator]# 用户标签管理
#RabbitMQ用户标签解析 #超级管理员(administrator)#可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。#监控者(monitoring)#可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)#策略制定者(policymaker)#可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。#普通管理者(management)#仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。#其他(guest)#无法登陆管理控制台,通常就是普通的生产者和消费者#给admin用户添加administrator标签
[root@Services ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
[root@Services ~]# rabbitmqctl list_users
Listing users ...
user    tags
admin   [administrator]
guest   [administrator]
# 虚拟主机管理
#创建/his虚拟主机
[root@Services ~]# rabbitmqctl list_vhosts          #列出已有虚拟主机
Listing vhosts ...  
name
/
[root@Services ~]# rabbitmqctl add_vhost /his       #创建/his虚拟主机,后续项目使用
Adding vhost "/his" ...
[root@Services ~]# rabbitmqctl list_vhosts          #列出已有虚拟主机
Listing vhosts ...
name
/his
/
# 设置用户访问虚拟主机权限
#设置admin用户对/his虚拟主机有所有权限
[root@Services ~]# rabbitmqctl list_user_permissions admin      #查看admin用户权限
Listing permissions for user "admin" ...
#设置权限,第一个.*表示允许操作配置虚拟机的权限,第二个".*"表示可以修改虚拟机,第三个".*"表示可以读虚拟机
[root@Services ~]# rabbitmqctl set_permissions -p /his admin ".*" ".*" ".*" 
Setting permissions for user "admin" in vhost "/his" ...
[root@Services ~]# rabbitmqctl list_user_permissions admin      #查看admin用户权限
Listing permissions for user "admin" ...
vhost   configure       write   read
/his    .*              .*      .*

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

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

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

相关文章

微信删除好友对方知道吗?如何加回微信好友?

微信是我们日常生活中使用最多的社交软件&#xff0c;很多小伙伴在使用微信时都曾发出过这样的疑问&#xff1a;微信删除好友对方知道吗&#xff1f;当自己在微信中删除某人后&#xff0c;对方是否会收到信息提醒&#xff1f;另外&#xff0c;如果删除好友后感到后悔&#xff0…

start()方法源码分析

当我们创建好一个线程之后&#xff0c;可以调用.start()方法进行启动&#xff0c;start()方法的内部其实是调用本地的start0()方法&#xff0c; 其实Thread.java这个类中的方法在底层的Thread.c文件中都是一一对应的&#xff0c;在Thread.c中start0方法的底层调用了jvm.cpp文件…

seata的启动与使用

1 下载seata 下载地址&#xff1a;https://github.com/seata/seata/releases/v0.9.0/ 1.1 修改配置文件 将下载得到的压缩包进行解压&#xff0c;进入conf目录&#xff0c;调整下面的配置文件&#xff1a; registry.conf registry {type "nacos"nacos {serverA…

Spring 学习(八)事务管理

1. 事务 1.1 事务的 ACID 原则 数据库事务&#xff08;transaction&#xff09;是访问并可能操作各种数据项的一个数据库操作序列。事务必须满足 ACID 原则——即原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Iso…

uniapp:tabBar点击后设置动画效果

APP端不支持dom操作&#xff0c;也不支持active伪类&#xff0c;绞尽脑汁也没办法给uniapp原生的tabBar点击加动画效果&#xff0c;所以最终只能舍弃原生tabBar&#xff0c;改用自定义tabBar。 自定义tabBar的原理是&#xff0c;页面的上部分分别是tabBar对应的页面组件&#…

Matlab绘图函数subplot、tiledlayout、plot和scatter

一、绘图函数subplot subplot(m,n,p)将当前图窗划分为 mn 网格&#xff0c;并在 p 指定的位置创建坐标区。MATLAB按行号对子图位置进行编号。第一个子图是第一行的第一列&#xff0c;第二个子图是第一行的第二列&#xff0c;依此类推。如果指定的位置已存在坐标区&#xff0c;…

计算物理专题----随机游走实战

计算物理专题----随机游走实战 Problem 1 Implement the 3D random walk 拟合线 自旋的 拟合函数&#xff08;没有数学意义&#xff09; 参数&#xff1a;0.627,3.336,0.603&#xff0c;-3.234 自由程满足在一定范围内的均匀分布以标准自由程为单位长度&#xff0c;…

node的服务端对接科大讯飞-火星ai解决方案

序&#xff1a; 官方给的node对接火星的demo其实只适用于node开发的web应用&#xff0c;但是对于纯node 作为服务端&#xff0c;也就是作为webapi来调用&#xff0c;你会发现&#xff0c;location.host直接是获取不到location的。这个时候&#xff0c;其实要单独起个wss的服务的…

C++: stack 与 queue

目录 1.stack与queue stack queue 2.priority_queue 2.1相关介绍 2.2模拟实现priority_queue --仿函数: --push --pop --top --size --empty --迭代器区间构造 2.3仿函数 3.容器适配器 stack模拟实现 queue模拟实现 学习目标: 1.stack和queue介绍与使用 2.pri…

PHP8中伪变量“$this->”和操作符“::”的使用-PHP8知识详解

对象不仅可以调用自己的变量和方法&#xff0c;也可以调用类中的变量和方法。PHP8通过伪变量“$this->”和操作符“::”来实现这些功能。 1.伪变量“$this->” 在通过对象名->方法调用对象的方法时&#xff0c;如果不知道对象的名称&#xff0c;而又想调用类中的方法…

基于微信小程序的校园代送跑腿系统(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

Mooctest

开发者 测试框架junit 1.字符串不能除 2.a给了c 3. 4. 5.输入是否>0 6.注释

Python中的用法与常见问题解析

装饰器是Python语言中一种强大且常用的概念。通过装饰器&#xff0c;我们可以在不修改原始函数代码的情况下&#xff0c;给函数添加额外的功能&#xff0c;比如日志记录、性能分析、输入验证等。在本文中&#xff0c;我们将深入探讨Python中装饰器的用法和常见问题&#xff0c;…

Leetcode刷题笔记--Hot51-60

1--环形链表II 主要思路&#xff1a; 快慢指针&#xff0c;快指针每次走两步&#xff0c;慢指针每次走一步&#xff1b; 第一次相遇时&#xff0c;假设慢指针共走了 f 步&#xff0c;则快指针走了 2f 步&#xff1b; 假设起点到环入口结点的长度为 a&#xff08;不包括入口结点…

【7.Vue 利用Heatmap.js 制作自定义热力图】

1.效果 2.背景 需要根据后端检测的设备的数值显示设备周围的清洁度,用户希望用热力图的方式来显示,于是在网上找了资料,发现可以用Heatmap.js来实现。 Heatmap.js 官网:https://www.patrick-wied.at/static/heatmapjs/ 3.引入组件 安装Heatmap.js npm install Heatmap.…

Nginx之带宽限制解读

目录 基本介绍 指令配置 limit_rate limit_rate_after 实战测试 原理&#xff1a; 令牌桶算法 基本介绍 在高负载的网络环境下&#xff0c;为了保持服务的稳定性&#xff0c;限速 (download rate) 是一种必要的操控拜访量的手法。Nginx 是一款高性能的 Web 服务器和反向代…

踩中AIGC 美图看清自己“工具”本职

日前&#xff0c;美图公司发布 2023 年中期业绩&#xff0c;实现总收入 12.61 亿元&#xff0c;同比增长 29.8%&#xff1b;实现经调整后归母净利润 1.51 亿元&#xff0c;同比增长 320.4%&#xff0c;利润增速是收入增速的十倍。同时&#xff0c;在 AIGC 的加持下&#xff0c;…

Verilog零基础入门(边看边练与测试仿真)-状态机-笔记(7-10讲)

文章目录 第七讲第八讲第九讲第十讲 第七讲 1、最简单的状态机-三角波发生器 1、两种状态的代码&#xff1a; //最简单的状态机&#xff0c;三角波发生器&#xff1b; timescale 1ns/10ps module tri_gen(clk,res,d_out); input clk; input res; o…

【Linux】【网络】传输层协议:TCP

文章目录 TCP 协议1. TCP 协议段格式2. TCP 报头解析3. TCP 的可靠性4. 面向字节流5. 粘包问题6. 连接队列维护 TCP 的 确认应答机制TCP 的 超时重传机制TCP 的 三次握手TCP 的 四次挥手setsockopt 函数&#xff1a;设置套接字选项&#xff0c;解决 TIME_WAIT 状态引起的 bind …

在B站上如何把已经上传的视频做成合集?

参考视频: 【在B站上如何把已经上传的视频做成合集&#xff1f;】 https://www.bilibili.com/video/BV1Uf4y1G7eR/?share_sourcecopy_web&vd_source8af85e60c2df9af1f0fd23935753a933 【B站投稿视频合集的几种方式最全攻略】 https://www.bilibili.com/video/BV1jZ4y1h7…