版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux中Apache+Tomcat+JK实现负载均衡和群集的完整过程 . 分类: Apache Tomcat server 2012-08-08 12:29 412人阅读 评论(0) 收藏 举报 转载于: 最近在开发的项目需要承受很高的并发量。综合各种情况,决定使用Apache+Tomcat+JK的方式实现负载均衡,并且作为一个统一的服务还要实现群集(同步Session)。在网上找了很多资料,都是零零散散的,没有一个完整的过程。通过几天的努力,完成了从编译、部署到配置的整个过程,期间也遇到了一些问题。在接下来的文字中将这些过程记录下来,做个笔记同时也分享给大家。为了重
2、新演示整个过程,我新搭建了一个服务器,各项参数如下:CPU:Intel Xeon 5110内存:DDR2 1G*4主机型号:ProLiant DL140 G3操作系统:Red Hat Enterprise Linux Server release 5.4 x86_64版内核版本:2.6.18gcc版本:4.1.2g+版本:4.1.2java版本:1.6.0_27plain view plaincopyprint?1. rootlxp2 # cat /etc/redhat-release 2. Red Hat
3、Enterprise Linux Server release 5.4 (Tikanga) 3. rootlxp2 # uname -a 4. Linux lxp2 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:41:04 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
4、 5. rootlxp2 # gcc -version 6. gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46) 7. Copyright (C) 2006 Free Software Foundation, Inc. 8. This is free software; see
5、 the source for copying conditions. There is NO 9. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10. 11. rootlxp2 # g+ -ve
6、rsion 12. g+ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46) 13. Copyright (C) 2006 Free Software Foundation, Inc. 14. This is free software; see the source for copying
7、0;conditions. There is NO 15. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16. 17. rootlxp2 # java -version 18. java version
8、;"1.6.0_27" 19. Java(TM) SE Runtime Environment (build 1.6.0_27-b07) 20. Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode) 21. rootlxp2 # plain view plain
9、copyprint?1. <SPAN style="FONT-SIZE: 18px">rootlxp2 # cat /etc/redhat-release 2. Red Hat Enterprise Linux Server release 5.4 (Tikanga) 3. rootlxp2 # uname -a 4. Linux
10、0;lxp2 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:41:04 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux 5. rootlxp2 # gcc -version 6. gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
11、0; 7. Copyright (C) 2006 Free Software Foundation, Inc. 8. This is free software; see the source for copying conditions. There is NO 9. warranty; not even for
12、0;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10. 11. rootlxp2 # g+ -version 12. g+ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46) 13. Copyright (C) 2006 Free
13、;Software Foundation, Inc. 14. This is free software; see the source for copying conditions. There is NO 15. warranty; not even for MERCHANTABILITY or FITNESS FOR
14、;A PARTICULAR PURPOSE. 16. 17. rootlxp2 # java -version 18. java version "1.6.0_27" 19. Java(TM) SE Runtime Environment (build 1.6.0_27-b07) 20. Java HotSpot(TM) 64
15、-Bit Server VM (build 20.2-b06, mixed mode) 21. rootlxp2 # </SPAN> rootlxp2 # cat /etc/redhat-release Red Hat Enterprise Linux Server release 5.4 (Tikanga)rootlxp2 # uname -aLinux lxp2 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:41:04 EDT
16、 2009 x86_64 x86_64 x86_64 GNU/Linuxrootlxp2 # gcc -versiongcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)Copyright (C) 2006 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.r
17、ootlxp2 # g+ -versiong+ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)Copyright (C) 2006 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.rootlxp2 # java -versionjava version &qu
18、ot;1.6.0_27"Java(TM) SE Runtime Environment (build 1.6.0_27-b07)Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)rootlxp2 # gcc、g+和java是必须的,如果运行上述命令提示command not found,则需要安装。具体安装方法这里不做介绍,请参阅相关文档。 接下来要准备的是apache服务器、tomcat服务器和JK连接器1.下载apache服务器源码包apache服务器官方没有发布编译好的linux二进制包,只能通
19、过下载源代码,然后自己编译。因此需要先下载源码。访问网址/download.cgi,可以看到apache服务器目前放出的版本信息,推荐使用稳定版的release。然后选择Unix版源码:2.下载tomcat服务器源码包目前tomcat服务器个人还是觉得6.0比较稳定。7.0毕竟是新出的东西,需要一定的生产实践考验才能达到理想的状态。因此这里选择tomcat 6.0。访问网址/download-60.cgi,可以看到目前稳定的版本为6.0.33:这里强烈建议下载tar.gz格式的压缩包。在Linux下,文件
20、访问有着严格的权限限制。一个文件是否允许以二进制或者脚本的形式执行,完全取决于其是否拥有执行缺陷,这与Windows识别文件后缀名(.exe、.bat)的方式不同。zip格式的压缩包中是不保留文件的权限信息的,而tar.gz格式的压缩包是保存有文件的权限信息的。3.下载JK连接器源码包作为apache与tomcat连接的桥梁,JK连接器使用C语言编写,与apache紧密结合,作为模块装载到apache服务器中,通过配置实现与特定的tomcat服务器进行通信,从而实现负载均衡的功能。访问网址/download-connectors.cgi,可以找到最
21、新最稳定的JK连接器版本:这里还是推荐下载tar.gz格式的源码。原因同上。4.解压apache服务器、tomcat服务器和JK连接器都已经下载好了,如下图所示:然后将这三个包都解压出来:5.编译apache服务器首先编译apache服务器。在编译之前需要执行其自带的检测配置脚本。对于不同发行版本的Linux,默认安装的库都有所差别,即便是同一个发行版本,由于用户安装软件的软件不同,也会导致系统内包含的库有所区别。因此apache作为开源服务器,在编译前需要了解系统的库安装情况,某些模块需要依赖于特定的库,如果这些库不存在,配置脚本将自动忽略这些库的编译。经过检测时候会生成合适的MakeFil
22、e文件。这里特别提醒一句,如果直接执行配置脚本,是不会编译额外的模块的,我们希望使用额外模块时,需要在运行配置脚本命令后加入参数,让其尽最大可能编译可用的库。关于这方面的介绍可以参阅我的另外一篇文章“Linux下编译apache服务器modules文件夹缺少模块(.so)的问题”( plain view plaincopyprint?1. rootlxp2 Downloads# cd httpd-2.2.21 2. rootlxp2 httpd-2.2.21# ./configure -enable-
23、so -enable-mods-shared=most -with-mpm=worker plain view plaincopyprint?1. <SPAN style="FONT-SIZE: 18px">rootlxp2 Downloads# cd httpd-2.2.21 2. rootlxp2 httpd-2.2.21# ./configure -enable-so -enable-mods-share
24、d=most -with-mpm=worker</SPAN> rootlxp2 Downloads# cd httpd-2.2.21rootlxp2 httpd-2.2.21# ./configure -enable-so -enable-mods-shared=most -with-mpm=worker加入-with-mpm=worker是修改apache服务器的工作模式。默认模式是prefork。prefork采用预派生子进程方式,用单独的子进程来处理 不同的请求,进程之间彼此独立。相对于prefork,worker是全新的支持多线程和多进程混合
25、模型的MPM(多路处理模块)。由于使用线程来处理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器。但是,worker也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性。如果配置过程中出现plain view plaincopyprint?1. configure: error: Cannot use an external APR with the bundled APR-util plain view plaincopyprint?1
26、. <SPAN style="FONT-SIZE: 18px">configure: error: Cannot use an external APR with the bundled APR-util</SPAN> configure: error: Cannot use an external APR with the bundled APR-util这样的错误信息,说明本机没有安装apr运行库,需要下载
27、并安装。访问网址:/download.cgi,下载apr和apr-util:解压apr和apr-utilplain view plaincopyprint?1. rootlxp2 Downloads# tar -xf apr-1.4.5.tar.gz 2. rootlxp2 Downloads# tar -xf apr-util-1.3.12.tar.gz plain view plaincopyprint
28、?1. <SPAN style="FONT-SIZE: 18px">rootlxp2 Downloads# tar -xf apr-1.4.5.tar.gz 2. rootlxp2 Downloads# tar -xf apr-util-1.3.12.tar.gz </SPAN> rootlxp2 Downloads# tar -xf apr-1.4.5.tar.gz rootlxp2
29、Downloads# tar -xf apr-util-1.3.12.tar.gz 进入apr,并编译plain view plaincopyprint?1. rootlxp2 Downloads# cd apr-1.4.5 2. rootlxp2 apr-1.4.5# ls 3. apr-config.in build.conf helpers &
30、#160; memory shmem 4. apr.dep build-outputs.mk include misc
31、 strings 5. apr.dsp CHANGES libapr.dep mmap support 6. apr.dsw
32、60; config.layout libapr.dsp network_io tables 7. apr.mak configure liba
33、pr.mak NOTICE test 8. apr.pc.in configure.in libapr.rc NWGNUmakefile threadproc 9. apr.spe
34、c docs LICENSE passwd time 10. atomic
35、60; dso locks poll user 11. build &
36、#160; emacs-mode Makefile.in random 12. buildconf file_io Makefile.win README
37、13. rootlxp2 apr-1.4.5# ./configure plain view plaincopyprint?1. <SPAN style="FONT-SIZE: 18px">rootlxp2 Downloads# cd apr-1.4.5 2. rootlxp2 apr-1.4.5# ls 3. apr-config.in build.conf
38、160; helpers memory shmem 4. apr.dep build-outputs.mk include misc&
39、#160; strings 5. apr.dsp CHANGES libapr.dep mmap
40、; support 6. apr.dsw config.layout libapr.dsp network_io tables 7. apr.mak configure
41、160; libapr.mak NOTICE test 8. apr.pc.in configure.in libapr.rc NWG
42、NUmakefile threadproc 9. apr.spec docs LICENSE passwd time
43、160; 10. atomic dso locks poll user
44、 11. build emacs-mode Makefile.in random 12. buildconf file_io
45、0; Makefile.win README 13. rootlxp2 apr-1.4.5# ./configure</SPAN> rootlxp2 Downloads# cd apr-1.4.5rootlxp2 apr-1.4.5# lsapr-config.in build.conf helpers memory shmemapr.dep build-outputs.mk include misc stringsapr.dsp CHANGES libapr.dep mmap supp
46、ortapr.dsw config.layout libapr.dsp network_io tablesapr.mak configure libapr.mak NOTICE testapr.pc.in configure.in libapr.rc NWGNUmakefile threadprocapr.spec docs LICENSE passwd timeatomic dso locks poll userbuild emacs-mode Makefile.in randombuildconf file_io Makefile.win READMErootlxp2 apr-1.4.5#
47、 ./configure生成了MakeFile后直接编译plain view plaincopyprint?1. rootlxp2 apr-1.4.5# ls 2. apr-1-config buildconf dso locks
48、0; poll 3. apr-config.in build.conf emacs-mode Makefile random 4. apr.dep build-outputs.mk
49、file_io Makefile.in README 5. apr.dsp CHANGES helpers Makefile.win shmem
50、 6. apr.dsw config.layout include memory strings 7. apr.mak config.log &
51、#160; libapr.dep misc support 8. apr.pc config.nice libapr.dsp mmap
52、; tables 9. apr.pc.in config.status libapr.mak network_io test 10. apr.spec
53、160;configure libapr.rc NOTICE threadproc 11. atomic configure.in libtool
54、0; NWGNUmakefile time 12. build docs LICENSE passwd
55、160; user 13. rootlxp2 apr-1.4.5# make plain view plaincopyprint?1. <SPAN style="FONT-SIZE: 18px">rootlxp2 apr-1.4.5# ls 2. apr-1-config buildconf
56、0; dso locks poll 3. apr-config.in build.conf emacs-mode Makefile
57、160; random 4. apr.dep build-outputs.mk file_io Makefile.in README 5. apr.dsp CHANGES &
58、#160; helpers Makefile.win shmem 6. apr.dsw config.layout include memory &
59、#160; strings 7. apr.mak config.log libapr.dep misc support 8. apr.pc
60、0; config.nice libapr.dsp mmap tables 9. apr.pc.in config.status libapr.mak
61、0;network_io test 10. apr.spec configure libapr.rc NOTICE threadproc 11. atomic
62、 configure.in libtool NWGNUmakefile time 12. build docs
63、; LICENSE passwd user 13. rootlxp2 apr-1.4.5# make</SPAN> rootlxp2 apr-1.4.5# lsapr-1-config buildconf dso locks pollapr-config.in build.conf emacs-mod
64、e Makefile randomapr.dep build-outputs.mk file_io Makefile.in READMEapr.dsp CHANGES helpers Makefile.win shmemapr.dsw config.layout include memory stringsapr.mak config.log libapr.dep misc supportapr.pc config.nice libapr.dsp mmap tablesapr.pc.in config.status libapr.mak network_io testapr.spec conf
65、igure libapr.rc NOTICE threadprocatomic configure.in libtool NWGNUmakefile timebuild docs LICENSE passwd userrootlxp2 apr-1.4.5# make编译好之后使用root权限安装:plain view plaincopyprint?1. rootlxp2 apr-1.4.5# sudo make install plain view plaincopyprint?1. <SPAN style=&quo
66、t;FONT-SIZE: 18px">rootlxp2 apr-1.4.5# sudo make install</SPAN> rootlxp2 apr-1.4.5# sudo make install然后使用类似的方法配置apr-util:plain view plaincopyprint?1. rootlxp2 Downloads# cd apr-util-1.3.12 2. rootlxp2 apr-util-1.3.12#&
67、#160;./configure -with-apr=/usr/local/apr plain view plaincopyprint?1. <SPAN style="FONT-SIZE: 18px">rootlxp2 Downloads# cd apr-util-1.3.12 2. rootlxp2 apr-util-1.3.12# ./configure -with-apr=/usr/local/apr</SPAN>
68、; rootlxp2 Downloads# cd apr-util-1.3.12rootlxp2 apr-util-1.3.12# ./configure -with-apr=/usr/local/apr编译apr-util: plain view plaincopyprint?1. rootlxp2 apr-util-1.3.12# make plain view plaincopyprint?1. <SPAN style="FONT-SIZE: 18px">rootlxp2&
69、#160;apr-util-1.3.12# make</SPAN> rootlxp2 apr-util-1.3.12# make编译好之后使用root权限安装:plain view plaincopyprint?1. rootlxp2 apr-util-1.3.12# sudo make install plain view plaincopyprint?1. <SPAN style="FONT-SIZE: 18px">rootlxp2&
70、#160;apr-util-1.3.12# sudo make install</SPAN> rootlxp2 apr-util-1.3.12# sudo make install当然如果你在配置apache服务器编译的时候没有提示缺少“APR”,请忽略上面关于APR编译的几步。回到apache服务器源码所在目录,开始编译:plain view plaincopyprint?1. rootlxp2 httpd-2.2.21# make plain view plaincopyprint?1
71、. <SPAN style="FONT-SIZE: 18px">rootlxp2 httpd-2.2.21# make</SPAN> rootlxp2 httpd-2.2.21# make编译过程大概不到十分钟,完成之后使用root权限进行安装plain view plaincopyprint?1. rootlxp2 httpd-2.2.21# sudo make install plain view plaincopyprin
72、t?1. <SPAN style="FONT-SIZE: 18px">rootlxp2 httpd-2.2.21# sudo make install</SPAN> rootlxp2 httpd-2.2.21# sudo make install如果不出意外,至此apache就安装成功了。来测试一下:进入apache服务器的bin目录,并启动服务器:plain view plaincopyprint?1. rootlxp2 httpd-2.2.21#
73、;cd /usr/local/apache2/bin/ 2. rootlxp2 bin# sudo ./apachectl start 3. httpd: Could not reliably determine the server's fully qualified domain name, using for ServerNa
74、me plain view plaincopyprint?1. <SPAN style="FONT-SIZE: 18px">rootlxp2 httpd-2.2.21# cd /usr/local/apache2/bin/ 2. rootlxp2 bin# sudo ./apachectl start 3. httpd: Could not reliably deter
75、mine the server's fully qualified domain name, using for ServerName</SPAN> rootlxp2 httpd-2.2.21# cd /usr/local/apache2/bin/rootlxp2 bin# sudo ./apachectl starthttpd: Could not reliably determine the server's fully
76、qualified domain name, using for ServerName在本地打开浏览器,访问如果出现“It Works!”则表示启动成功了这里要注意一点就是Linux的防火墙问题。如果你的Linux服务器启动了防火墙,本地访问上面的网址是没有问题的,但如果其它计算机访问你的服务器有可能会连接失败。出现这种情况的原因是防火墙将入站80端口封锁了。解决方法是将80端口加入到允许列表中:进入防火墙设置后,如果发现Firewall状态为Enabled,表示防火墙已启用,需要将WWW(HTTP)服务标记为信任,如果需要使用hhtps协议,
77、还要将Secure WWW(HTTPS)服务也标记为信任。如下图所示:另外,此时如果有其他程序占用80端口也是会影响到apache服务器的,需要确保这个端口没有被占用。还有我还要补充一点,在Mac OS中按照上述方法安装apache服务器是不行的。开始的时候我不想搭建Linux服务器,想到Mac OS也是类Unix的系统,操作命令什么的都一样,就先在Mac上实验了。结果安装上apache服务器后启动了,每次访问都提示505错误,service temporarily unavailable。经过查阅很多资料和尝试才发现,原来Mac系统中已经自带了apache服务器。具体应用是在“系统设置”中的
78、“共享”功能。这个功能里有“Web共享”方式。其实现时使用的服务器就是apache。它采用的配置文件在/etc/httpd/目录中。这里的配置文件和自己安装的apache服务器配置文件冲突了,因此造成505错误。这一点需要注意。(注:我是用的Mac系统为Mac OS X Lion 10.7.2)2011年11月23日补充:如果你希望把apache服务器注册为系统服务,让它随着系统启动而启动,则需要在/etc/init.d/目录中建立服务管理脚本,我们将其命名为httpd:python view plaincopyprint?1. #!/bin/bash 2. #chk
79、config: 345 61 61 3. #description: This is apache http service 4. #processname: httpd 5. pidfile="/usr/local/apache2/logs/httpd.pid" 6. httpd_process_name="httpd" 7. httpd_
80、path="/usr/local/apache2/bin/apachectl" 8. 9. RETVAL=0 10. start() 11. echo "Starting Apache Httpd Service." 12. httpd_pid_list=pidof $httpd_process_name 13.
81、 if test -n "$httpd_pid_list" 14. then 15. echo "Fail To Launch Httpd, Since It Has Already Started" 16. RETVAL=1
82、 17. else 18. echo "Launching Apache Httpd Server" 19. $httpd_path "start" 20. RETVAL=$? 21.
83、 echo "Launch Httpd Successfully" 22. fi; 23. 24. 25. stop() 26. echo "Stopping Apache Httpd Service." 27. httpd_pid_l
84、ist=pidof $httpd_process_name 28. if test -n "$httpd_pid_list" 29. then 30. echo "Find Httpd Process, Start To End Them" 31.
85、0; $httpd_path "stop" 32. if test "$?" = "0" 33. then 34. echo "Success to Terminate
86、0;Httpd Service" 35. RETVAL=0 36. else 37. echo "Can Not Terminate Httpd Service" 38. &
87、#160; RETVAL=1 39. fi; 40. else 41. echo "Can Not Find Any Httpd Process, Fail To Stop Service" 42. RET
88、VAL=0 43. fi; 44. 45. 46. restart() 47. stop 48. if test "$?"="0" 49. then 50. #sleep 3 se
89、conds to wait for process exit 51. sleep 3 52. start 53. RETVAL= $? 54. else 55. RETVAL= $?
90、 56. fi; 57. 58. 59. status() 60. if test -f $pidfile 61. then 62. pid_list=cat $pidfile 63. echo&
91、#160;"$httpd_process_name (pid:$pid_list) is running" 64. else 65. echo "$httpd_process_name is stopped" 66. fi; 67. 68. 69. cas
92、e "$1" in 70. start) 71. start 72. RETVAL=$? 73. 74. stop) 75.
93、stop 76. RETVAL=$? 77. 78. restart) 79. restart 80. RETVAL=$? 81.
94、; 82. status) 83. status 84. 85. *) 86. echo 1quot;Usage:$0 start|stop|restart asdfasdfasdfasdf "
95、60; 87. RETVAL=2 88. esac 89. 90. exit $RETVAL python view plaincopyprint?1. <SPAN style="FONT-SIZE: 18px">#!/bin/bash 2. #chkconfig: 345 61 61 3.
96、 #description: This is apache http service 4. #processname: httpd 5. pidfile="/usr/local/apache2/logs/httpd.pid" 6. httpd_process_name="httpd" 7. httpd_path="/usr/local/apache2/bin/apachectl"
97、60; 8. 9. RETVAL=0 10. start() 11. echo "Starting Apache Httpd Service." 12. httpd_pid_list=pidof $httpd_process_name 13. if test -n "$httpd_pid_lis
98、t" 14. then 15. echo "Fail To Launch Httpd, Since It Has Already Started" 16. RETVAL=1 17. else 18. &
99、#160; echo "Launching Apache Httpd Server" 19. $httpd_path "start" 20. RETVAL=$? 21. echo "Launch Httpd Successfully"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 凹式叶轮泵行业现状调研及投资前景展望研究报告模板
- 北师大版小学六年级上册数学《第七单元百分数的应用》单元测试题(共9套)
- 部编版小学语文二年级下册教案(全册)
- 长安CS75:技术革新与品牌信赖的融合之旅
- 中国养老机器人产业消费现状分析及前景战略研究报告2024-2030年
- 【同课异构】一场“瞒天过海”的骗局-《皇帝的新装》
- 四川省资阳市安岳中学2024-2025学年八年级上学期入学考试英语试卷(解析版)
- 【全国一等奖】核舟记
- 近效期药品促销方案
- 《思路要清晰》教学设计
- 2024年湖北省武汉市九年级三月调考数学模拟试卷(二)
- 9 古诗三首 《暮江吟》(教学设计)2024-2025学年统编版语文四年级上册
- 2024年厂房买卖合同参考样本(三篇)
- 聚焦数据分析观念-让问题引领儿童真实学习-《百分数》单元整体设计的实践与思考
- 习作:我的家人(范文+点评+升格)-四年级语文上册课件
- 第2课土特产包装设计 课件 2023-2024学年浙美版初中美术八年级上册
- 食安员抽考必备知识考试题库(含答案)
- 称谓、书信中的礼仪(第七、八篇)
- 提高营业大厅客户满意度QC课题
- 冶金等行业企业重大生产安全事故隐患检查表.doc
- 《目标设定与达成》ppt课件
评论
0/150
提交评论