草庐IT

Apache 深入优化

微笑的段嘉许 2023-03-28 原文

Apache 深入优化

?博客主页: ​​微笑的段嘉许博客主页​

?微信公众号:微笑的段嘉许

?欢迎关注?点赞?收藏⭐留言?

?本文由微笑的段嘉许原创!

?51CTO首发时间:?2023年2月7日?

✉️坚持和努力一定能换来诗与远方!

?作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

不要偷走我小火车哦~ ~ ~


本文介绍

Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。本篇博客主要讲解Apache的网页优化与安全,Apache的理论讲解与具体安装可以参考​​源代码配置安装Apache​

详情介绍

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

​ Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。​​它可以运行在几乎所有广泛使用的计算机平台上。​

​ Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

Apache的诞生极富有戏剧性。当NCSAWWW服务器项目停顿后,那些使用NCSAWWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。


?实验配置与实验

拓扑图

推荐步骤

  • 在 Centos01 安装 Apache 服务,配置 Apache 服务设置网站主页
  • 在 Centos02 配置 DNS 服务器使用 ​​www.duanjiaxu.com​
  • 在 Centos01 配置 Apache 优化 prefork 和 worker 工作模式配置压力测试验证
实验步骤

一、在Centos01安装Apache服务,配置Apache服务设置网站主页

1、在Centos01上安装apache服务

1)从系统光盘切换到云计算光盘

2)挂载云计算光盘

[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
3)解压httpd程序到/usr/src

[root@centos01 ~]# tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src/
[root@centos01 ~]# cd /usr/src/httpd-2.2.17/
4)编译安装

[root@centos01 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
[root@centos01 httpd-2.2.17]# make && make install
5)查看是否安装成功

[root@centos01 httpd-2.2.17]# ls /usr/local/
bin etc games httpd include lib lib64 libexec sbin share src
6)生成服务控制文件

[root@centos01 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //生成服务控制文件
[root@centos01 ~]# chmod +x /etc/init.d/httpd //添加执行权限
[root@centos01 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ //优化命令

2、配置网站

1)设置apache服务开机自启

root@centos01 ~]# vim /etc/init.d/httpd //进入apache服务控制文件
----
2 #chkconfig:35 80 21 //运行级 3,5 启动,启动优先权为80,停止优先权为21。
3 #description:Apache Server //描述
---
[root@centos01 ~]# chkconfig --add httpd //添加httpd服务
[root@centos01 ~]# chkconfig --level 35 httpd on //设置开机自启
[root@centos01 ~]# httpd -t //检查配置文件修改是否有误
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
Syntax OK

3、配置apache服务设置网站主页

1)创建网站根目录

[root@centos01 ~]# mkdir /www //创建网站根目录
[root@centos01 ~]# echo "www.duanjiaxu.com" > /www/index.html //设置网站主页
2)修改apache主配置文件

[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf //进入主配置文件
98 ServerName www.duanjiaxu.com:80 //域名和端口号
105 DocumentRoot "/www" //网站根目录
132 <Directory "/www"> //授权网站根目录
133 Options Indexes FollowSymLinks134 AllowOverride None135 Order allow,deny136 Allow from all
137 </Directory>
143 <IfModule dir_module>
144 DirectoryIndex index.html
145 </IfModule>
3)重新启动apache服务

[root@centos01 ~]# httpd -t //检查配置文件是否修改有误
Syntax OK
[root@centos01 ~]# /etc/init.d/httpd restart //重新启动apache
httpd not running, trying to start
[root@centos01 ~]# netstat -anptu | grep httpd //监听网卡
tcp6 0 0 :::80 :::* LISTEN 92467/httpd
4)配置IP地址

TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
DNS1=192.168.100.20
[root@centos01 ~]# systemctl restart network //重新启动网卡
[root@centos01 ~]# cat /etc/resolv.conf //查看DNS是否生效
# Generated by NetworkManager
nameserver 192.168.100.20

二、​​在Centos02配置DNS服务器使用www.duanjiaxu.com​

1、在Centos02上安装DNS服务

1)配置IP地址和DNS

[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.20 //IP地址
NETMASK=255.255.255.0 //子网掩码
DNS1=192.168.100.20 //DNS
----
[root@centos02 ~]# systemctl restart network //重新启动网卡服务
[root@centos02 ~]# cat /etc/resolv.conf //查看DNS是否配置成功
# Generated by NetworkManager
nameserver 192.168.100.20

2、安装DNS服务

1)挂载系统光盘

