`
xhyccc
  • 浏览: 6710 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

jWorkPool--轻量级并发WorkService容器

阅读更多
此为LighTECHs的熊昊一的最新作品...
jWorkPool HomePage
I have ever met a problem that Lucene would lock the files of index when we do writing actions, so in a multi-`thread environment, if we only apply traditional Java Asynchronized keyword for sharing this mutex resource, the effect of index writing would be lower. For that, we introduced JSR166 (JDK1.5 java.util.concurrent) Lea 1999 into our project. Indeed, personally, I capsulated this framework with Spring as my own framework jWorkPool 6 for my mates at first. As my plan, a multi-thread oriented work process is cut into several Work Services by their function and the mutex resources that them accesses, moreover each Work Service has its defined Work Pool for running. Programmers could configure the size of Work Pool to control and optimize the mutex resources' sharing. For example, we use Fixed-Single-Workpool to run the work services for Lucene index writing, only one work service can run in the pool while other submitted work services are waiting in the waiting list. I also design SessionContext, each of which contains variables of a work process among a series of services, and maintain the state of work process. In additional, each service has its "next" service which is injected into service by Spring IoC, and stands for the next service to invoke in process. An abstract class "Router" is defined as a special kind of service which could cipher out what's to do next by variables in SessionContext, and control the process. What's more, the most exciting character of jWorkPool is that Work Services and Work Pool I mentioned above need only configure in Spring Beans XML. That means Beans XML can present the work processes just like BPEL. For more information about this kit please check the homepage of project. Finally we implement the whole business logic in Work Services, and applying jWorkPool shows us a higher performance.
Semantic web tech
分享到:
评论

