首页 文章 精选 留言 我的

精选列表

搜索[ 系统工具],共10025篇文章
优秀的个人博客,低调大师

分布式系统开发工具包 —— 基于Hessian的HTTP RPC调用技术

Hessian官网:http://hessian.caucho.com/ hessian是二进制web service协议。 Hessian介绍 创建Hessian服务包括四个步骤: 创建Java接口,用于提供公开服务 使用HessianProxyFactory创建客户端 创建服务实现类 在servlet引擎中配置服务 HelloWorld服务 public interface BasicAPI { public String hello(); } 服务实现 public class BasicService extends HessianServlet implements BasicAPI { private String _greeting = "Hello, world"; public void setGreeting(String greeting) { _greeting = greeting; } public String hello() { return _greeting; } } 客户端实现 String url = "http://hessian.caucho.com/test/test"; HessianProxyFactory factory = new HessianProxyFactory(); BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class, url); System.out.println("hello(): " + basic.hello()); 部署标准web.xml <web-app> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> <init-param> <param-name>home-class</param-name> <param-value>example.BasicService</param-value> </init-param> <init-param> <param-name>home-api</param-name> <param-value>example.Basic</param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/hello</url-pattern> <servlet-name>hello</servlet-name> </servlet-mapping> </web-app> Hessian序列化 Hessian类可以用来做序列化与反序列化 序列化 Object obj = ...; OutputStream os = new FileOutputStream("test.xml"); Hessian2Output out = new Hessian2Output(os); out.writeObject(obj); os.close(); 反序列化 InputStream is = new FileInputStream("test.xml"); Hessian2Input in = new Hessian2Input(is); Object obj = in.readObject(null); is.close(); 如果要序列化比基础类型或String类型更加复杂的java对象,务必确保对象实现了java.io.Serializable接口。 Hessian处理大量数据 分布式应用需要发送大量二进制数据时,使用InputStream会更加有效率,因为它避免了分配大量byte数组。方法参数中只有最后一个参数可能是InputStream,因为数据是在调用过程中读的。 下面是一个上传文件的API的例子 package example; public interface Upload { public void upload(String filename, InputStream data); } 如果返回结果是InputStream,客户端必须在finally块中调用InputStream.close()方法,因为Hessian不会关闭底层HTTP流,直到所有数据被读取并且input stream被关闭。 文件下载API: package example; public interface Download { public InputStream download(String filename, InputStream data); } 文件下载实现: InputStream is = fileProxy.download("test.xml"); try { ... // read data here } finally { is.close(); } 原文发布于:http://www.yesdata.net/2018/03/11/hessian/

优秀的个人博客,低调大师

分布式系统开发工具包 —— 基于Kryo的Java对象序列化

Kryo是用于Java语言的一个快速和高效的对象图序列化框架。Kryo项目的目的是快速、高效、方便地使用API。当需要持久化对象的时候,不论是持久化到文件、数据库还是网络,都可以使用Kryo。 目前Kryo已经到了4.0.1版本以上了。本文的介绍适用于V2.0+以上版本。 安装Kryo 一般适用maven来Kryo包。 使用官方版的Kryo的话可以引用下述配置代码 <dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>4.0.1</version> </dependency> 如果你已经在你的classpath下有了不同版本的asm了的话,上述依赖可能会碰到问题。这时你可以使用kyro-shaded jar包,它自身包含了它所需版本的asm,并且是位于在不同包里的。 <dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo-shaded</artifactId> <version>4.0.1</version> </dependency> 如果你想试用最新的特性 <repository> <id>sonatype-snapshots</id> <name>sonatype snapshots repo</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </repository> <dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>4.0.1-SNAPSHOT</version> </dependency> 开始使用Kryo库 import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryo.io.Output; import com.esotericsoftware.kryo.io.Input; // ... Kryo kryo = new Kryo(); // ... Output output = new Output(new FileOutputStream("file.bin")); SomeClass someObject = ... kryo.writeObject(output, someObject); output.close(); // ... Input input = new Input(new FileInputStream("file.bin")); SomeClass someObject = kryo.readObject(input, SomeClass.class); input.close(); Kryo类编排序列化,Output和Input类处理缓存字节和刷新到流中。 参考连接: Kryo官网 用于网络的Kryo Kryo为什么比Hessian快 原文发布于:http://www.yesdata.net/2018/03/17/kyro/

优秀的个人博客,低调大师

NSudo 8.2 发布,系统管理工具包

更新日志 添加当前用户 (提权) 模式支持 (由 xspeed1989 建议) 修复在 Windows 服务上下文使用 NSudo 遇到的阻碍性问题 (感谢 xspeed1989) 改善数处实现 修复在 NSudo 不支持的语言设置下界面显示中文的问题 (感谢 rlesch)(#56) 升级 Mile.Cpp 到最新版本 从 Mile.Project 升级到 Mile.Project.VisualStudio 最新版本 将 Mile.Windows.TrustedLibraryLoader 与 Mile.Platform.Windows 升级到 Mile.Library 最新版本 升级 VC-LTL 到最新版本 升级 Windows Template Library (WTL) 到 10.0.10320 移除 ARM32 支持 理由: https://mourinaruto.github.io/2021/05/17/Drop-ARM32-support-on-the-Windows-platform/ 改善数处文档相关的实现 改善项目网站体验 (由 青春永不落幕 贡献) 改善码云体验 使用 GitHub Actions 部署项目网站 Add German Language. (由 Steve 贡献) 移除一些试验性实现, 包括 NSudo Sweeper 添加日志支持 下载 蓝奏云:https://wwa.lanzoui.com/iP5Sqpvm2sd GitHub Releases:https://github.com/M2Team/NSudo/releases/tag/8.2 后记 该版本主要是引入了日志支持,还有命令行和 SDK 模式下的 当前用户(提权) 模式 倒是 NSudo 8.1 被跳过了,最近发布的会是 8.2 主要原因是之前自己改版本号没有去掉 Update 1 字样,于是 8.1 Update 1 先于 8.1 出现,可能会导致混淆,毕竟无忧论坛有人抢先体验了当时的那些版本 毛利

优秀的个人博客,低调大师

大模型Agent系统核心拆解:从任务规划、工具调用到记忆机制,智能自主代理实践20.3

最开始接触大模型开发的时候,一直停留在简单的问答、文本生成这类基础功能,当时只觉得大模型好用,但落地到实际项目、对接业务之后,才发现原生大模型的短板特别明显。单纯的聊天、写文案,只能满足最基础的演示场景,一旦碰到真实的工作需求,比如自动处理办公文件、批量分析业务数据、自主跟进完整工作流程,原生大模型就显得力不从心,没办法独立完成整套流程化、复杂化的任务。

优秀的个人博客,低调大师

游戏安全资讯精选 2017年 第八期:从“马甲”到“刷金”,盘点网络游戏的攻击和欺诈,微软“9月周二补丁日”发布81个漏洞补丁,系统优化工具...

假装成另外一个人参与有关自己及自己作品的讨论或者评论;大规模钓鱼攻击;木马远程攻击(RATs);刷金(Gold Farming):在游戏服务器上专门“打钱”;女巫攻击(Sybil):通过创建大量的假名标识来破坏对等网络的信誉系统

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册