自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

donnie4w技术专栏

https://tlnet.top

  • 博客(33)
  • 资源 (4)
  • 收藏
  • 关注

原创 高性能日志库go-logger2.0.4—支持slog日志文件切割

log/slog 库是 Go 语言用于结构化日志记录的一个强大工具,它旨在提升日志的管理和分析能力,同时保证代码的简洁性和执行效率。log/slog 专注于提供结构化日志的生成与处理逻辑,包括日志级别控制、键值对数据的记录等,但它并不直接内置文件处理功能,如日志文件的分割、压缩等。go-logger 已经实现了较为完善的日志文件管理功能,可以直接与 slog 配合使用,作为log/slog库的日志文件管理支持库。该版本主要支持go原生日志库 log/slog 的日志文件切割,压缩等功能。

2024-05-15 10:29:27 503

原创 wfs 文件存储系统 v1.0.6

wfs 是高性能海量小文件存储系统 ,支持Linux,Windows,Macos,FreeBSD等系统, 可以高效地进行文件存储和读取。wfs 支持文件压缩归档,并提供简洁的数据读取方式和文件后台管理和 以及归档文件的碎片整理等

2024-05-10 11:52:00 684

原创 如何部署 wfs 分布式服务

wfs是海量小文件存储系统。wfs1.x不直接支持分布式存储,但为了应对大规模部署和高可用需求,推荐采用如Nginx这样的负载均衡服务,通过合理的资源配置和定位策略,可以在逻辑上模拟出类似分布式的效果。也就是说,虽然每个wfs实例都是单机存储,但可以通过外部服务实现多个wfs实例之间的请求分发,例如通过对文件路径前缀(如 /01/)进行解析,可将请求分发至不同的wfs实例,从而达到业务层面的“分布式部署”

2024-04-24 20:41:39 925 3

原创 wfs 文件存储系统 v1.0.5

wfs 是高性能海量小文件存储系统 ,支持Linux,Windows,Macos,FreeBSD等系统, 可以高效地进行文件存储和读取。wfs 支持文件压缩归档,并提供简洁的数据读取方式和文件后台管理和 以及归档文件的碎片整理等

2024-04-24 12:35:48 1070

原创 webtim 开源即时通讯平台 v0.0.5发布

webtim是即时通讯平台,提供丰富的通讯功能,除了基础通讯,同时实现多人实时音视频,视频直播等功能。im服务器为 Tim。前端使用tim的js客户端 timjs 调用tim服务器接口解析数据并渲染页面

2024-04-16 10:43:16 581

原创 wfs 文件存储系统 v1.0.4

wfs 是高性能海量小文件存储系统 ,支持Linux,Windows,Macos,FreeBSD等系统, 可以高效地进行文件存储和读取。wfs 支持文件压缩归档,并提供简洁的数据读取方式和文件后台管理和 以及归档文件的碎片整理等。

2024-03-28 11:12:08 1072

原创 WFS海量小文件存储系统

WFS文件存储系统,主要解决海量小文件的存储问题。 wfs有非常高效的读写效率,在高并发压力下,wfs存储引擎读写响应时间可以达到微秒级别.wfs将海量提交存储的小文件进行高效的压缩归档。并提供简洁的数据获取方式,以及后台文件管理,文件碎片整理等

2024-03-19 13:54:33 1016

原创 去中心化分布式即时通讯引擎tim v2.0.1 发布

作者已经为windows,linux, macos等操作系统, 写好启动脚本,并打包放置相应的webtim执行文件。只需要执行start脚本,便可以在本地一键启动webtim。启动后,可以在本地通过tim后台管理系统与tldb后台管理系统查看相关的数据。说明:big string,big binary 是一种无格式的松散数据协议,主要应用场景在一些特殊的场景下,对类似thrift,json等特定格式的协议无法支持的情况下使用。这种两种松散的协议,可以支持一个数据包被终端分包多次发送的情况。

2024-01-22 10:55:34 1596

原创 tim实践系列——接入外部账号系统,配置关系型数据库

不依赖于任何中心服务器,采用去中心化分布式架构,解决传统中心化通讯方式的问题,去中心化分布式架构的通讯引擎的各个节点之间相互连接,形成一个庞大的分布式网络。可以轻松地扩展服务规模,支持更多的用户和业务需求,提供更加安全、可靠、高效的通讯服务。Github系列开源文章tim支持使用各种关系型数据库,如Mysql,PostgreSQL ,SQL Server,Oracle,Oceanbase;tim默认数据库为TLDB;

