Go-xorm自动生成数据表对应struct
使用 golang 操作数据库的同学都会遇到一个问题 —— 根据数据表结构创建对应的 struct 模型。因为 golang 的使用首字母控制可见范围,我们经常要设计 struct 字段名和数据库字段名的对应关系。这是一个非常繁琐的过程。今天,记录一种自动生成代码的方法 —— xorm 工具。
关于 xormxorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。官网http://www.xorm.io/电子书XORM操作指南
常用命令xorm 是一组数据库操作命令的工具,包含如下命令:
12345reverse 反转一个数据库结构,生成代码shell 通用的数据库操作客户端,可对数据库结构和数据操作dump Dump数据库中所有结构和数据到标准输出source 从标注输入中执行SQL文件driver 列出所有支持的数据库驱动
编译xorm工具下载数据库驱动
1234go get github.com/go-sql-driver/mysql //MyMysqlgo get github.com/ziutek/mymysql/godrv //MyMysqlgo ...
使用nc命令监听端口及远程同步文件
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。
nc的作用
实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
端口的扫描,nc可以作为client发起TCP或UDP连接
机器之间传输文件
机器之间网络测速
常用参数-l用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
-p <port>老版本的nc可能需要在端口号前加-p参数
-s指定发送数据的源IP地址,适用于多网卡机
-u 指定nc使用UDP协议,默认为TCP
-v输出交互或出错信息,新手调试时尤为有用
-w超时秒数,后面跟数字
-z表示zero,表示扫描时不发送任何数据
常用用法启动tcp端口监听1nc -l 1234
启动端口监听,监听1234端口
测试
1telnet localhost 1234
响应
123Trying 127.0.0.1...Connected to localhost.Escape character is ...
Docker安装Fluentd并管理 Docker 日志
问题Docker每个容器运行一个单独的进程,进程的输出,一般保存在容器中,或者挂载在主机的磁盘上。这样会存在一些问题:
日志无限制的增长。Docker 以 JSON 消息记录每一行日志,这能引起文件增长过快以及超过主机上的磁盘空间,因为它不会自动轮转。
docker logs 命令返回在每次它运行的时候返回所有的日志记录。任何长时间运行的进程产生的日志都是冗长的,这会导致仔细检查非常困难。
日志位于容器 /var/log 下或者宿主机磁盘空间上。
Docker 日志选项有几种方法可以处理当前的 Docker 的日志:
在容器内收集除了正在运行的应用程序之外,每个容器设置一个日志收集进程。baseimage-docker 使用 runit 连同 syslog 作为一个示例。
在容器外收集一个单独的收集 agent 运行在主机上,容器有一个从该主机挂载的卷,它们把日志记录在那里。
在单独的容器中收集这是一个在主机上运行收集 agent 的细微变化。该收集 agent 也是运行在一个容器中并且该容器的卷是使用 docker run 的 volumes-from 选项被 ...
微信开放平台invalid signature错误解决
使用的是微信开放平台,第三方授权,通过第三方获取js_api_ticket, 然后sign后返回给前端页面,但前端页面一直爆config:invalid signature这个错误
错误排查使用微信签名校验工具https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign校验后是正常的
排查access_token参考https://www.jianshu.com/p/da1fddf1a0f2排查access_token,是使用的公众号的authorizer_access_token,非第三方平台的component_access_token
最终错误,获取ticket接口错误后参考https://segmentfault.com/q/1010000002520634注意jsapi_ticket的生成,别调到卡券ticket的生成接口了,type要传”jsapi”
1$url = sprintf("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token ...
微信开放平台第三方授权4001错误
使用微信第三方授权,获取api_component_token错误。
错误提示1errcode:40001 errmsg:invalid credential, access_token is invalid or not latest hint
1234567891011121314private function _get_component_access_token(){ $url = 'https://api.weixin.qq.com/cgi-bin/component/api_component_token'; $data = '{' . "\r\n" . ' "component_appid":"' . $this->appId . '" ,' . "\r\n" . '"component_ ...
Docker搭建Orange Api网关
Orange介绍orange 是一个基于 openresty 的API Gateway,提供API及自定义规则的监控和管理,如访问统计、流量切分、API重定向、API鉴权、WEB防火墙等功能。Orange可用来替代前置机中广泛使用的Nginx/OpenResty, 在应用服务上无痛前置一个功能丰富的网关系统。
相关文档Orange官方安装文档使用文档
Docker安装OrangeOrange Github
Docker安装Orange安装Mysql1docker run --name orange-database -e MYSQL_ROOT_PASSWORD=your_root_pwd -p 3306:3306 mysql:5.7
进入Mysql容器
1docker exec -it orange-database /bin/bash
创建Orange DB
123CREATE DATABASE orange;CREATE USER 'orange'@'%' IDENTIFIED BY 'orange';GRA ...
centos7安装docker
错误本机CentOS7,安装docker之后出现了“Segmentation Fault or Critical Error encountered. Dumping core and abort”这个错误。
原因安装时使用的 yum install docker,但实际上CentOS7上需要安装docker-io
解决卸载后重装docker-io查询已安装服务
1yum list installed |grep docker
卸载
1yum -y remove docker
安装docker-io
1yum install -y docker-io
启动
1service docker start
查看版本
1docker --version
测试
1docker run hello-world
docker push私有仓库错误
docker push 错误上传镜像报错:server gave HTTP response to HTTPS client
想使用 127.0.0.1:5000 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 192.168.199.100:5000 这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。
这是因为 Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,或者查看下一节配置能够通过 HTTPS 访问的私有仓库。
Linux系统修改Ubuntu 16.04+, Debian 8+, centos 7等使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
12345678{ "registry-mirror": [ "https://registry.docker-cn.com" ], "insecure-r ...
安装Redis集群
Redis集群Redis 集群由多个运行在集群模式(cluster mode)下的 Redis 实例组成, 实例的集群模式需要通过配置来开启, 开启集群模式的实例将可以使用集群特有的功能和命令。
开启集群一般需要修改如下配置
12345port 7000cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yes
cluster-enabled 选项用于开实例的集群模式。cluster-conf-file 选项则设定了保存节点配置文件的路径, 默认值为 nodes.conf 。无须人为修改, 它由 Redis 集群在启动时创建。
集群正常运作至少需要三个主节点, 不过在刚开始试用集群功能时, 强烈建议使用六个节点
安装RedisMac上安装使用brew
1brew install redis
安装后路径为/usr/local/opt/redis
123456789cd /usr/local/opt/redismkdir cluster-testcp /usr/local/ ...
PHP安装mongo扩展
PHP安装mongo扩展,Mac使用brew安装mongo失败,改用pctl安装
使用Laravel中,提示Class 'MongoDB\Driver\Manager' not found,显示需要安装扩展。查询Mac 上安装mongodb教程,都是按照下面命令安装:
1234brew tap homebrew/php#brew install phpxx-mongodbbrew install php72-mongodb
但都提示安装失败。
Brew安装已取消后查看官网文档,了解到这种方式已经取消。
Homebrew 1.5.0 deprecated the » Homebrew/php tap and removed formulae for PHP extensions.
Going forward, macOS users should install the driver with PECL.
Community forks of the » Homebrew/php tap may still contain formale for installing ...