JasonHome
Welcome To Jason’s World
展开
-
RabbitMQ 基于插件 rabbitmq_delayed_message_exchange 实现延迟消息
RabbitMQ基于插件实现延时消息原创 2022-06-14 13:23:58 · 223 阅读 · 0 评论 -
RabbitMQ安装与使用
RabbitMQ 安装与基本使用原创 2022-03-31 23:07:35 · 2029 阅读 · 0 评论 -
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 · 2484 阅读 · 0 评论 -
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 · 607 阅读 · 0 评论 -
jenkins的安装、配置及基本构建(centos7)
一、部署中的痛点为什么要用jenkins?我说下我以前开发的痛点,在一些中小型企业,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打包成一个war包,可能这个项目已经上线了,需要把服务关闭后再部署到服务器上,将项目再启动起来,这个时候可能某个用户正在操作某些功能上的东西,如果需要你隔三差五的部署一下,这样的话对用户的体验很不好,自己也烦得很,集群那就更复杂了。二、什么是 jenkinsjenkins 是一个开源的、提供友好操作基面的持续集成(CI)工具,主要用原创 2022-01-20 16:38:13 · 1051 阅读 · 0 评论 -
事务与分布式事务
事务与分布式事务一、事务的概念一组sql语句操作单元,组内所有sql语句完成一个业务,如果整组成功,则意味着全部sql都成功;如果其中任何一个失败,意味着整个操作都失败。失败,意味着整个过程都没有任何意义的,应该恢复数据库操作前的状态,这种特性,叫做“事务”。二、为什么要存在事务失败后,可以回到开始的位置没都成功之前,别的用户(进程、会话)是不能看到操作内的数据修改的三、事务的4大特征(ACID)3.1 原子性功能不可再分,要么全部成功,要么全部失败3.2 一致性一致性是指数据处于一原创 2022-01-11 14:54:38 · 382 阅读 · 0 评论 -
consul 安装与使用(go+python)
1、什么是服务注册与发现1.1 什么是服务注册和发现假如这个产品已经在线上运行,有一天运营想搞一场促销活动,那么我们相对应【用户服务】可能就要新开启三个微服务实例来支撑这场促销活动。而与此同时,作为苦逼程序员的你就只有手动去 API gateway 中添加新增的这三个微服务实例的 ip 与port ,一个真正在线的微服务系统可能有成百上千微服务,难道也要一个一个去手动添加吗?有没有让系统自动去实现这些操作的方法呢?答案当然是有的。当我们新添加一个微服务实例的时候,微服务就会将自己的 ip 与原创 2021-12-20 23:08:10 · 1443 阅读 · 0 评论 -
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 · 2274 阅读 · 0 评论 -
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 · 805 阅读 · 0 评论 -
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 · 511 阅读 · 0 评论 -
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 · 1328 阅读 · 0 评论 -
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 · 594 阅读 · 0 评论 -
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 · 1012 阅读 · 0 评论 -
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 · 437 阅读 · 0 评论