首页 文章 精选 留言 我的

精选列表

搜索[数据库客户端],共10000篇文章
优秀的个人博客,低调大师

okhttps v2.4.5 已经发布,轻量级 HTTP 客户端

okhttps v2.4.5 已经发布 此版本更新内容包括: 1、Websocket 新增 status() 方法 2、WebSocketTask 新增 isConnected() 方法,可判断连接是否已建立 3、抽象 DataSet(只读数据集)接口,Mapper 和 Array 为其子接 4、优化文件下载控制部分代码 因上版发布比较仓促,建议 v2.4.4 都升级到 v2.4.5 详情查看:https://gitee.com/ejlchina-zhxu/okhttps/releases/v2.4.5

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

gout v0.1.2 发布,Golang 实现的 http 客户端

项目地址 https://gitee.com/guonaihong/gout https://github.com/guonaihong/gout changlog #241上传进度(在v0.0.4版本中间件里面实现https://github.com/antlabs/gout-middleware) #248调整FormFile和FormType的优先级 #250新增关闭301中间件 上传进度条 currBytes是已经上传数据,totalBytes是数据总大小. currBytes/totalBytes就是上传进度百分比 package main import ( "bytes" "github.com/antlabs/gout-middleware/request" "github.com/guonaihong/gout" ) func main() { gout.POST(":8080").RequestUse(request.ProgressBar(func(currBytes, totalBytes int) { fmt.Printf("%d:%d-->%f%%\n", currBytes, totalBytes, float64(currBytes)/float64(totalBytes)) })).SetBody(strings.Repeat("1", 100000) /*这里构造大点的测试数据,使用时换成真实业务数据,就可以看到效果*/).Do() }

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

gout v0.1.0 发布,golang 实现的 http 客户端

项目地址 https://gitee.com/guonaihong/gout https://github.com/guonaihong/gout changlog #226bench:设置Rate(压测频率),Number和Duration会有误差(pr:#227) #231明确SetBody, BindBody传递nil指针返回错误(pr:#232) #235请求中间件设计(pr:#236) #234新增gzip压缩请求body功能 #233打开debug模式,http.Header数据里面有%号效果优化(pr:#239) 重要特性(加入请求中间件设计) 请求中间件地址 https://github.com/antlabs/gout-middleware 请求中间件example 请求body使用gzip压缩 import ( "github.com/antlabs/gout-middleware/request" "github.com/guonaihong/gout" ) func main() { gout.POST(":6666/compress"). RequestUse(request.GzipCompress()). SetBody("hello world"). Do() }

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

Seata 客户端需要同时启动 TM 和 RM 吗?

在分析启动部分源码时,我发现 GlobalTransactionScanner 会同时启动 RM 和 TM client,但根据 Seata 的设计来看,TM 负责全局事务的操作,如果一个服务中不需要开启全局事务,此时是不需要启动 TM client的,也就是说项目中如果没有全局事务注解,此时是不是就不需要初始化 TM client 了,因为不是每个微服务,都需要 GlobalTransactional,它此时仅仅作为一个 RM client 而已。 于是我着手将 GlobalTransactionScanner 稍微更改了初始化的规则,由于之前 GlobalTransactionScanner 调用 初始化方法是在 InitializingBean 中的 afterPropertiesSet() 方法中进行,afterPropertySet() 仅仅是当前 bean 初始化后被调用,此时无法得知当前 Spring 容器是否有全局事务注解。 因此我去掉了 InitializingBean,改成了是实现 ApplicationListener,在实例化 bean 的过程中检查是否有 GlobalTransactional 注解的存在,最后在 Spring 容器初始化完成之后再调用 RM 和 TM client 初始化方法,这时候就可以根据项目是否有用到全局事务注解来决定是否启动 TM client 了。 这里附上 PR 地址:https://github.com/seata/seata/pull/1936 随后在 pr 中讨论中得知,目前 Seata 的设计是只有在发起方的 TM 才可以发起 GlobalRollbackRequest,RM 只能发送 BranchReport(false) 上报分支状态个 TC 服务端,无法直接发送 GlobalRollbackRequest 进行全局回滚操作。具体的交互逻辑如下: 那么根据上面的设计模型,自然可以按需启动 TM client 了。 但是 Seata 后面的优化迭代中,还需要考虑的一点是: 当 Provider 服务出现异常时,是否可以直接由 Provider 的 TM client 发起全局回滚?这也就意味着可以缩短分布式事务的周期时间,尽快释放全局锁让其他数据冲突的事务尽早的获取到锁执行。 也就是说在一个全局事务当中,只要有一个 RM client 执行本地事务失败了,直接当前服务的 TM client 发起全局事务回滚,不必要等待发起方的 TM 发起的决议回滚通知了。如果要实现这个优化,那么就需要每个服务都需要同时启动 TM client 和 RM client。 更多精彩文章请关注作者维护的公众号「后端进阶」,这是一个专注后端相关技术的公众号。 关注公众号并回复「后端」免费领取后端相关电子书籍。 欢迎分享,转载请保留出处。

资源下载

更多资源
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文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册