[root@centos02 ~]# mount /dev/cdrom /mnt/ //挂载系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/ //查看系统光盘是否挂载成功
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
2)安装DNS程序包

[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:bind-32:9.9.4-50.el7 ################################# [100%]
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:bind-chroot-32:9.9.4-50.el7 ################################# [100%]

3、修改DNS配置文件

1)修改DNS主配置文件

[root@centos02 ~]# echo "" > /etc/named.conf //清空主配置文件
[root@centos02 ~]# vim /etc/named.conf //进入到主配置文件
----
options {
listen-on port 53 { any; };
};
zone "duanjiaxu.com" IN {
type master;
file "var/named/duanjiaxu.com.zone";
};
[root@centos02 ~]# named-checkconf /etc/named.conf //检查主配置文件是否修改正确

2)修改DNS区域配置文件

[root@centos02 ~]# vim /var/named/duanjiaxu.com.zone //进入区域配置文件
----
$TTL 86400
@ SOA duanjiaxu.com. root.duanjiaxu.com. (
2023020210
1H
15M
1W
1D
)
@ NS centos02.duanjiaxu.com.
centos02 A 192.168.100.20
www A 192.168.100.10

[root@centos02 ~]# named-checkzone duanjiaxu.com /var/named/duanjiaxu.com.zone //检查主配置文件是否修改成功
zone duanjiaxu.com/IN: loaded serial 2023020210
OK
----
[root@centos02 ~]# systemctl start named //启动DNS服务
[root@centos02 ~]# systemctl enable named //设置开机自启

4、验证

1)查看DNS服务是否已经启动

[root@centos02 ~]# netstat -anptu | grep named
tcp 0 0 192.168.100.20:53 0.0.0.0:* LISTEN 42964/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 42964/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 42964/named
tcp6 0 0 ::1:953 :::* LISTEN 42964/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 42964/named
udp 0 0 192.168.100.20:53 0.0.0.0:* 42964/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 42964/named
2)查看是否能够成功解析域名

[root@centos02 ~]# nslookup www.duanjiaxu.com
Server: 192.168.100.20
Address: 192.168.100.20#53

Name: www.duanjiaxu.com
Address: 192.168.100.10
3)使用win10虚拟机验证

三、在Centos01配置Apache优化prefork和worker工作模式压力测试验证

1、配置apache优化prefork工作模式

1)查看apache默认的工作模式

[root@centos01 ~]# httpd -V
Server version: Apache/2.2.17 (Unix)
Server built: Feb 7 2023 18:20:02
Server's Module Magic Number: 20051115:25
Server loaded: APR 1.4.2, APR-Util 1.3.10
Compiled using: APR 1.4.2, APR-Util 1.3.10
Architecture: 64-bit
Server MPM: Prefork //默认Prefork工作模式
threaded: no
forked: yes (variable process count)
2)优化prefork工作模式

[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf
注释掉52~58行
52 # StartServers 2
53 # MaxClients 150
54 # MinSpareThreads 25
55 # MaxSpareThreads 75
56 # ThreadsPerChild 25
57 # MaxRequestsPerChild 0
58 #</IfModule>
---
36 <IfModule mpm_prefork_module>
37 StartServers 5 //启动进程数
38 Serverlimit 200 //最大进程数
39 MinSpareServers 5 //最小空闲进程,空闲小于当前值自己创建
40 MaxSpareServers 10 //空闲进程大于当前值自己kill掉

41 MaxClients 150 //最大并发请求数必须前150处理完处理第151
42 MaxRequestsPerChild 0 //每个子进程最大处理请求数0不限制,可以防止内存外溢 和负载下降可以减少子进程数
43 </IfModule>
3)查看prefork的进程信息

[root@centos01 ~]# ps -ef | grep http
root 935 1 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 957 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 958 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 959 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 960 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
daemon 960 935 0 03:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k start
4)进行压力测试

[root@centos01 ~]# ab -n14000 -c900 www.duanjiaxu.com/index.html
5)再查看Prefork的进程信息(进程数增加)

[root@centos01 ~]# ps -ef | grep httpd
root 92467 1 0 19:22 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92651 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92652 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92653 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92654 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 92655 92467 0 19:32 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 94815 92467 0 22:08 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95029 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95030 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95031 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95032 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95033 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95034 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95036 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95037 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95038 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95040 92467 0 22:24 ? 00:00:00 /usr/local/httpd/bin/httpd -k restart
daemon 95041 92467 0 22:24 ? 00:00:00

2、管理Apache的worker工作模式

1)修改apache的工作模式worker

