1.通过使用Executor将处理请求任务的提交与它的执行体进行解耦。
eg:
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
/**
* 用Executor创建数量为100的线程池来构建简易的WebServer
* @author yale
*
*/
public class TaskExecutionWebServer
{
private static final int THREAD_NUM = 100;// 定义线程池中线程数量
private static final Executor exec =
Executors.newFixedThreadPool(THREAD_NUM);
public static void main(String[] args) throws Exception
{
ServerSocket socket = new ServerSocket(80);
while(true)
{
final Socket connection = socket.accept();
Runnable task = new Runnable(){
public void run()
{
//handelRequest(connection);
}
};
exec.execute(task);
}
}
}
注意:
无论何时当你看到这种形式的代码:
new Thread(runnable).start();
并且你可能最终希望获得一个更加灵活的执行策略时,请认真考虑使用Executor代替Thread。
分享到:
相关推荐
Azkaban分为两个主要组件:Executor Server(执行器服务器)和Web Server(Web服务器),这两个组件在Azkaban2.5.0版本中都有涉及。 **Azkaban Executor Server** 是Azkaban的核心执行部分,负责接收和执行由Web ...
- **高可用性**:可以部署多台Azkaban Web Server和Executor Server,实现负载均衡和故障转移。 - **性能调优**:根据实际负载调整Executor Server的数量,优化数据库连接池设置,提高整体性能。 6. **安全与最佳...
在这个项目中,我们将探讨如何使用Java WebServer发布服务端,以及如何创建一个客户端来调用这些服务。 首先,我们从服务端开始。服务端通常包含一个或多个Web服务接口,这些接口定义了可供客户端调用的操作。在JAX...
3. Multiple-Executor Mode:在大型或分布式环境中使用,Web Server和多个Executor Server分布在不同的机器上,同样使用MySQL数据库,提供更高的可扩展性和容错性。 部署Azkaban的Solo Server模式通常涉及以下几个...
Azkaban的核心组成部分包括Azkaban Web Server和Azkaban Executor Server。Azkaban Web Server主要负责用户界面、工作流的上传和配置,以及调度逻辑的执行。用户可以通过Web界面提交作业(job)和工作流(workflow)...
2. **Web Server**(webServer): Azkaban的Web Server提供了一个用户界面,允许用户上传工作流定义、调度作业、查看作业状态和日志。`azkaban-web-server-2.5.0-tar.gz`文件包含了Web Server的代码和资源,包括...
5. **web**:可能包含Executor Server的Web应用资源,虽然Executor Server通常不直接提供Web界面,但这里可能有用于健康检查或其他管理功能的页面。 6. **README**或**docs**:可能包含关于如何安装、配置和运行...
"编译好的azkaban web和exec.zip" 文件包含了Azkaban的主要组成部分——Web服务器和Executor服务,方便用户快速部署和使用,而无需自己进行编译。 **Azkaban Web Server** Azkaban Web Server是Azkaban的前端部分,...
5. **启动与停止**:指导用户如何启动Azkaban Server、Web Server和Executor服务,以及在需要时如何停止这些服务。 6. **分布式部署**:详细说明如何在多个机器上部署Executor节点,形成一个集群,以实现任务的负载...
- HA部署:多个WebServer配合一个或多个ExecutorServer,通过Nginx实现负载均衡和高可用。 4. **普通版环境部署** - 复制、解压安装包。 - 初始化数据库。 - 修改host.properties、Executor Server和Web Server...
- 启动Executor和WebServer,通常使用start-executor.sh和start-webserver.sh脚本来启动这两个服务。 - 最后,通过Web界面上传项目和定义工作流,设置触发条件,即可开始使用Azkaban调度大数据任务。 4. **与...
在部署Azkaban时,首先需要解压"azkaban-web-server-0.1.0-SNAPSHOT"文件,然后配置相关的环境变量,如数据库连接信息、Executor地址等。接着,启动Web服务器和Executor,通过Web界面可以上传工作流定义文件,并进行...
4. **执行器(Executor)**:Azkaban Web Server与执行器协作,执行器负责实际的作业运行。Web Server接收到用户的执行请求后,会将工作分配给可用的执行器。 5. **权限管理**:Azkaban支持多用户环境,有完善的...
在部署Azkaban 2.5.0时,你需要按照官方文档的指引配置Web Server和Executor,确保它们能正常通信并连接到数据库。同时,你也可能需要根据实际需求调整默认配置,如设置Executor的数量、优化调度策略等。 总之,...
使用命令行工具,如`tar -zxvf azkaban-executor-server-2.5.0.tar.gz`,`tar -zxvf azkaban-web-server-2.5.0.tar.gz`和`tar -zxvf azkaban-sql-script-2.5.0.tar.gz`分别解压这三个文件。 2. 配置环境变量:在...
4. **启动服务**:使用`bin/start-azkaban.sh`脚本启动Web Server和Executor。这将启动Azkaban的服务,使其准备好接受工作流的调度和执行。 5. **验证安装**:在浏览器中访问Web Server的URL(通常是`...
3. **执行**:Azkaban Web Server将作业提交给Executor Server执行,Executor Server会按照依赖关系顺序启动作业。 4. **监控**:用户可以通过Web界面实时查看作业执行状态,包括进度、日志输出等。 5. **存储历史**...
版本3.84.4的安装包包含了三个核心组件:db、ExecutorServer和WebServer,这些组件共同构成了Azkaban的功能体系。 1. **Azkaban数据库(db)**: Azkaban的数据库是整个系统的基石,用于存储工作流定义、执行历史...
Azkaban由三个主要组件组成:Azkaban Web Server、Azkaban Executor Server和SQL脚本。下面我们将深入探讨这些组件及其在“azkaban.zip”压缩包中的内容。 首先,`azkaban-web-server-2.5.0.tar.gz`是Azkaban Web ...
完成配置后,分别启动solo server或web server和executor server。在浏览器中输入Web服务器的地址,可以登录Azkaban Web界面,进行作业的创建、上传和调度。至此,Azkaban基本安装完成,可以开始使用其强大的工作流...