Powershell 美化设置

post-git

1
Install-Module posh-git -Scope CurrentUser

DirColors

1
Install-Module DirColors -Scope CurrentUser

oh-my-posh

1
Install-Module oh-my-posh -Scope CurrentUser

配置

在powershell中输入$PROFILE查看配置文档路径:

1
2
PS C:\Users\BaiYang> $PROFILE
C:\Users\XXX\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

在这个文档中输入

1
2
3
4
Import-Module DirColors
Import-Module oh-my-posh
Set-Theme Paradox
Import-Module PSReadLine

重新启动powershell既可

  • 字体使用更纱黑体

docker-compose 部署mongodb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: '3.7'

services:

mongo:
image: mongo
container_name: mongo
ports:
- 27017:27017
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root123

mongo-express:
links:
- mongo
image: mongo-express
container_name: mongo-express
restart: always
ports:
- 8081:8081
volumes:
- /etc/localtime:/etc/localtime:ro
- /home/mongo/db:/data/db
environment:
# ME_CONFIG_BASICAUTH_USERNAME: admin
# ME_CONFIG_BASICAUTH_PASSWORD: admin
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: root123

SSH 传输文件

传输本地文件到远程

1
scp C:\Users\BaiYang\Desktop\docker-compose.yml root@192.168.2.99:/root/docker/nsq
  • 如果需要指定端口,加入-P参数
    1
    scp -P 222

远程下载文件到本地

1
scp root@192.168.2.99:/root/docker/nsq/docker-compose.yml C:\Users\BaiYang\Desktop

传输本地目录到远程

1
scp -r C:\Users\BaiYang\Desktop\test root@192.168.2.99:/root/docker

远程下载目录到本地

1
scp -r root@192.168.2.99:/root/docker/test C:\Users\BaiYang\Desktop

docker-compose 部署nsq

lookup 和 admin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: "3.7"
services:
nsqlookupd:
image: nsqio/nsq
container_name: nsqlookupd
restart: always
ports:
- 4160:4160
- 4161:4161
volumes:
- /etc/localtime:/etc/localtime:ro
command: /nsqlookupd
nsqadmin:
image: nsqio/nsq
container_name: nsqadmin
restart: always
ports:
- 4171:4171
volumes:
- /etc/localtime:/etc/localtime:ro
command: /nsqadmin --lookupd-http-address=192.168.2.99:4161

nsqd

1
2
3
4
5
6
7
8
9
10
11
12
version: "3.7"
services:
nsqd:
image: nsqio/nsq
container_name: nsqd
restart: always
ports:
- 4150:4150
- 4151:4151
volumes:
- /etc/localtime:/etc/localtime:ro
command: /nsqd --broadcast-address=192.168.2.99 --lookupd-tcp-address=192.168.2.99:4160

vscode go proxy设置

问题

在使用vscode进行go语言开发时,vscode需要自动安装一些插件来辅助开发,但是经常碰到安装不成功的情况,这是需要设置vscode中的proxy。

设置方法

“管理”-“设置”-搜索“proxy”,在Http:Proxy中填入proxy地址即可:

效果

重新安装插件看看效果:

安装成功,搞定!

go get 国内无法使用解决方法

问题

在国内,使用go get 获取包时,经常碰到https fetch failed
例如执行go get -v -u github.com/sqs/goreturns:

1
2
3
github.com/sqs/goreturns (download)
Fetching https://golang.org/x/tools/imports?go-get=1
https fetch failed: Get https://golang.org/x/tools/imports?go-get=1: dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

解决方法

使用代理获取(代理自行配置)。

windows

在PATH路径下新建goget.bat文件:

1
2
3
4
5
6
@echo off

set http_proxy=socks5://127.0.0.1:1080
set https_proxy=socks5://127.0.0.1:1080

go get %*

然后需要使用go get时,直接使用goget代替即可。
例:

1
goget -v -u github.com/sqs/goreturns

问题解决。

Go 实现一个分组排队取号叫号的逻辑

本文github代码库:https://github.com/zboyco/queuegroup


业务场景(这个包产生的原因)

  1. 在我们的项目中,由同一个客服端发送到服务器的请求,必须按照请求的顺序进行处理(数据只存在服务端,下一个请求的基础数据就是上一个请求运算完成后的结果);
  2. 无法保证客服端请求一定严格收到返回后才发送下个请求,偶尔客户端会短时间内发送多个请求,如果直接并发处理会导致数据错误或丢失(多个请求使用旧数据进行运算)。

思路

  1. 由于请求需要的基础数据依赖于上一次请求的结果,自然想到需要将请求串型处理,说到串型处理,那就是队列了,由于我们只需要对同一客户端发送的请求进行串型处理,所以就需要分组队列,每个组单独一个队列即可。
  2. 在我们的需求中,主要是每个请求的基础数据依赖于上一个请求,那么只需要在当前请求运算结束以前阻塞后面的请求获取基础数据即可,也就是在当前请求返回前,独占这个队列,不让后面的请求使用。

基于上面两点,我联想到了车站排队购票或者医院排队挂号等线下排队的情形,基本和我们的需求相同,再结合银行的取号排队方式,实现一个分组队列方法: