- 博客(98)
- 资源 (4)
- 收藏
- 关注
原创 基于x-delayed-message插件实现RabbitMQ延迟消息(Windows)
【代码】基于x-delayed-message插件实现RabbitMQ延迟消息(Windows)
2023-02-24 17:48:47 550 1
原创 Dockerfile常用命令
Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新镜像对于开发人员:为团队提供完全一致的环境对于测试人员:直接拿开发时构建的镜像或者Dockerfile文件构建一个新的镜像即可工作对于运维人员:部署时,可以实现应用的无缝移植。
2022-12-12 23:04:28 438
原创 Docker常用软件安装(Mysql、Nginx、Redis、ES、RabbitMQ)
【代码】Docker常用软件安装(Mysql、Nginx、Redis、Elasticsearch)
2022-12-12 22:16:30 535
原创 Mysql 索引问题大揭秘(持续更新)
二、索引列使用函数三、索引列使用 like 语句四、数据类型隐式五、索引列使用 or 或 in 语句六、索引列使用 != 或 或 is null 或 is not null 语句七、复合索引7.1 建立复合索引:说明:上面建立的复合索引 c1,c2,c3,本质上是建立了三个索引:c1;c1,c2;c1,c2,c3。......
2022-07-07 14:21:46 249
原创 RabbitMQ 基于插件 rabbitmq_delayed_message_exchange 实现延迟消息
RabbitMQ基于插件实现延时消息
2022-06-14 13:23:58 250
原创 RocketMQ的安装与配置(集群)- 多Mater多Slave
一、前置条件:配置Java环境# 官网下载安装包: jdk-8u321-linux-x64.tar.gz> tar -zxvf jdk-8u321-linux-x64.tar.gz> mv jdk1.8.0_321 /usr/local/jdk1.8.0_321# 配置环境变量> vim /etc/profile# 新增Java配置export JAVA_HOME=/usr/local/jdk1.8.0_321export CLASSPATH=.:${JAVA_HOME}/
2022-03-30 15:40:13 2510
原创 Go在Linux环境下的安装与配置
GoLang在Linux环境下的搭建版本说明:Go:1.17.1Linux:Centos7使用安装包进行安装# 下载安装包wget https://golang.google.cn/dl/go1.17.1.linux-amd64.tar.gz# 将下载的包解压到 /usr/local目录下tar -zxf go1.17.1.linux-amd64.tar.gz -C /usr/local# 将 /usr/local/go/bin 添加到环境变量vim /etc/profile#
2022-01-21 15:12:40 905
原创 jenkins基于pipeline实现项目构建
1、Pipeline 是什么Jenkins Pipeline 实际上是基于Groovy实现的CI/CD领域特定语言(DSL),主要分为两类,一类叫做Declarative Pipeline,一类叫做Scripted Pipeline。1.1 Declarative PipelineDeclarative Pipeline 体验上更接近于我们熟知的 travis CI的 travis.yml,通过声明自己要做的事情来规范流程。如下所示:pipeline { agent any stage
2022-01-20 17:26:48 635
原创 jenkins的安装、配置及基本构建(centos7)
一、部署中的痛点为什么要用jenkins?我说下我以前开发的痛点,在一些中小型企业,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打包成一个war包,可能这个项目已经上线了,需要把服务关闭后再部署到服务器上,将项目再启动起来,这个时候可能某个用户正在操作某些功能上的东西,如果需要你隔三差五的部署一下,这样的话对用户的体验很不好,自己也烦得很,集群那就更复杂了。二、什么是 jenkinsjenkins 是一个开源的、提供友好操作基面的持续集成(CI)工具,主要用
2022-01-20 16:38:13 1073
原创 事务与分布式事务
事务与分布式事务一、事务的概念一组sql语句操作单元,组内所有sql语句完成一个业务,如果整组成功,则意味着全部sql都成功;如果其中任何一个失败,意味着整个操作都失败。失败,意味着整个过程都没有任何意义的,应该恢复数据库操作前的状态,这种特性,叫做“事务”。二、为什么要存在事务失败后,可以回到开始的位置没都成功之前,别的用户(进程、会话)是不能看到操作内的数据修改的三、事务的4大特征(ACID)3.1 原子性功能不可再分,要么全部成功,要么全部失败3.2 一致性一致性是指数据处于一
2022-01-11 14:54:38 408
原创 续断实现内网穿透(哲西云)
官网地址https://cloud.zhexi.tech/auth/signin安装客户端直接傻瓜式"下一步"即可建立隧道
2022-01-04 13:10:24 2155
原创 consul 安装与使用(go+python)
1、什么是服务注册与发现1.1 什么是服务注册和发现假如这个产品已经在线上运行,有一天运营想搞一场促销活动,那么我们相对应【用户服务】可能就要新开启三个微服务实例来支撑这场促销活动。而与此同时,作为苦逼程序员的你就只有手动去 API gateway 中添加新增的这三个微服务实例的 ip 与port ,一个真正在线的微服务系统可能有成百上千微服务,难道也要一个一个去手动添加吗?有没有让系统自动去实现这些操作的方法呢?答案当然是有的。当我们新添加一个微服务实例的时候,微服务就会将自己的 ip 与
2021-12-20 23:08:10 1453
原创 docker 安装 redis
安装redisdocker run -p 6379:6379 -d redis:latest redis-server查看redis是否启动可视化工具GUI for Redis : https://rdm.dev
2021-12-19 12:09:17 989
原创 grpc验证器的使用(protoc-gen-validate)
1、grpc验证器扩展包protoc-gen-validate Github地址:https://github.com/envoyproxy/protoc-gen-validate注意:This project is currently in alpha. The API should be considered unstable and likely to change2、安装与配置2.1 linux安装# fetches this repo into $GOPATHgo get -d g
2021-12-13 18:15:15 2305
原创 grpc拦截器使用(python)
Server端拦截器的使用from __future__ import print_functionfrom concurrent import futuresimport grpcfrom grpc_interceptor_test.proto import helloworld_pb2, helloworld_pb2_grpc# 继承grpc生成后的GreeterServicer类class Greeter(helloworld_pb2_grpc.GreeterServicer):
2021-12-13 11:12:54 834
原创 grpc拦截器使用(Go)
推荐一款比较好用的拦截器:go-grpc-middlewareServer端拦截器的使用package mainimport ( "context" "demo/grpc_interpretor/proto" "fmt" "google.golang.org/grpc" "net")type Server struct {}func (s *Server) SayHello(ctx context.Context, r *proto.HelloRequest) (*prot.
2021-12-13 10:42:16 534
原创 python控制grpc的metadata
1、简介gRPC让我们可以向本地调用一样实现远程调用,对于每一次的rpc调用,都可能会有一些有用的数据,而这些数据就可以通过metadata来传递。metadata是以key-value的形式存储数据的,其中key是string类型,而value是[]string,即一个字符串切片类型。metadata使得client和server能够为对方提供关于本次调用的一些信息,就行一次http请求的RequestHeader和ResponseHeaader一样。http中header的声明周期是一次http请求,
2021-12-12 22:48:10 1363
原创 Go控制grpc的metadata
1、简介gRPC让我们可以向本地调用一样实现远程调用,对于每一次的rpc调用,都可能会有一些有用的数据,而这些数据就可以通过metadata来传递。metadata是以key-value的形式存储数据的,其中key是string类型,而value是[]string,即一个字符串切片类型。metadata使得client和server能够为对方提供关于本次调用的一些信息,就行一次http请求的RequestHeader和ResponseHeaader一样。http中header的声明周期是一次http请求,
2021-12-12 22:04:29 618
原创 python的grpc结合asyncio(grpclib)
1、grpclib:一款实现asyncio的python的grpc扩展库Github下载地址:https://github.com/vmagamedov/grpclib查看grpc官方库目前刚支持自带的asyncio,初步版本,可能存在不稳定情况,有兴趣的小伙伴可以自行查看文档或源码Python 版本要求:3.6+2、定义protobuf文件syntax = "proto3";option go_package = "proto/";service Greeter { rpc
2021-12-12 21:00:32 1030
原创 ptotobuf简介与基本数据类型
官方网站https://developers.google.cn/protocol-buffers/docs/overview简介protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数
2021-12-11 23:07:08 446
原创 gRPC的四种数据流
1、简介srteam 顾名思义就是一种流,可以源源不断的推送数据,很适合传输一些大数据,或者服务端和客户端长时间数据交互,比如客户端可以向服务端订阅一个数据,服务端就可以利用stream ,源源不断地推送数据。2、四种流模式2.1 简单模式(Simple RPC)这种模式最为传统,即客户端发起一次请求,服务端响应一个数据,这和大家平时熟悉的RPC没有什么大的区别,所以不再详细介绍。2.2 服务端数据流模式(Server-side streaming RPC)这种模式是客户端发起一次请求,服务
2021-12-10 16:35:24 2831
原创 go下的grpc和protocol buffer体验
1、grpc简介Github地址: https://github.com/grpc/grpcgRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go。其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持。2、protocol buffer简介Protocol Buffer 其实是Go
2021-12-10 10:03:23 169
原创 python下的grpc和protocol buffer体验
1、grpc简介Github地址: https://github.com/grpc/grpcgRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go。其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持。2、protocol buffer简介Protocol Buffer 其实是Go
2021-12-09 22:16:31 1992
原创 GoLang下的rpc开发
GoLang下的rpc开发Python下的rpc开发可阅读我的另一篇文章:Python下的rpc开发1、Go语言的rpc之hello worldGo语言的rpc包的是建立在net包基础之上的(内置)。基于TCP协议1.1 服务端server.gopackage mainimport ( "net" "net/rpc")type HelloService struct{}func (h *HelloService) Hello(request string, reply
2021-12-09 16:49:33 296
原创 Python下的rpc开发
Python下的rpc开发1、什么是rpcRPC(Remote Procedure Call)远程过程调用,简而言之,一个节点请求另一个节点提供的服务。对应rpc的是本地过程调用,函数调用就是最常见的本地过程调用。将本地过程调用变成远程调用会面临各种问题。1.1 本地过程调用def add(a, b): total = a + b return totalprint(add(1, 2))# 函数调用过程:# 1.将1和2压入add函数的栈# 2.进入add函数,
2021-12-08 23:05:41 2471
原创 Pycharm IDE的配置与基本使用
Pycharm IDE的配置与基本使用官网地址:https://www.jetbrains.com/zh-cn/pycharm/选择指定的虚拟环境如何设置虚拟环境可参考Python的安装与配置设置快捷键eclipse模式持续补充
2021-11-28 16:41:08 1020
原创 Python的安装与配置(Linux、Windows)
Python的安装与配置(Linux、Windows)一、Linux安装系统环境:Centos71.1 提前安装好系统依赖包> yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ libffi-devel python-devel mariadb-devel2、安装Python版本:3.9.9# 获取> wget http
2021-11-28 16:16:00 1233
原创 docker 安装mysql5.7
docker 安装mysqlMysql Version :5.7一、安装msql1.1 安装镜像# 将mysql镜像拉到docker容器中> docker pull mysql:5.7# 查看镜像> docker images1.2 通过镜像启动> docker run -p 3306:3306 --name jasonmysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data/:/va
2021-11-28 11:31:48 889
rabbitmq-3.9.7-1&erlang-24.0.3&socat-1.7.3.2.rar
2021-10-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人