谷歌浏览器模拟手机浏览器

2019-05-12 16:08:46

构建初始化环境 下载谷歌浏览器,地址:https://www.google.com/chrome/#_ga=2.207613393.314015719.1537268086-901043581.1537268086 不能下载?点击这里 构建基本环境 浏览地址先输入网址 如神马搜索:https://yz.m.sm.cn/s?q=红岩&from=wy836274&by=submit&snum=4 UA更换 Mozilla/5.0 (Linux; U; Android 7.1.1; zh-cn; OPPO R11s Build/

could not launch process: decoding dwarf section info at offset 0x0: too short

2019-03-15 11:44:35

背景 我在使用Goland进行Go的测试用例调试时,发生了could not launch process: decoding dwarf section info at offset 0x0: too short,而在终端中执行go test又能正常执行并打印我们想要的日志 原因 我的开发环境为: Mac OSX Goland:2017.03 go version:v1.11.5 我原本Go语言版本是v1.10,最近对Go的版本进行了升级,直接升级到了v1.11.5。语言版本算是正常升级了,升级语言版本对应的工具也会随着升级的。事实却是:Goland使用的是自己的dlv工具,并没有使用我们自己手动或者通过brew install安装的dlv工具,并且Goland自带的dlv工具在Mac的keychain中应该出现了未授权或者过期的情况,从而导致了以上的报错产生。 解决 解决办法有两种: 直接升级Goland的最新版本,最新版本里面解决了这个问题 如若遇到了更新最近版Goland遇到激活问题,请点击这里 更新dlv工具,

Go zk(zookeeper)服务发现

2019-02-26 14:58:42

简介 zk同etcd一样,存储数据格式均采用key-value类型,而我们在进行微服务开发时,这两者大部分的应用场景都是应用在服务发现以及服务配置上。 流程 基于zk的服务注册与发现大致流程如下: 如:A、B两个服务均在内网环境,A需要向B发起接口调用,A需要从本地的缓存中获取出B对应的调用ip:port信息,然后向B发起调用。A中的缓存是A服务在启动时就开启了一个协成或线程用于从zk中拉取或监听服务数据,而zk的服务数据是通过B在启动时开启了一个TCP长连接向zk进行的服务注册。 实现 整个流程相对简单,以下为服务发现的监听测源码,该源码依赖 github.com/samuel/go-zookeeper package main import ( "fmt" "time" "github.com/samuel/go-zookeeper/zk" ) var ( path = "/entry/test" ) func main() { c, _, err

Docker之镜像创建及部署

2019-02-20 23:33:56

上篇文章提到了一些简单的docker命令,这里主要展示一下我们如何将我们需要的服务利用docker一步一步把它跑起来,文章内容不够全面,仅供学习参考使用。 穿梭门:Docker之常用命令 尝鲜 我们可以从最简单的Hello World开始,感受一下Docker的运行效果,直接在命令行执行下面的命令,就能从官方仓库中拉取指定名字的镜像。如果拉取的是自己或其他渠道提供的镜像,pull后面带指定路径即可。 docker pull hello-world 拉取成功后执行docker images可以看到拉下来的镜像列表,然后我们直接跑起来 docker run hello-world 输出这段提示后,hello world就会停止运行,容器自动终止。有些容器不会自动终止,因为提供的是服务,比如我们常部署的服务等。 注: docker run命令具有自动抓取image文件的功能,如果发现本地没有指定的image,就会从仓库中自动抓取,也就是前面的docker pull并不是必须的。 正餐 上面的hello-world明显不能满足我们的欲望,我们的实际需求是将我们自己原本跑在VM或物理机上的服务能部署在Docker上面,那我们现在就开始吧。 Dockerfile 要达到我们的目的,不能离开的就是这个Dockerfile文件,Docker是根据该文件来生成二进制的image文件。我们直接使用一个实际的样例来进行讲解,新建一个文件并命名Dockerfile FROM centos RUN

Docker之常用命令

2019-02-19 09:49:39

简介 Docker的命令很多,但根据二八原则,会使用常用的那两层命令足以应付八层场景。 命令 更多命令建议使用docker --help的方式查看,针对某一个具体的command也可以使用docker [CMD] --help的方式查看,命令用法比较详细。 镜像搜索 使用docker search进行镜像资源搜索,搜索来源于镜像仓库,默认是Docker Hub中,国内腾讯云或阿里云均有镜像加速器 docker search [name] 注: NAME:镜像仓库名称。 DESCRIPTION:镜像仓库描述 STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub的 star OFFICAL:表示是否为官方仓库,该列标记为[0K]的镜像均由各软件的官方项目组创建和维护 AUTOMATED:表示是否是自动构建的镜像仓库 拉取镜像 从docker仓库中获取指定镜像 docker pull name:[tag] 注: 从仓库中拉取指定的镜像,后面tag为指定镜像版本,也可以不指定,默认为latest

Expect脚本之一键登录

2019-01-29 11:14:59

工作中我们常常会进行各种服务器的登录跳转等,我们是不是每个服务器的账号密码这些都要记住呢?每登录一次我们是不是都要ssh一下?我们有不有什么办法能简化这些繁琐的操作?有!用expect

golang之uint8、int8与byte的区别

2018-01-24 10:30:38

简单说明 uint8与byte可以说是一样的,因为文档中有这样的定义: The Go Programming Language Specification Numeric types uint8 the set of all unsigned 8-bit integers (0 to 255) byte alias for uint8 也就是说,我们在需要将这两种类型转换为string的时候都是可以直接使用string()来进行的。 而int8的取值范围为-128~127,所以int8不能直接与uint8、byte进行直接转换。 举例 注:部分来源于网上 uint8&&byte package main import ( "fmt" ) func ByteSlice(b []byte) []byte