相关推荐

    Zinx--Golang轻量级并发服务器框架

    我们为什么要做Zinx,Golang目前在服务器的应用框架很多,但是应用在游戏领域或者其他长链接的领域的轻量级企业框架甚少。 ​ 设计Zinx的目的是我们可以通过Zinx框架来了解基于Golang编写一个TCP服务器的整体轮廓,...

    04-大厂生产级Redis高并发分布式锁实战-ev.rar

    04-大厂生产级Redis高并发分布式锁实战_ev.rar04-大厂生产级Redis高并发分布式锁实战_ev.rar04-大厂生产级Redis高并发分布式锁实战_ev.rar04-大厂生产级Redis高并发分布式锁实战_ev.rar04-大厂生产级Redis高并发...

    Go-EventBus-Go轻量级事件总线兼容异步

    Go-EventBus是一款轻量级的事件总线库,专为Go语言开发,它提供了高效、灵活的事件发布和订阅机制,支持异步处理,能够帮助开发者构建松耦合、可扩展的应用程序。在本文中,我们将深入探讨Go-EventBus的核心特性、...

    Go-sdns-轻量级快速的dns递归服务器

    《Go-sdns:轻量级快速DNS递归服务器解析与应用》 在现代互联网环境中,域名系统(DNS)是至关重要的基础设施,它负责将人类可读的域名转换为机器可识别的IP地址。Go-sdns是一款用Go语言编写的轻量级、高效的DNS...

    Go-Netlog-一个轻量级HTTP-centric基于日志(Kafka风格)的消息队列

    - **轻量级设计**:Go-Netlog 设计简洁,资源消耗低,适合在资源有限的环境中部署。 - **HTTP-Centric**:基于HTTP协议,易于与各种HTTP客户端和服务器集成,支持RESTful API,简化了服务间的通信。 - **Kafka风格的...

    cpp-libuEvLinux的轻量级事件循环库

    libuEv是一个针对Linux平台设计的轻量级事件循环库,它专为C++开发者提供了高效、简洁的API,用于构建高性能、低延迟的并发应用程序。在深入探讨libuEv之前,我们需要先理解事件循环(event loop)的基本概念。事件...

    Go-grpool-轻量级Goroutine工具

    在Go语言中,Goroutines是一种轻量级的线程实现,它们是Go并发模型的核心。Goroutines相比操作系统线程,具有更低的开销,更高效的调度,并且易于使用。Go-grpool库是一个用于管理和控制Goroutines的工具,特别适合...

    cpp-uWebSockets最轻量级的高效的可伸缩的WebSocket服务器实现

    《C++实现uWebSockets:轻量级高效WebSocket服务器详解》 在现代网络应用中,WebSocket协议已经成为了实时通信的重要工具,它提供了一种全双工、低延迟的通信方式,广泛应用于在线游戏、实时聊天、股票交易、物联网...

    Python-gevent轻量级进程内的并发编程

    在Python中,`gevent`是一个非常流行的、基于greenlet的轻量级并发库,它使得程序员可以编写出类似同步的并发代码,而实际上在后台执行的是非阻塞式的IO操作。 **1. gevent是什么?** gevent是一个基于greenlet的...

    JAVA里使用Jetty作为轻量级嵌入式的Web容器

    Java中的Jetty是一个轻量级、高性能且可嵌入式的Web服务器和Servlet容器,它以其简单易用和高效性在开发社区中广受欢迎。本文将深入探讨Jetty的基本概念、特性以及如何在Java项目中使用它。 1. **Jetty简介** - ...

    Go-一个轻量级golang爬虫调度包

    轻量级的爬虫调度包通常只关注爬虫的核心功能,即网页的抓取、解析和调度。这种设计使得包体积小,运行效率高,同时也降低了学习和使用的难度。描述中的"ispider"包就是这样一种工具,它专注于爬虫的调度,帮助...

    Ruby-EventMachineRuby的事件驱动IO和轻量级并发库

    Ruby-EventMachine是Ruby语言中一个非常重要的库,它提供了事件驱动的I/O和轻量级并发机制。在Ruby开发中,EventMachine扮演了关键的角色,尤其是在构建高性能、高并发的网络应用时。这个库利用了非阻塞I/O和回调...

    Go-piladb—轻量级的RESTful数据库引擎基于堆栈的数据结构

    《Go-piladb:基于堆栈数据结构的轻量级RESTful数据库引擎解析》 Go-piladb是一款独特的数据库引擎,其设计思路在于提供一种轻量级、高效的解决方案,尤其适用于那些对资源有限但需要快速响应的场景。该数据库的...

    Gatling实用技术 ----高性能轻量级压力测试工具

    Gatling的Scala基础封装是基于Akka编程的,它是非阻塞异步编程模型,可以高效执行并有极高的容错率。... 原生支持NIO,并发性能很好,即使性能较差的电脑也能发起很大的负载压力。  基于HTML的报表,简单易读。

    Go-Nano--轻量级便利高性能基于golang的游戏服务器框架

    《Go-Nano:轻量级、便利、高性能的Golang游戏服务器框架》 Go-Nano是一款专为游戏服务器设计的高性能框架,它充分利用了Golang语言的优势,为开发者提供了轻量级、高效且便捷的开发体验。在Golang的世界里,Go-...

    cpp-Skynet是一个轻量级的为在线游戏服务器打造的框架

    Skynet 是一个专为在线游戏服务器设计的轻量级框架,由 C/C++ 编写,强调高并发、低延迟以及稳定的实时性。这个框架以其简单易用和高效能著称,尤其适用于多人在线游戏(MMO)和实时竞技类游戏(RTS)。在 Skynet 中...

    VX-API-Gateway是基于Vert.x(java)开发的API网关,是一个全异步,高性能,可扩展,轻量级的API网关

    VX-API-Gateway是一款基于Java语言的Vert.x框架构建的API网关,它以其全异步、高性能、可扩展和轻量级的特性在Web应用开发领域中脱颖而出。这款API网关扮演着至关重要的角色,它作为系统对外的统一入口,负责对内部...

    基于 go 的轻量级并发TCP服务器框架项目源码.zip(教程+源代码+附上详细代码说明)

    基于 go 的轻量级并发TCP服务器框架项目源码.zip(教程+源代码+附上详细代码说明)。一款高含金量的go项目 ①:基于Golang的轻量级并发服务器框架 ②:通过项目框架来了解基于Golang编写一个TCP服务器的整体轮廓,让...

    Zinx 是一个基于Golang的轻量级并发服务器框架

    **Zinx:基于Golang的轻量级并发服务器框架** Zinx是一个专为Go语言设计的轻量级并发服务器框架,旨在提供高效、简洁的网络服务开发能力。它充分利用了Go语言的并发特性,如goroutines和channels,使得开发者能够...

    Go-GoCat--基于Go的高并发Web容器

    GoCat是一款基于Go语言开发的高并发Web容器,它的设计目标是提供高性能、轻量级且易于扩展的服务器环境,适用于构建现代Web应用程序。Go语言以其并发模型、内存安全和高效的编译速度,在开发高性能网络服务领域备受...

Global site tag (gtag.js) - Google Analytics