2024-01-22 10:54:24 908

原创 tim实践系列——如何架构支持亿级别在线用户的即时消息系统

海量在线用户在应用上的行为,会产生巨大的数据量和高并发压力,对系统的并发处理能力与海量数据处理能力是一项大挑战。构建亿级别在线用户的即时消息系统或更高数据量的系统,不是一个大框架就可以解决的的问题,需要结合业务特点,从许多细微的地方入手才能更好的搭建符合实际业务情况的合理架构。以上3篇文章讲述了tim的集群架构特点,数据存储能力,安全限流等措施。实际上,除了限流措施,tim还提供了系列的验证,接口安全调用等措施。

2024-01-22 10:52:55 1000

原创 tim实践系列——tim的限流,报文长度,连接数,请求频率

【代码】tim实践系列——tim的限流,报文长度,连接数,请求频率。

2024-01-16 11:29:56 480

原创 tim实践系列——去中心化分布式架构特点

tim是去中心化分布式即时通讯引擎。不依赖于任何中心服务器,采用去中心化分布式架构,解决传统中心化通讯方式的问题,去中心化分布式架构的通讯引擎的各个节点之间相互连接,形成一个庞大的分布式网络。可以轻松地扩展服务规模,支持更多的用户和业务需求,提供更加安全、可靠、高效的通讯服务

2024-01-16 11:28:52 720 2

原创 tim实践系列——分布式数据存储与动态数据库扩容

分布式数据存储是一种将数据分散存储在网络中多个节点上的技术,它通过多台服务器、计算机或者存储设备来共同维护和管理大量的数据集。这种架构能够提高系统的可扩展性、可用性和容错能力,因为不再依赖于单个大型的集中式存储系统。在分布式数据存储系统中,数据被分成多个部分并分散存储在各个独立的节点上。每个节点都拥有处理和存储数据的能力,可以根据需要动态地加入或离开系统,使得整个存储系统具有弹性伸缩的特点。TIM默认的数据库TLDB是一个高性能的分布式数据库,提供了数据的分布式存储。

2024-01-12 12:40:52 625

原创 webtim开源即时通讯平台第三版发布

webtim是依赖 tim即时通讯引擎 实现的web版通讯平台,具备以下功能与特点: 信息安全性:信息加密加密机制,确保通信内容的安全性。 用户资料安全性:用户账号无需被记录到服务器。用户资料被加密存储。确保用户信息的安全性。 支持即时通讯:允许用户进行实时的信息交流和文件传输。 离线消息存储:允许用户在离线状态下接收消息,并在重新上线时进行同步。 用户管理:支持用户注册、登录、个人信息管理等功能。 好友关系管理:支持用户添加、删除好友,管理好友列表等功能。

2024-01-12 12:39:16 1059

原创 tim实践系列——虚拟房间的作用和如何使用

而且在流分发中,一个流的中继服务器会派生流数据第二备用,第三备用,第四备用...等等的多个备用tim节点,当该中继器断开或其他节点无法连接它时,可以连接到它的后续备用节点上,中继器与集群断开时,第二备用节点变成这个流数据的中继服务器,它会继续派生出多个备用节点。tim自身实现的集群算法,自动形成这样的分布式架构,不需要人为调整,也无法人为干预。此时,注册者可以向虚拟房间 推送流数据,其他账号则无权限向该虚拟房间推送流数据。基于虚拟房间的推流,最终实现的是向tim推流,并进行流的分发。

2023-12-29 10:34:35 935

原创 快速使用tim的简易demo

如果端口被占用无法启动,那么需要配置文件中配置监听端口,如:配置文件为 tim.json 内容: { "im.listen": 5081}打开两个浏览器标签页,任意账号都可以登录,互发信息。由于无数据库,因此也没有离线信息,只有登录在线才能收到信息。直接用浏览器打开页面无法连接tim服务器。可以用nginx或其他任意http静态文件服务器。tim是支持无数据库模式的,在无数据库模式下,任何账号登录都无需密码。下载相应操作系统的的tim运行文件。tim也支持无配置启动。只要将页面运行起来,

2023-12-29 10:18:49 500

原创 tim实践系列——消息撤回,阅后即焚 等功能如何开发

