自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 rpc框架之rpcx-序列化(4)

rpc框架之rpcx-序列化(4)我们一起来探寻rpcx框架,本系列会详细讲解rpcx,尽量覆盖它的所有代码,看看这款优秀的rpc框架是如何实现的。什么是序列化编码/解码对应也就是就是序列化/反序列化的过程,我们知道,网络只能传输字节。所以在rpc中,如果客户端要传输一个Person对象给服务端,客户端必须先将**Person对象转换成转换成 []byte**(这就是序列化),然后发起rpc调用,服务端在接收到请求后,将接收到的[]byte 还原成成Person对象(这就是反序列化)。type

2020-05-29 00:53:31 947

原创 rpc框架之rpcx-远程调用(3)

rpc框架之rpcx-远程调用(3)我们一起来探寻rpcx框架,本系列会详细讲解rpcx,尽量覆盖它的所有代码,看看这款优秀的rpc框架是如何实现的。远程调用顾名思义,就是客户端发起请求,服务端接收并处理,会返回结果的过程。也就是我们说的remote procedure call(RPC)。在这个过程中会涉及到如何做服务治理,如何序列化/反序列化服务治理服务治理涉及到如何处理远程调用失败的策略: Failover、 Failfast、 Failtry、Backup。以及支持什么样的路由算法:

2020-05-26 10:20:49 1144

原创 rpc框架之rpcx-服务注册与服务发现(2)

rpc框架之rpcx-服务注册与服务发现(2)我们一起来探寻rpcx框架,本系列会详细详解rpcx的源码,会涉及到他的各个模块,看看这款优秀的rpc框架是如何实现的。概念我们先了解下几个概念注册中心:服务注册中心用来实现服务发现和服务的元数据存储。现在主流的做法是通过:zookeeper,eureka,consul,etcd 等开源框架实现。同时,注册中心需要自动剔除不可用的服务元数据。服务注册:服务端提供者将服务的元数据信息注册到注册中心的过程,这些元数据包含:服务名,监听地址,监听协议,权

2020-05-25 00:35:02 1826

原创 rpc框架之rpcx-简介(1)

我们一起来探寻rpcx框架,本系列会详细详解rpcx的源码,会涉及到他的各个模块,看看这款优秀的rpc框架是如何实现的。简介github:https://github.com/smallnest/rpcx,之所以会选择rpcx,原因有二使用简单,功能健全。rpcx框架的参照物就是java的dubbo,这对我这样十几年的java使用者来说,非常具有吸引力,况且dubbo框架是非常优秀的(成为apache的顶级项目,足以说明这一点)。这是作者对rpcx的介绍A zero cost, faster.

2020-05-22 23:59:21 2084 1

原创 viper配置框架-支持zookeeper的读取和监听(1)

接下来的几篇我们一起来学习、解读viper框架viper作为配置框架,其功能非常的强大,我们没有理由不去了解一下。我们先看官网对它的功能简介:viper是完整配置解决方案,他可以处理所有类型和格式的配置文件,他有如下功能:设置默认配置支持读取 JSON TOML YAML HCL 和 Java 属性配置文件监听配置文件变化,实时读取读取配置文件内容读取环境变量值读取远程配置系统 (etcd Consul) 和监控配置变化读取命令 Flag 值读取 buffer 值读取确切值乍一.

2020-05-21 22:59:31 526

原创 数据库事务+分布式事务

本篇讲解数据库事务的概念,以及对于分布式事务的常用解决方案ACID1.原子性(atomicity):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。2.一致性(consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态。在前面的例子中,一致性确保了,即使在执行第三、四条语句之间时系统崩溃,前面执行的语句也不会生效。因为事务最终没有提交,所以事务中所做的修.

2020-05-20 13:55:48 336

原创 zap日志框架-性能篇(3)

zap日志框架分了三篇来讲解:使用篇 ,源码篇,性能篇。我们在github上可以看到如下测试结果:msg+10个fields的情况PackageTimeTime % to zapObjects Allocated⚡ zap862 ns/op+0%5 allocs/op⚡ zap (sugared)1250 ns/op+45%11 allocs/opzerolog4021 ns/op+366%76 allocs/opgo-kit454.

2020-05-20 08:27:28 832

原创 zap日志框架-源码篇(2)

分两篇来讲解zap日志框架:使用篇,源码篇。流程分析我们先看一个 logger.Error("logger", zap.String("name", "修华师")) 会走哪些代码/**入口方法,参数信息如下:msg:消息fields :结构字段信息,可以是0-N个*/func (log *Logger) Error(msg string, fields ...Field) { //校验是否需要输出 ErrorLevel 日志 if ce := log.check(ErrorLe.

2020-05-18 15:49:22 1001 1

原创 zap日志框架-使用篇(1)

分两篇来讲解zap日志框架:使用篇,源码篇。为什么选择 zap流行的日志框架中,如:logrus,go-kit,log15,都提供了结构化、非结构化输出。使用起来大同小异,正基于此,性能+扩展 成了我们选择日志框架的两个比较重要的维度。性能参考 github上的单元测试,如下:记录一个包含10个字段的日志的消耗情况PackageTimeTime % to zapObjects Allocated⚡ zap126 ns/op+0%0 allocs/op⚡.

2020-05-15 23:05:00 1892

原创 go-入门到精通系列-003-数据类型详解(2)

未来的文盲将是那些没有知识和不会更新知识的人。成年人被淘汰的最主要原因是学习能力下降—德鲁克字符串定义和其他语言不同,go的字符串,实际上是类型为byte的只读切片。以下是官方对string的定义:string是byte的集合,通常来说是采用utf-8编码。有可能为空,但不可能为nil。属于不可变类型。// string is the set of all strings of 8-b...

2020-05-05 00:26:21 128

原创 go-入门到精通系列-003-数据类型详解(1)

出于对篇幅的控制,本章节只对 布尔类型 和 整型类型 做讲解有不懂之处,欢迎留言。想交流go的其他内容,也欢迎留言。布尔类型bool 变量比较简单,以下是bool的初始化,赋值package mainimport "fmt"func main() { //默认false var a bool //赋值为true a = true //声明变量,并赋值为true va...

2020-05-02 23:24:12 93

原创 go-入门到精通系列-002-数据类型

基本数据类型和其他语言一样,如 java,python,c++,c,并没有什么特别之处,下面对go的基础数据做简单介绍数据类型分类按照属性,可以分为四类,分别是:布尔型,数字类型,字符串类型, 派生类型类型解释例子布尔型布尔型的值只可以是常量 true 或者 falsevar b bool = true数字类型整型 int 和浮点型 float32、fl...

2020-05-01 23:00:44 135

原创 go-入门到精通系列-001-介绍

go入门到精通实战-001

2020-04-30 15:21:14 782 1

netty.in.action.2015.12.pdf 最新版

正式版,2015年12月出版,最近完整版英文资料

2017-01-16

struts-1.2.9-src.zip

struts-1.2.9的源代码,找了好久终于把它给下来了,所以共享一下!

2008-11-15

空空如也

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

TA关注的人

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