java中数据发送缓冲区的一般实现是什么?
我正在设计一个以固定间隔发送文本的应用程序。在此时间间隔内,应用程序将收集数据并在发送数据之前将其临时存储在缓冲区中(并清除数据库的内容) 我尽量不把它们存储在内存中 目前我正在考虑使用H2嵌入式数据库java中数据发送缓冲区的一般实现是什么?,java,buffer,Java,Buffer,我正在设计一个以固定间隔发送文本的应用程序。在此时间间隔内,应用程序将收集数据并在发送数据之前将其临时存储在缓冲区中(并清除数据库的内容) 我尽量不把它们存储在内存中 目前我正在考虑使用H2嵌入式数据库 我们通常在Java中使用什么来实现缓冲区?纯文本文件?日志文件?是否使用内存缓冲区还取决于应用程序的需要。 例如,如果您的应用程序必须可靠,并在出现导致崩溃的问题时管理恢复,那么更好的方法是使用文件,如果某些数据尚未处理,您可以进行恢复 对于此类需求,还有(面向消息的middlware)选项,此
我们通常在Java中使用什么来实现缓冲区?纯文本文件?日志文件?是否使用内存缓冲区还取决于应用程序的需要。 例如,如果您的应用程序必须可靠,并在出现导致崩溃的问题时管理恢复,那么更好的方法是使用文件,如果某些数据尚未处理,您可以进行恢复
对于此类需求,还有(面向消息的middlware)选项,此解决方案提供了许多优点,包括可靠性。但是,如果您不需要可靠性,并且只存在一些数据交换,则无需使用MOM。阅读您的评论后,我认为解决您的问题的实施方案可以是: 创建一个事务性服务,在其中收集所有必要的信息,并将其存储在 一个StringBuilder,发送信息并最终清除数据库中的内容,如果出现任何问题,您的数据库将保留信息,换句话说,是一个可靠的服务 如果您使用多个线程来恢复信息,请记住StringBuilder是不同步的,因此如果您的解决方案有多个线程在StringBuilder上工作,请不要忘记在内部同步您的类或使用StringBuffer(请记住,这是线程安全的,但速度较慢)
我希望这会有所帮助。通常使用缓冲区,而不是写入文件系统或存储在数据库中。为什么要避免使用内存缓冲区?通常,您会在内存中进行缓冲,以确保有足够的内存来执行此操作。你只会使用一个文件或数据库来存储大量数据,这些数据会被长期存储。我的应用程序会收集另一个正在运行的程序的统计数据,这可能会生成大量数据。如果时间间隔足够短,内存缓冲区将是一个不错的选择。由于此应用程序允许用户设置间隔,因此可能会遇到内存不足的问题。我认为,如果要使用内存缓冲区,可以使用StringBuilder。请记住,这个类是不同步的,所以如果您有多个线程访问它,不要忘记在内部同步您的类。如果您使用的是JDK1.5或更新版本,Mi建议是有效的。另一方面,您仍然拥有StringBuffer实现(线程安全但速度较慢)。我希望这能有所帮助。JMS似乎有些过分了。我的应用程序是一个收集运行程序信息的小型实用程序。是的,因此我在回答中指定,如果只是一个小型应用程序,则不需要MOM:)