[root@centos01 ~]# rm -rf /usr/src/httpd-2.2.17/ //删除apache根目录下的所有文件
[root@centos01 ~]# tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src/ //解压apache源代码程序
[root@centos01 ~]# cd /usr/src/httpd-2.2.17/ //切换到apache根目录
[root@centos01 ~]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --with-mpm=worker //安装worker模块
[root@centos01 httpd-2.2.17]# make && make install //编译安装
[root@centos01 ~]# httpd -l //检查是否安装成功

2)查看修改后的工作模式

[root@centos01 ~]# httpd -V

3)修改Apache主配置文件加载worker配置

[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf
---
339 Include conf/extra/httpd-mpm.conf
4)修改Apache工作模式配置文件

[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf
---
注释掉36~43行
36 #<IfModule mpm_prefork_module>
37 # StartServers 5
38 # Serverlimit 200
39 # MinSpareServers 5
40 # MaxSpareServers 10
41 # MaxClients 150
42 # MaxRequestsPerChild 0
43 #</IfModule>
---
52 <IfModule mpm_worker_module>
53 StartServers 2 //启动进程数
54 ServerLimit 200 //最大进程数
56 MaxClients 1200 //最大连接并大请求
57 MinSpareThreads 25 //最小空闲线程
58 MaxSpareThreads 75 //最大空闲线程
59 ThreadsPerChild 25 //每个进程默认处理线程数
60 MaxRequestsPerChild 75 //每个子进程最大处理请求数0不限制
61 </IfModule>

5)重新启动apache服务

[root@centos01 ~]# httpd -t //检查配置文件修改是否有误
Syntax OK
[root@centos01 ~]# systemctl restart httpd //重新启动apache服务
[root@centos01 ~]# netstat -anptu | grep httpd //监听网卡
tcp6 0 0 :::80 :::* LISTEN 73816/httpd
6)查看线程数

[root@centos01 ~]# pstree -a
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─atd
├─auditd─┬─audispd─┬─sedispatch
│ │ └─{audispd}
│ └─{auditd}
├─avahi-daemon───avahi-daemon
├─chronyd
├─dnsmasq───dnsmasq
├─gssproxy───5*[{gssproxy}]
├─httpd─┬─httpd
│ └─2*[httpd───26*[{httpd}]]
7)压力测试

[root@centos01 ~]# ab -n14000 -c900 www.duanjiaxu.com/index.html
---
├─httpd -k start
│ ├─httpd -k start
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]
│ ├─httpd -k start
│ │ └─26*[{httpd}]

?作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

