自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 rancher:简单搭建与使用

一. 准备环境一台运行内存4G的机子关掉防火墙和selinux,之后重启docker//重启dockersudo systemctl daemon-reload //守护进程重启sudo systemctl restart docker //重启docker服务二. rancher搭建# 拉取镜像sudo docker pull rancher/server# 运行sudo docker run -d --restart=unless-stopped --name rc -p

2020-10-14 16:51:11 92

原创 go otto js插件化

  这几天发现了一个特别有趣的东西,只要照着规定好的插件模板写,不懂go语法的人也可以交互go代码,大大提高了go代码的可扩展性,易用性。范例代码main.gopackage mainimport ( "fmt" "github.com/gin-gonic/gin" "log")func main(){ //加载文件夹下所有插件 plugins:=loadPlugins("./jsfilters") r:=gin.New() r.Use(func

2020-10-05 14:46:09 68

原创 Go简单使用nacos配置中心

一. 环境搭建安装JAVA SDK(我装的是1.8版)链接: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载nacos(我装的是1.2版)链接: https://github.com/alibaba/nacos/releases下载后解压双击运行nacos/bin路径下的startup.cmd(我这里死活运行起来,加个JAVA_HOME为C:\Program Files\Java\jdk1

2020-09-30 11:56:22 476 3

原创 go-micro2(一):简单使用

下载依赖go get github.com/micro/micro/v2@v2.5go get github.com/micro/go-micro/v2@v2.5go.mod文件module jtthinkgo 1.14require ( github.com/golang/protobuf v1.4.2 github.com/micro/go-micro/v2 v2.5.0 github.com/micro/micro/v2 v2.5.0 // indirect)代码.

2020-09-23 11:22:45 445

原创 ES7(三):用GO搜索elasticsearch数据

创建搜索模型package Modelsconst ( OrderByPriceAsc=1 //价格从低到高 OrderByPriceDesc=2 //价格从高到低)type SearchModel struct { BookName string `json:"book_name" binding:"omitempty"` BookPress string `json:"book_press" binding:"omitempty"` BookPrice1Start float32.

2020-09-17 14:24:46 929 1

原创 ES7(二):IK中文分词器安装

一. 下载中文分析器git地址:https://github.com/medcl/elasticsearch-analysis-ik/releases注意:版本必须跟elasticsearch一样,这里我选择7.4.0二. 安装# 创建一个文件夹,譬如叫做es74mkdir es74# 拷贝正在运行elasticsearch的文件到es74文件夹docker cp es:/usr/share/elasticsearch /home/shenyi/es74# 在该文件夹创建叫做ik的目录m

2020-09-14 17:59:03 120

原创 抽象工厂模式(PHP)

抽象工厂模式的PHP示例代码,便于快速理解该设计模式。结构图优化前:优化后:口罩工厂interface IMask { function showMask();}class LowEndMask implements IMask { public function showMask(){ echo "我的低端口罩\n"; }}class HighEndMask implements IMask { public functi

2020-09-14 13:58:06 41

原创 ES7(一): elasticsearch和kibana的简单搭建与使用

下载启动elasticsearch# 拉取镜像docker pull blacktop/elasticsearch:7.4# 改tagdocker tag blacktop/elasticsearch:7.4 es:74# 启用docker run -d --name es -p 9200:9200 es:74下载启动kibana# 拉取镜像docker pull blacktop/kibana:7.4# 改tagdocker tag blacktop/kibana:7.4.

2020-09-12 17:37:58 200

原创 grpc流模式

proto文件syntax="proto3";package services;//用户模型message UserInfo{ int32 user_id=1; int32 user_score=2;}message UserScoreRequest{ repeated UserInfo users=1;}message UserScoreResponse{ repeated UserInfo users=1;}service UserService{

2020-09-02 14:56:40 393

原创 go+etcd(三): 使用Go实现服务注册

service.go文件package utilimport ( "context" "fmt" "github.com/coreos/etcd/clientv3" "time")type Service struct { client *clientv3.Client}//初始化etcdctlfunc NewService() *Service { config:=clientv3.Config{ Endpoints:[]string{"192.168.56.30:.

2020-08-27 17:06:34 352 2

原创 go+etcd(二): 使用docker模拟etcd集群的创建

一. 搭建准备#创建docker网络docker network create etcdnet --subnet 172.25.0.0/16#创建配置文件mkdir -p etcd/conf etcd/datamkdir -p etcd2/conf etcd2/datavi etcd/conf/etcd.ymlvi etcd2/conf/etcd.ymletcd/conf/etcd.yml文件name: etcd1data-dir: /etcd/datalisten-client

2020-08-27 16:05:43 265

原创 go+etcd(一): etcd环境简单手工搭建

一. 搭建准备//拉取go镜像docker pull golang:1.12-alpine//下载etcd,解压出来,得到etcd-v3.4.11-linux-amd64文件夹https://github.com/etcd-io/etcd/releases//创建文件夹mkdir -p etcd/conf etcd/data//结构/home/shenyi/etcd --- conf -- data二. 运行etcd创建容器// 实例化go容器docker

2020-08-19 11:51:18 115

原创 本地压测最基本的参数调整

使用压测命令遇到的一个坑.\hey -n 3000 -c 1500 http://192.168.56.30:80/v1/prods/2000报错 [1] Get "http://192.168.56.30:80/v1/prods/2000": read tcp 192.168.56.1:49176->192.168.56.30:80: wsarecv: An existing connection was forcibly closed by the remote host.设置

2020-08-18 16:56:31 88

原创 Docker+MySql慢查询

拉取镜像。docker pull mysql:5.7准备这样一个目录我的目录 /home/shenyi -----mysql ---data ---conf --my.cnf (配置文件放在这) ---mylogmy.cnf配置文件[client]default-character-set=utf8mb4[mysql] default-ch.

2020-08-18 11:40:33 843

原创 nginx+gin+mysql 的docker环境部署

创建一个GO容器//拉取镜像docker pull alpine//因为gin要连接mysql,必须知道mysql docker容器的IP,然后更改gin代码mysql连接的IPdocker inspect <容器名> | grep IP//运行docker run --name goserver -d -v /home/gin/web:/server -w /server alpine ./build/gin/main创建一个nginx容器docker pull n.

2020-08-11 15:37:34 160

原创 使用golang的Deployment+Linux虚拟机测试

创建DeploymentTools ->Deployment ->Configuration点击+号创建,信息填完点OK编译main文件在项目的build文件夹里面创建build.bat,然后运行build文件进行编译//build.bat文件内容set GOOS=linuxset GOARCH=amd64go build -o gin ../main.go上传gin文件到虚拟机在虚拟机里运行main//通过ls可以找到main文件ls we..

2020-08-11 11:02:51 75

原创 基于Docker快速搭建MySql

拉取镜像。docker pull mysql:5.7准备这样一个目录我的目录 /home/shenyi -----mysql ---data ---conf --my.cnf (配置文件放在这)my.cnf配置文件[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4 [m.

2020-08-11 09:59:07 64

原创 go-micro学习日记(四)--熔断

一. 创建熔断Wrappers中间键。package Wrappersimport ( "github.com/micro/go-micro/client" "context" "github.com/afex/hystrix-go/hystrix" "go-micro-grpc/Services" "strconv")//熔断后默认方法func defaultProds(rsp interface{}) { models := make([]*Services.ProdMode

2020-08-06 15:32:56 130

原创 go-micro学习日记(三)--Wrapper

一. 创建Wrapper中间键。package Wrappersimport ( "github.com/micro/go-micro/client" "context" "fmt")//Wrappertype logWrapper struct{ client.Client}//Wrapper方法func (this *logWrapper)Call(ctx context.Context, req client.Request, rsp interface{}, opts

2020-08-06 14:47:08 125

原创 go-micro学习日记(二)--gPRC

一. 环境准备。创建一个consul服务中间件。安装protocol buffers。二. 编译proto文件。创建需要的proto文件。Model.proto文件 syntax = "proto3";package Services;message ProdModel{ int32 ProdID=1; string ProdName=2;}ProdService.proto文件syntax = "proto3";package Services;imp

2020-08-05 14:38:08 71

原创 go-micro学习日记(一)--HTTP

一. 环境准备。创建一个consul服务中间件。//拉取镜像docker pull consul//实例化镜像docker run -d --name=cs -p 8500:8500 consul agent -server -bootstrap -ui -client 0.0.0.0浏览器输入IP:8500,打开consul可视化web。二. 实现服务端。服务端代码。package mainimport ( "github.com/micro/go-micro/web"

2020-08-04 11:44:45 278

原创 go-micro微服务框架初体验

一. 环境准备。安装依赖包这里我用的是gomod。安装protocol buffers。下载地址: https://github.com/protocolbuffers/protobuf/releases下载解压后放入PATH路径下二. 实现服务端。新建account.proto文件。syntax = "proto3";service Greeter { rpc Hello(HelloRequest) returns (HelloResponse) {}}message

2020-08-01 18:19:43 137

原创 简单使用docker swarm内置负载均衡

一. 环境准备。准备三台机子,每台机子都要安装有docker。hostnameIPservice1192.168.56.10service2192.168.56.11service3192.168.56.12关闭防火墙。//关闭防火墙systemctl stop firewalld//开机禁用防火墙systemctl disable firewalld二. 搭建集群。拉取nginx镜像。[root@service1 ~]# dock

2020-07-29 15:33:50 161 1

原创 golang简单使用gRPC

一. 环境准备。安装gprc。go get -u google.golang.org/grpc安装protocol buffers。下载地址: https://github.com/protocolbuffers/protobuf/releases下载解压后放入PATH路径下二. 实现服务端。新建account.proto文件。syntax = "proto3";// 定义包名package account;// 可以定义多个服务,每个服务内可以定义多个接口servi

2020-07-27 17:55:10 500 1

原创 策略模式(PHP)

策略模式的PHP示例代码,便于快速理解该设计模式。创建 业务模型。//业务抽象类abstract class StrategyAbstract{ /** * 具体活动算法方法 * @return mixed */ public abstract function doAction($money);}//满减业务类class ManJianStrategy extends StrategyAbstract{ public functi

2020-07-20 23:30:02 82

原创 利用go特性实现高并发接口

一. 用go语言自带的锁。下面代码为抢购Api。//锁var mu sync.Mutex//抢购Apifunc (this *RushController) Purchase() { //商品ID goods_id := int64(1) //加锁 mu.Lock() //结束时解锁 defer mu.Unlock() //orm o := orm.NewOrm() //读取商品信息 m := models.Goods{Id: goods_id} err := o.Read(

2020-07-16 18:13:50 606

原创 基于Docker快速搭建RabbitMQ

上dockerhub拉取rabbitmq镜像。docker pull rabbitmq:3.7.7-management实例化镜像。//-d 后台运行容器//--name 自定义容器名//-p 指定服务运行的端口,本机端口:映射容器端口(5672:应用访问端口;15672:控制台Web端口号)//-v 映射目录或文件,本机目录:映射容器目录//--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名)//-e 指定环境变.

2020-07-13 18:35:52 247

原创 观察者模式(PHP)

观察者模式的PHP示例代码,便于快速理解该设计模式。创建 被观察者模型。//被观察者抽象类abstract class Subject{ //观察者列表 private $observerList = []; //注册观察者 public function attachObserver($observer){ $this ->observerList[] = $observer; } //更新观察者 public functio

2020-07-13 14:03:17 107

原创 大文件分片上传的大概思路(go语言)

前端代码下面代码为 上传页。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body>

2020-07-09 16:20:31 1006 3

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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