自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无尘的躺坑记录

菜鸡博主

  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 thinkphp5 使用 RabbitMQ代码示例,amqp扩展非php-amqplib

本文所使用的是PHP的amqp扩展,不是composer安装的php-amqplib在控制器里封装了一个基类<?phpnamespace app\home\controller;/** * RabbitMQ 基类 * 直连模式 */class RabbitMqController{ private $conn; private $channel; private $ex; private $queue; private $routingKey

2022-05-31 13:53:43 904

原创 一脚踢你进Go语言大门!入门者必看,万字长文,建议收藏!

第一部分:一脚踢你进Go语言大门!基础不牢,地动山摇1.第一个例子:Hello Worldpackage mainimport "fmt"func main(){ fmt.Println("Hello World")}第一行 package main 代表当前的文件属于哪个包,package 是 go 语言生命包的关键字,main 是包名,main包是一个特殊的包,代表此项目为一个可运行的应用程序,而不是一个被其他项目引用的库。第二行 import “fmt” 是导入一个 fmt

2021-07-11 20:13:15 503

原创 技术人能没有个人博客?10分钟搭建一个免费的个人博客,多香哦~

您诸位好啊,我是无尘。身为一名技术人,怎么能没有一个属于自己的博客系统呢?难道要买一台云服务器?新用户还好,优惠力度不小,赶上个购物节,小几百就能买上几年的。然而非新用户就尴尬了,续费金额属实不便宜啊。不卖关子了,说说今天的主角 Hugo,Hugo是由Go语言实现的静态网站生成器。可以将生成的静态页面部署到github。准备工作:有github账号有安装 git会使用 markdown 编写文档身为技术人,我这里默认诸位已经准备好了,废话不多少,赶紧实战:框架搭建在 Hogo框架下载

2021-07-03 13:32:12 366

原创 Lorem Ipsum(哑元文本)IDE 使用

编辑器中输入 lorem 然后按 tab 键,便可自动生成无意义字符,来占位。一些使用规则:loremN ,其中 N 是一个数字,代表有 N 个词语(注意不是字符串长度为 N )lorem*M,其中 M 是一个数字,代表有 M 行loremN*M ,填充 M 行内容,每行 N 个词语快速生成包含网页节点的内容4. P*4>lorem105. a.test#ok>lorem106. ul.generic-list>li#test2>lorem10.item3.

2021-06-16 13:55:18 635

原创 RabbitMq 初级入门,模式介绍+代码,go版

package mainimport ( "fmt" "github.com/streadway/amqp" "log")//连接信息const MQURL = "amqp://imoocuser:imoocuser@127.0.0.1:5672/imooc"//rabbitMQ结构体type RabbitMQ struct { conn *amqp.Connection channel *amqp.Channel //队列名称 QueueName strin.

2021-06-03 00:22:31 89

原创 RabbitMQ在window下的安装部署附带软件包

一、安装Erlang安装包地址双击erllang的安装包打开之后点击next傻瓜式安装完成配置环境变量: 环境变量–>新建–>变量名:ELANG_HOME 变量值为erl安装目录环境变量–>编辑变量名为path的变量–>添加%ELANG_HOME%\bin在cmd里输入erl,如果显示版本号就说明erl配置成功二、安装RabbitMQ双击RabbitMQ的安装包注意安装目录不要有中文以及空格环境变量–>新建–>变量名:RABBITMQ_HOME

2021-06-01 23:14:00 167 4

原创 go语言微服务项目,高级篇--09上传头像-房屋信息-简单shell管理

FastDFS 和 NginxFastDFS三端:客户端:client监听端(监听服务器):tracker存储端(存储服务器):storage使用步骤:监听服务器定时查看存储服务器的状态。client 访问监听服务器, 获取到可用的 存储服务器地址。客户端根据返回的地址,访问存储服务器。存储服务器存储文件,并返回凭证。如:“组名/M00/00/00/xxxxxx”与以往的区别图片需要上传!但是不需要下载。 直接按 “凭证” 展示到 浏览器即可。fastDFS 不提供 “

2021-04-30 17:20:21 126 2

原创 go语言微服务项目,高级篇--08用户登录-获取细腻-改名-中间件

用户登录修改 GetSession 方法之前实现的 web/controller/user.go 中的 GetSession() 方法,是一个伪实现,没有真正的获取 Session。从 容器中, 真正的获取 Session,展示给浏览器。func GetSession(ctx *gin.Context) { resp := make(map[string]interface{}) // 获取 Session 数据 s := sessions.Default(ctx) // 初始化

2021-04-30 17:18:55 107 1

原创 go语言微服务项目,高级篇--07注册业务微服务-获取地域信息-Cookie-Session-用户登录

微服务实现 注册用户微服务端修改密码本 —— proto 文件syntax = "proto3";package go.micro.srv.user;service User { rpc SendSms(Request) returns (Response) {}; rpc Register(RegReq) returns (Response) {}; // 注册用户}message RegReq { string mobile = 1; string pas

2021-04-30 17:17:16 92 1

原创 go语言微服务项目,高级篇--06gorm操作mysql-创建项目用表

ORM 框架ORM 框架介绍ORM:Object Relational Mapping —— 对象关系映射。作用:通过操作结构体对象,来达到操作数据库表的目的。通过结构体对象,来生成数据库表。优点:SQL有可能 比较复杂。(Oracle — 子查询 – 嵌套)ORM 操作数据库,不需要使用 SQL不同开发者,书写的 SQL 语句执行效率不同。go语言支持的 ORM:gORM:http://gorm.book.jasperxu.com/xORM:

2021-04-30 17:15:30 231 1

原创 go语言微服务项目,高级篇--05短信验证码-获取绑定数据

短信验证码测试短信验证码申请 阿里云账号、开通短信验证码功能、申请签名、申请模板、申请 AccessKey打开 OpenAPI Explorer。选择 左侧 SendSms在中间位置依次填:华东1(杭州)、手机号、签名的名称、模板Code、{”code“:验证码}在右侧自动生成代码。 拷贝至,测试.go 程序中将 dysmsapi.NewClientWithAccessKey() 函数的 :<accessKeyId> 和 <accessSecret&

2021-04-30 17:08:30 251 2

原创 go语言微服务项目,高级篇--04图片验证码-redis-开发者平台说明

图片验证码获取 注册页面 图片验证码ID启动 web页面,点击“注册” 按钮。在 NetWork —— Headers 中 看到 错误信息!从 URL中,提取 图片验证码ID 。 保存 成 uuid查看 gin 框架 中文文档。—— “获取路径中的参数”web/main.go 中 添加 路由匹配:router.GET("/api/v1.0/imagecode/:uuid", controller.GetImageCd)web/controller/user.go 中 ,实

2021-04-30 17:06:55 380 2

原创 go语言微服务项目,高级篇--03go-mirco框架-gin框架-mvc-REST-Session

go-Micro 框架创建 micro 服务命令:micro new --type srv test66框架默认自带服务发现:mdns。使用consul服务发现:1. 初始consul服务发现: consulReg := consul.NewRegistry()2. 在 NewService 中 添加 服务。 micro.Registry(consulReg ),使用 go-micro框架 创建 客户端命令:micro new --type web test77补充 http 相关知识:

2021-04-30 17:04:10 576 1

原创 go语言微服务项目,高级篇--02micro-consul-grpc-gomicro框架

作业:grpc 远程调用。服务端 grpc初始一个 grpc 对象注册服务设置监听, 指定 IP、port启动服务。---- serve()客户端 grpc连接 grpc 服务给 grpc.Dial() 传参2 : grpc.WithInsecure() . 表示:以安全的方式操作。初始化 grpc 客户端调用远程服务。给 grpc.SayHello() 传参1: context.TODO() 表示:空对象。go-mircomicro 简介go-

2021-04-30 16:57:47 548 1

原创 go语言微服务项目,高级篇--01微服务介绍-rpc-protobuf-grpc

单体式和微服务单体式架构服务—— 过往大家熟悉的服务器。特性:复杂性随着开发越来越高, 遇到问题解决困难。技术债务逐渐上升。耦合度高,维护成本大!出现bug, 不容易排查解决旧bug, 会出新bug持续交付时间较长。技术选型成本高,风险大。扩展性较差垂直扩展:通过增加单个系统程的负荷来实现扩展。水平扩展:通过增加更多的系统成员来实现扩展。微服务优点:职责单一轻量级通信独立性迭代开发。缺点:运维成本高分部式复杂度接口成本高重复性劳动业

2021-04-30 16:53:11 365 3

原创 go语言微服务项目,基础篇--go4-聊天室

一、概述实现一个网络聊天室(群),功能分析:上线下线聊天,其他人、自己都可以看到聊天消息查询当前聊天室用户名字 who可以修改自己名字rename|Duke超时踢出效果展示:技术点分析:sockt tcp编程map结构,存储所有的用户map遍历map删除go程、channelselect(超时退出,主动退出)timer 定时器二、实现基础第一阶段:思路分析1.tcp socket,建立多个连接package mainimp

2021-04-20 16:15:20 291

原创 go语言微服务项目,基础篇--go3-socket-http

一、网络分层二、socket- Server Demo接收一个链接,而且只能发送一次数据package mainimport ( "fmt" "net" "strings")func main() { //创建监听 ip := "127.0.0.1" port := 8848 address := fmt.Sprintf("%s:%d", ip, port) //func Listen(network, address string) (Listener, error

2021-04-20 16:10:11 462

原创 go语言微服务项目,基础篇--go2-高级语法

一、基础语法补充1. switchpackage mainimport ( "fmt" "os")//从命令输入参数,在switch中进行处理func main() { //C: argc , **argv //Go: os.Args ==> 直接可以获取命令输入,是一个字符串切片 []string cmds := os.Args //os.Args[0] ==> 程序名字 //os.Args[1] ==> 第一个参数 ,以此类推 for key, cm

2021-04-20 16:06:27 824

原创 go语言微服务项目,基础篇--go1-基础语法

学习该项目能做什么go语言本身为什么学习go语言?go语言2008年前后由google公司开发,开发人员都是c语言的大佬2020年4月TIOBE排名12位开发速度快,执行效率高:开发速度:c < go < python效率:python < go < cgo语言开发的项目:docker, k8s,区块链项目(以太坊,fabric)公司开发新项目、旧项目重构:后台服务器、web服务器 ==》 使用go语言go语言找工作一般都会认为是其他语言转行过来,一般会

2021-04-19 16:31:25 601

原创 go语言微服务项目,基础篇--02-shell

一、输入输出echo回声,用于打印输出工作-n: 可以不换行-e:对字符进行转义,\t ===》 enableprintfprintf “%d,%s\n” 10 “你好”注意10 和 “你好” 两个参数之间,没有逗号3管道|使用| 可以将多个命令拼接在一起 cat /etc/passwd | grep itcast | cut -d: -f41000原理:将前一个命令的标准输出作为后一个命令的标准输入标准错误输出是不会被管道传递的cp |

2021-04-19 16:07:49 223

原创 go语言微服务项目,基础篇--01-shell

一、shell介绍shell是用户与操作系统交互工具,桥梁它本身是一个应用程序,可以使用echo $$来查看它的pidshell贝壳的意思,像一个贝壳一样将操作系统包裹起来,供用户交互使用在开发过程中,需求:统计一个日志中错误日志的条数:c,python,java,开发效率很低,需要2小时shell,几个命令就可以搞定了运维上的需求,打包,编译,预处理,批量的、重复性的操作,我们可以快速的使用shell脚本进行完成。shell开发人员是必须掌握的技能!主流的shell工具:

2021-04-19 15:43:28 454

原创 Django 开发博客项目--01环境搭建

@[123]开发环境window(64)Python 3.6.0django 2.2.3注意 : django 2.0 以上版本不再支持 Python2安装 PythonWindows 安装 python 直接去官网 找到 Python3 的下载安装包,下一步下一步安装即可。安装完成后,在命令行输入 python -V ,如果输出了版本号,说明已经安装成功使用虚拟环境虚拟环境就是从本地 Python 环境中隔离出一个全新的 Python 环境出来,可以解决项目冲突的问题。此处

2021-03-04 14:38:18 118 2

原创 07 git -- 为开源项目贡献代码

在 github 上找到开源项目,点击 Fork 按钮将别人的源代码拷贝到自己的远程仓库在自己的仓库中进行修改代码给源代码作者提交修复bug的申请 (pull request)在 github 中自己的项目里,点击 New pull request -> create pull request...

2021-03-01 10:57:04 80

原创 06 git -- 多人协同开发

一、gitflow工作流思路线上为master主分支线下新建一个dev 开发分支在dev分支下,再根据具体更能模块或者人员继续进行分支开发二、创建初始项目和版本github 中创建组织,后创建项目创建初始版本项目,并push到远程仓库git tag -a v1 -m “第一版” //为版本起标签git push origin --tags //标签推送到远程三、邀请成员git checkout -b dev //创建并切换到dev分支git push origin de

2021-03-01 10:56:19 133

原创 05 git -- beyond compare快速解决冲突

安装 beyond compare 软件在 git 中配置git config --local merge.tool bc3 : 合并工具起名为 bc3git config --local mergetool.path '/usr/local/bin/bcomp' : 配置工具路径git config --local mergetool.keepBackup false : 合并后不保留备份文件--local 表示只在当前项目生效应用git mergetool..

2021-03-01 10:55:33 306

原创 04 git -- 管理、配置

管理在项目根目录创建几个文件:.gitignorenode_modules.idea.vscode.gitREADME.mdLICENSE //开源协议在项目根目录 git initgit statusgit add .git commit -m “修改”https://gitee.com查看自己有无公钥c:\用户[用户名].ssh (是否有此.ssh文件)进入 .ssh , id_rsa.pub 为自己的公钥将公钥放入码云中,确

2021-03-01 10:54:46 69

原创 03 git -- 家和公司同步开发

一、在家里上传代码给远程仓库起别名git reomte add origin 远程仓库地址向远程推送代码git push -u origin 分支二、在公司第一次获取代码克隆远程仓库代码git clone 远程仓库地址切换分支git checkout 分支三、 在公司进行开发切换到dev分支进行开发git checkout dev把master分支合并到dev分支[仅一次]git merge master修改代码提交代码git

2021-03-01 10:43:44 443

原创 02 git -- 分支

新版本功能开发中,发现之前的版本有bug需要修复,此处用到分支git branch :查看分支git branch dev :新建dev分支git branch bug :新建bug分支git checkout dev :切换到dev分支git log分支合并到master主分支先切换到master分支git merge bug :bug分支的代码合并到master分支git branch -d bug :删除bug分支切换到dev分支继续开发新功能..

2021-03-01 10:42:59 124

原创 01 git --基础使用

一、进入需要管理的文件夹执行初始化命令git init管理目录下的文件状态git status注:新增和修改的文件都是红色管理制定文件(红边绿)git add 文件名git add .个人信息配置:用户名、邮箱git config --global user.email "XXX@XXX.com"git config --glbal user.name "Your Name"生成版本git commit -m "描述信息"查看版本记录git l

2021-03-01 10:41:42 58

原创 VUE2 入坑指南07--vuex

vuex是什么Vuex 是一个专为vue.js应用程序开发的状态管理模式;说人话:公有数据放于公共区域,做数据共享,以便各个组件之前调用vuex使用npm i vuex -S在一个模块化的打包系统中,必须显式的通过 Vue.use() 来安装 Vuex;main.js:import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex) //注册vuex到vue中var store = new Vuex.Store({ state

2021-02-02 23:31:06 94

原创 VUE2 入坑指南06--路由

路由主要要通过url 中的 hash (#) ,来实现不同页面之间的切换,特点:http请求中不会包含hash相关的内容引入:npm install vue-routerimport Vue from 'vue'import VueRouter from 'vue-router'Vue.use(VueRouter)基本使用使用 cdn 导入 vue.js 和 vue-router.js 包导入后 window 全局对象中,就有 VueRouter 的路由构造函数,在n

2021-02-02 23:14:10 121

原创 VUE2 入坑指南05--组件

组件化和模块的区别组件: 就是为了拆分vue实例的代码量,以不同的组件,来划分不同的功能模块组件和模块化的不同:模块是从代码逻辑划分的,方便代码非常开发,保证每个功能模块职能单一组件是从 UI 界面划分的,方便 UI 组件的重用创建组件的方式一、Vue.extend 来创建全局的 Vue 组件 var com1 = Vue.extend({ template:'<h3>Vue.extend 创建的组件</h3>' })Vue.c

2021-02-02 23:13:07 80

原创 VUE2 入坑指南04--动画

动画使用 transition 元素,把需要被动画控制的元素,包裹起来v-enter 进入之前v-enter-to 进入之后v-enter-active 入场动画时间段v-leave 离开前v-leave-to 立候的终止状态,此时动画已经结束v-leave-active 离场动画时间段列表动画:实现列表过渡,若是通过 v-for 循环渲染出来的,不能使用 transition 包裹,需要使用 transitionGroup ,且每项需要 :key=“ite

2021-02-02 23:11:48 136

原创 VUE2 入坑指南03--vue-resource

实现 get 、post、jsonp 请求this.$http.get(‘url’).then(function(result){​ result.body //返回的数据});//手动发起的post请求,没有表单格式(application/x-www-form-urlencoded),有的服务器处理不了//emulateJSON:true 表示为表单格式this.$http.post(‘url’, {}, {emulateJSON:true}).then(function(result){

2021-02-02 23:10:33 85

原创 VUE2 入坑指南02--生命周期

vue实例的生命周期生命周期钩子 = 生命周期函数 = 生命周期事件组件创建阶段的生命周期函数beforeCreate(){} 第一个生命周期函数,实例被创建前会执行它,此时data和methods中的数据还没初始化created(){} 第二个生命周期函数,此时 data 和methods数据刚刚初始化,可调用beforeMount(){} 第三个生命周期函数,编译模板之后,挂载渲染之前,执行到它,此时页面中的元素数据还未被vue替换mounted(){} 第四个生命周期函数,

2021-02-02 23:09:17 302

原创 VUE2 入坑指南01--指令

vuemvvmapp.js 项目入口文件router.js 路由分发controller 业务处理model 数据的curd (create read update delete)m 页面中的数据vm中间调度者v 页面html结构vue 与mvvm的对应当导入包后,浏览器内存中就多了一个vue构造函数el: 绑定区域data:el 中要用到的数据v-cloak、v-text、v-htmlv-cloak :解决插值表达式闪烁的问题,F12 online调慢网速,

2021-02-02 23:06:01 162

原创 vue+webpack环境搭建精简篇

一、新建项目目录例如 vue_webpacknpm init -y创建 dist、src 文件夹;src 中创建 index.html、main.js项目目录 npm i webpack --save-dev 安装webpack项目目录 npm i webpack-dev-server -D 安装webpack-dev-server项目根目录新建 webpack.config.js//这个配置文件,就是一个 JS 文件,通过 Node 中的模块操作,向外暴露了一个配置对象const path

2021-01-21 16:15:12 167 1

原创 从零搭建vue2+webpack3项目-下

配置处理css样式的第三方loadersrc/css/下建立 index.css文件在main.js 导入index.css文件 : import './css/index.css'导入后保存报错,没有解析css文件的loader,解决:注意: webpack默认只能处理 JS 文件跟目录cmd: npm i style-loader css-loader -D //安装处理css的loader打开webpack.config.js 配置文件,新增一个配置节点为 module:plug

2021-01-20 21:14:09 194 1

原创 从零搭建vue2+webpack3项目-上

一、系统环境安装node,此处不再讲解;nrm 的使用作用:提供了一些常用的 NPM 包镜像地址运行 npm i nrm -g :全局安装nrm包使用 nrm ls 查看当前所有可能用的镜像地址使用 nrm use npm 或 nrm use taobao 切换不同的镜像地址注意:只是提供了几个下载包的url地址,但是每次装包的时候,都是用 npm二、项目结构的搭建创建一个项目文件夹 例如webpack-study 作为项目目录在项目根目录下 npm init -y 初始化项

2021-01-20 21:12:51 171

rabitmq_down.zip

rabitmq_down.zip

2021-06-01

空空如也

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

TA关注的人

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