撤回消息与阅后即焚接口是没有时间限制的。在实际业务中,可以根据实际需要,加上撤回的时间限制。而阅后即焚,可以通过一般信息阅读时间,如8秒或10秒等,在消息显示后,调用阅后即焚接口。常规消息接口也就是通常定义的聊天消息。

2023-12-26 20:19:21 427

原创 tim实践系列——内置的好友关系和群组

使用tldb数据库时,默认支持tim内置账户系统,对于内置用户系统,tim是利用tim的核心接口实现了一套特定用户逻辑关系,实际上,这一套用户逻辑不一定适合所有业务的需求,但是,tim用户系统是对标目前流行的IM业务逻辑所设计开发的,适用于大部分的IM业务。如果tim的用户系统不能适配开发者的实际业务,开发者可以配置其他数据库,使用自己的用户系统。说明:tim的所有接口,除了注册和获取token接口外,其他接口都是异步返回数据。终端在tim客户端定义的对应handler捕获tim返回的数据并进行处理。

2023-12-26 20:15:49 356 1

原创 tim实践系列——tim信息安全与账号系统

用户信息包括用户登录账号,登录密码,用户个人资料等信息等;如乱码部分,则是加密后的用户个人资料,通常来说,虽然tim提供记录修改个人资料的功能,但是个人建议 开发者对用户个人资料应该在自己的业务系统中提供接口进行增删改查,用户资料数据记录到业务数据库中,最好不记录到tim中,因为个人资料本身与IM没有直接的关联性。接入自己的业务数据库,用户通信时,使用的是 执行登录SQL返回的标识,该标识可以是字符串,也可以是整数,比如 sql返回用户id号,或直接返回用户登录账号等。

2023-12-26 20:01:34 869 1

原创 高性能分布式数据库tldb v0.0.3 发布

说明,配置文件的参数与tldb启动参数一致,参数可见《tldb 第三个版本 v0.0.3 发布。

2023-12-26 19:58:54 480 1

原创 tim实践系列——tim如何限制一个账号多个终端登录

tim的配置文件有两个字段限制登录账号:tim.json。

2023-12-26 12:11:01 1044 1

原创 tim实践系列——消息特点与如何在实际业务中使用

TimMessage是tim最主要的数据结构,所以它的功能比较复杂,也比较多,主要体现在TimMessage时可以被持久化的,并且可以通过发送者或接收者发起相应的指令进行删除,TimMessage包含多个属性字段,多种数据类型属性,可以传递不同类型的数据。在《》中,详细介绍了TimMessage的数据结构,本文主要示例它的业务使用。

2023-12-26 11:53:55 975 1

原创 web开源直播通讯平台webtim

webtim开发目的是通过界面来显示表达tim接口功能。tim是去中心化的分布式IM引擎。支持基础通讯模式,对端到端的数据流传输支持非常全面,几乎涵盖了所有端到端的通讯需求,所以webtim可以非常流畅的实现任意通讯需求。但tim的强大并非其通讯模式,而是去中心化的集群功能,tim的水平扩展能力非常强,可以支持成千上万的节点集群,没有中心依赖和限制,支持数据分布式存储,数据库节点动态扩容。前端使用tim的js客户端。调用tim服务器接口渲染页面。

2023-12-26 11:35:53 1162 2

原创 tim实践系列——用户如何实现 隐身,在线,忙碌,心情等状态

部分IM软件会有显示用户在线状态的功能,如QQ,Skype等tim本身没有用户状态的说法,也就是说TimPresence不一定非得用于定义用户状态,也可以用于发送用户信息,但是TimPresence对象不会被持久化,也没有离线信息,只有在线用户才能收到,所以它的特征比较适合用于传递用户在线状态。而且用户掉线时,tim的内部业务逻辑也是发送一条TimPresence信息给好友用户,其属性offline=true。

2023-12-16 13:57:37 133 1

原创 tim实践系列——如何使用TimPresence自定义各种用户状态

timPrecence所有值都不会影响tim的业务逻辑,所有字段都没有既定的设定值,除了id,offline,fromTid 是由服务器赋值发送之外的字段,tim服务器会将客户端发送的值原样发送给目标用户,所以,如何显示状态需要开发者自定义设定。使用timPrecence时,需要对timPresence进行赋值,一些字段不需要客户端赋值的,包括 id,offline,fromTid 这些字段是由服务器赋值发送到客户端,所以客户端对这些字段赋值是无效的。

