自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Redis分布式锁

顾名思义,就是分布式项目开发中用到的锁,可以用来控制分布式系统之间同步访问共享资源。在整个系统提供一个全局、唯一的获取锁的“东西”,然后每个系统在需要加锁时,都去问这个“东西”拿到一把锁,这样不同的系统拿到的就可以认为是同一把锁。至于这个“东西”,可以是Redis、Zookeeper,也可以是数据库。一般来说,分布式锁需要满足的特性有这么几点:1、:在任何时刻,对于同一条数据,只有一台应用可以获取到分布式锁;2、

2023-02-03 15:53:50 95

原创 Redis分布式集群的数据一致性

但是由于单节点redis的并发访问瓶颈(读12W/s,写8W/s),而且单节点无法保障高可用,所以我们生产环境会使用redis集群,redis集群的使用会提高并发上限,提高水平扩容能力,并保障redis的高可用,但是,也会引发数据一致性问题。从节点网络中断后恢复,从节点根据记录的偏移量,去主节点的积压缓冲区找这段时间确实的数据,主节点把这部分数据发送到从节点,从节点可以快速的实现数据同步。更新操作时,先删除缓存,再更新数据库,更新完成后,延迟几十到几百毫秒,再删除缓存,保证它的最终一致性。

2023-02-01 17:59:52 1009

原创 微服务框架go-micro探究

微服务框架go-micro探究一、简介二、主要功能三、处理请求流程四、架构设计1. client2. server3. broker4. codec5. registry6. selector7. transport五、应用实例1. server端2. client端 一、简介 go-micro是一个插件化的基础框架,基于此可以构建微服务。在架构之外,它默认实现了consul作为服务发现(2019年源码修改了默认使用mdns),通过http进行通信,通过protobuf和json进行编解码。 二、主要功能

2021-12-20 21:38:09 424

原创 Docker常见网络操作

Docker容器既可以让外部访问,也可以访问外网,还可以容器间相互访问。Docker本身提供了很多对网络的配置命令。bridge模式是Docker容器的默认组网模式,因此没有特别说明的情况下下文使用的都是bridge网络模式。 #查看容器IP 一般有两种方式:从外面看和从里面看。 从外面看即使用docker inspect命令: docker inspect 03239f954f00d367073511ea465a057a6121ce805b36e80fcf0d11906c9c6446 | grep "IP

2021-10-31 16:34:01 374

原创 Docker网络模型

Docker网络模型1、Linux容器2、Docker的四大网络模型 1、Linux容器 容器不是模拟完整的操作系统,而是对进程进行隔离。 Docker是对底层Linux容器的一种封装,提供简单易用的接口。Docker将应用程家与该程序的依赖包打包在同一个文件中,即所谓的Docker image。 运行Docker image就会生成一个Docker容器。 容器和宿主机共享操作系统,而且还可以实现资源的动态分配。 2、Docker的四大网络模型 利用network namespace,可以为Docker容器

2021-10-31 14:09:55 400

原创 golang处理utf16编码数据

香港交易所提供的 OMD-C服务将数据以字节流的形式下发,其中汉字使用utf16编码,而 golang 程序则默认utf8编码,会造成解析乱码。 UTF-8 使用一至四个字节为每个字符编码,其中大部分汉字采用三个字节编码,少量不常用汉字采用四个字节编码。因为 UTF-8 是可变长度的编码方式,相对于 Unicode 编码可以减少存储占用的空间,所以被广泛使用。 UTF-16 使用二或四个字节为每个字符编码,其中大部分汉字采用两个字节编码,少量不常用汉字采用四个字节编码。UTF-16 编码有大端序和小端序之别

2021-06-10 14:50:22 1217

原创 服务器性能,数据库压测工具sysbench

sysbench@TOC 服务器性能,数据库压测工具sysbench 安装sysbench sudo apt -y install sysbench; sysbench --help命令执行成功表示安装成功 下载测试脚本; wget https://github.com/akopytov/sysbench/archive/1.0.15.zip 如果命令执行不成功,可以把网址用浏览器打开,浏览器会自动下载 测试命令 往mysql写入数据:sysbench ./tests/include/oltp_lega

2020-05-28 14:06:29 147

原创 Golang设计模式 之工厂方法模式

工厂方法模式 工厂方法模式使用子类的方式延迟生成对象到子类中实现。 Go中不存在继承 所以使用匿名组合来实现 Show Code Time package factorymethod //Operator 是被封装的实际类接口 type Operator interface { SetA(int) SetB(int) Result() int } //OperatorFactory 是工厂接口 t...

2019-04-15 21:57:10 126

原创 Golang设计模式 之简单工厂模式

Golang设计模式 之简单工厂模式 定义NewXXX函数来初始化相关类,NewXXX函数返回接口时就是简单工厂模式。 Show Code Time type API interface{ Learn(book string) string } type Student struct{ } func (*Student ) Learn(book string)string{ fmt.println...

2018-11-30 14:57:15 133

空空如也

空空如也

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

TA关注的人

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