有关Apache 深入优化的更多相关文章

  1. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  2. Ruby 缺少常量表达式优化? - 2

    我希望Ruby的解析器会进行这种微不足道的优化,但似乎并没有(谈到YARV实现,Ruby1.9.x、2.0.0):require'benchmark'deffib1a,b=0,1whileb由于这两种方法除了在第二种方法中使用预定义常量而不是常量表达式外是相同的,因此Ruby解释器似乎在每个循环中一次又一次地计算幂常数。是否有一些Material说明为什么Ruby根本不进行这种基本优化或只在某些特定情况下进行? 最佳答案 很抱歉给出了另一个答案,但我不想删除或编辑我之前的答案,因为它下面有有趣的讨论。正如JörgWMittag所说,

  3. ruby-on-rails - 优化读取数据库和写入csv文件 - 2

    我正在尝试从数据库中读取大量单元格(超过100.000个)并将它们写入VPSUbuntu服务器上的csv文件。碰巧服务器没有足够的内存。我正在考虑一次读取5000行并将它们写入文件,然后再读取5000行,等等。我应该如何重构我当前的代码以使内存不会被完全消耗?这是我的代码:defwrite_rows(emails)File.open(file_path,"w+")do|f|f该函数由sidekiqworker调用:write_rows(user.emails)感谢您的帮助! 最佳答案 这里的问题是,当您调用emails.each时,

  4. ruby-on-rails - Phusion Passenger 不在 Apache 上工作 - 2

    更新:当输入“passenger-memory-stats”时,我显示:---Passengerprocesses---Processes:0我该如何解决这个问题?为什么即使我在httpd.conf中添加它并重新启动apache,passenger也不会启动?我无法让PhusionPassenger在服务器上运行RubyonRails。我已经按照Phusion网站上的所有说明安装了passenger并修改并创建了ApacheVirtualHost以指向新目录并验证所有.conf文件都已成功加载。还加载了httpd-Mpassenger_module。我还在本地主机上成功运行了Passe

  5. 软约束、硬约束、Minimum Snap的轨迹优化方法 - 2

    文章目录前言约束硬约束的轨迹优化Corridor-BasedTrajectoryOptimizationBezierCurveOptimizationOtherOptions软约束的轨迹优化Distance-BasedTrajectoryOptimization优化方法前言可以看看我的这几篇Blog1,Blog2,Blog3。上次基于MinimumSnap的轨迹生成,有许多优点,比如:轨迹让机器人可以在某个时间点抵达某个航点。任何一个时刻,都能数学上求出期望的机器人的位置、速度、加速度、导数。MinimumSnap可以把问题转换为凸优化问题。缺点:MnimumSnap可以控制轨迹一定经过中间的

  6. ruby-on-rails - 负载测试期间 Unicorn CPU 使用率激增,优化方法 - 2

    我对为我的RubyonRails3.1.3应用优化我的Unicorn设置的方法很感兴趣。我目前正在高CPU超大实例上生成14个工作进程,因为我的应用程序在负载测试期间似乎受CPU限制。在模拟负载测试中,每秒大约20个请求重放请求,我的实例上的所有8个内核都达到峰值,盒子负载飙升至7-8个。每个unicorn实例使用大约56-60%的CPU。我很好奇可以通过哪些方式对其进行优化?我希望能够每秒将更多请求汇集到这种大小的实例上。内存和所有其他I/O一样完全正常。在我的测试过程中,CPU越来越低。 最佳答案 如果您受CPU限制,您希望使用

  7. 美团外卖搜索基于Elasticsearch的优化实践 - 2

    美团外卖搜索工程团队在Elasticsearch的优化实践中,基于Location-BasedService(LBS)业务场景对Elasticsearch的查询性能进行优化。该优化基于Run-LengthEncoding(RLE)设计了一款高效的倒排索引结构,使检索耗时(TP99)降低了84%。本文从问题分析、技术选型、优化方案等方面进行阐述,并给出最终灰度验证的结论。1.前言最近十年,Elasticsearch已经成为了最受欢迎的开源检索引擎,其作为离线数仓、近线检索、B端检索的经典基建,已沉淀了大量的实践案例及优化总结。然而在高并发、高可用、大数据量的C端场景,目前可参考的资料并不多。因此

  8. 基于RTS超低延时直播优化强互动场景体验 - 2

    RTS在阿里云视频直播的基础上进行底层技术优化,通过集成阿里云播放器SDK,支持在千万级并发场景下节点间毫秒级延时直播的能力,弥补了传统直播存在3~6秒延时的问题,确保了超低延时、低卡顿、秒开流畅的直播观看体验。本文介绍了基于RTS超低延迟直播优化强互动场景体验的最佳实践方案,并以阿里云播放器Aliplayer为例,详细介绍RTS超低延迟拉流接入、自动降级、排障信息获取等逻辑的实现,助力企业打造互动直播行业的产品竞争力。适用场景该方案适用于对超低延迟直播有诉求的客户,尤其是业务中存在强互动场景直播的场景。强互动场景直播主要是指对主播和观众存在互动,或观众存在更高实时性观看、画面互动需求的情况,

  9. ChatGPT教程之深入了解魔术背后的技术 - 2

    解开谜团:深入探索ChatGPT的技术奇迹。ChatGpt无处不在,无论是在播客、博客、YouTube还是社交媒体上。当我注意到这项新技术如此受欢迎时,我决定试一试,我被震惊了!有很多关于ChatGpt及其魔力的博客,但在这篇博客中,我将深入探讨其内部技术及其工作原理!ChatGpt简介根据OpenAI,ChatGpt被描述为:“我们训练了一个名为ChatGpt的模型,它以对话方式进行交互。对话格式使ChatGpt可以回答后续问题、承认错误、挑战不正确的前提并拒绝不适当的请求。ChatGPT是InstructGPT的兄弟模型,它经过训练可以按照提示中的说明进行操作并提供详细的响应。”OpenA

  10. ruby - 无法使用 CONSTANT 优化字符串 - 2

    我目前正在研究Ruby2.1.1的改进,但遇到了一些奇怪的事情。我正在尝试改进String类并定义一个名为FOO的常量。沙箱.rbmoduleFoobarrefineStringdoFOO="BAR"deffoobar"foobar"endendendusingFoobarputs"".class::FOO#=>uninitializedconstantString::FOO(NameError)puts"".foobar#=>"foobar"这给了我未初始化的常量String::FOO(NameError)。但是我可以调用"".foobar这让我相信我在正确的范围内。奇怪的是,如果我

随机推荐