2023-12-16 11:57:34 123 1

原创 去中心化分布式即时通讯引擎tim2.0.0

所以使用tim是信息安全的,即使内部开发人员,在不进行额外记录的情况下,也无法直接查询用户及通讯信息。当然,这是针对使用tim内置用户系统的情况,如果使用tim接入外部业务用户系统,则用户信息不受tim操作,但通讯信息依旧是加密存储的。后续的《tim实践系列》文章会逐一更新,详细介绍tim的使用。数据库存储示例截图:(

2023-12-12 12:08:13 851 2

原创 高性能日志库go-logger v2.0.3

go1.21版本就在标准库加上结构化日志库log/slog,该日志库性能非常优越,根据压测结果,slog的性能要比社区常用的第三方结构化日志库好许多,所以大部分项目日志库可以直接使用slog。是后期给数据库binlog日志开发的一个日志库,由于功能与go-logger有重合,就把两个库的代码就合并了。目前两个库代都会一起更新,实现是一致的。go-logger v2.0.3发布,该版本主要针对性能进行优化.是比较早期开发的一个库, 以简洁为主要特征。go的结构化日志库非常多,

2023-10-08 11:31:56 222 1

原创 一个新的分布式锁,功能简单且强大

tldb提供的分布式锁功能主要在中实现,调用的方法在实现,客户端的实现实际非常简单,除了目前已经实现的几种语言java,golang,python,javaScript 写的simpleClient,其实其他开发者有兴趣也可以实现其他语言的MQ客户端,完全没有技术门槛。分布式锁由tldb服务器控制,所以它相对客户端来说,也是跨语言的,如,用java客户端上锁的对象,其他语言同样无法获取该对象锁。

2023-09-26 16:45:51 206

原创 高性能分布式数据库tldb v0.0.2 发布

tldb 第二个版本 v0.0.2 发布。

2023-09-25 09:16:09 234 1

原创 thrift的网络传输性能和需要注意的问题

所以,在海量调用thrift方法的情况下,zlib模式的性能要远超非zlib的情况。当然,也可以用自己已经实现的网络服务,用io流对接thrift接口的输入输出流实现thrift的接入。无论是用thrift的网络实现,还是自己实现的网络服务,只要对接thrift,在调用thrift接口实现rpc时,都是走thrift的网络传输方式。在海量的网络传输中,这样的传输方式,网络io流写数据调用成倍增加,海量网络io数据写入导致性能急剧下降。调用thrift的方法时:thrift会找到这个方法所在的对象,调用。

2023-08-30 00:45:03 233

原创 高性能分布式数据库 tldb

tldb 主要解决分布式服务问题与数据库集群问题。基于 tldb,可以用最简洁最快的方式搭建分布式服务系统.tldb 的底层实现具备 MQ 的基本特性,因此 tldb 也是一个分布式 MQ 服务器,tldb 提供了 mq 的接口和不同语言的实现.tldb 是 nosql 数据库,并具备关系数据库的部分特点,使用 tldb 客户端操作 tldb 非常便捷.tldb 提供可视化数据操作界面和集群 MQ 等数据监控查询界面支持.tldb 集群中,数据同步,状态切换等都由 tldb 自动完成,运维成本极小

2023-08-29 13:57:33 178

原创 jdao:用最简单,最简洁的方式操作java持久层

以上完成jdao 数据源的设置操作,该数据源默认适用全部持久层对象。java 支持对象对数据库 增删改查的全部操作,返回相应的对象。//批处理结束并执行。第一步,设置数据源,如上面数据源设置即可。设置数据源(一切操作从设置数据源开始)t.commit();数据表操作全部映射为简单的对象操作。

2023-08-03 12:12:02 198

原创 go的高性能日志库 go-logger与simplelog

go-logger是golang极为高效的日志工具库,实现方式也很简洁go-logger与uber实现的高性能日志库zap 从性能压测结果看,go-logger在性能与内存消耗上都有优势。

2023-07-21 13:28:16 521 1

XML.chm(中文教程)

XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。本教程较为全面的分析的xml的各个知识点。

2009-12-12

struts入门.pdf

struts1入门教程。 Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。

2009-12-12

MINA-2[1].0.0-M4.rar

mina的api,英文版。Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架

2009-12-12

javamail-1_4_1.zip

JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。

2009-12-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除