自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (1)
  • 收藏
  • 关注

原创 2. 用go-kit整合grpc服务

我们先简单看下如何构建一个grpc服务的,梳理出里面的主要关键点。

2024-04-23 17:27:46 640

原创 1. 用go-kit整合http服务

首先endpoint层依赖service层,我们定义一个接口比如就叫IService,我们实例化endpoint的时候就提供一个具体的IService接口实现。上面我们说到Endpoint实现不是一个标准struct,如果是我们可以给他加上IService依赖,实例化的时候提供实现即可。现在我们的每个EndPoint已经 是一个函数类型实现,想要往里填入对IService接口的依赖,可以考虑使用闭包。闭包可以让函数类型的实现依赖外部的变量,而且在使用时在加载。

2024-04-23 11:41:57 552

原创 grpc使用

首先需要一个编译工具,对应的就是一个可执行文件比如protoc.exe,protoc运行是把.proto文件转换为 c++统一格式的内存数据, 然后由语言插件把内存数据转换为各自语言的代码文件,比如go语言就提供了protoc-gen-go插件。对于旧版本的protoc工具,只要安装完了protoc工具,就能使用protoc命令,把一个定义了grpc的.protoc文件转换为.go文件, 命令要用protoc --go_out=plugins=grpc:. hello.proto。

2024-04-23 11:20:52 612

原创 jeager的使用

服务之间调用时,为了确保各自创建的span能串成一个调用链,那么服务之间需要传递trace和span相关信息。jaeger规范了信息的 格式,有提供默认方式,也支持自定义。具体的说明,可以看官方文档,对于客户端包用的,里面也有使用说明。

2024-04-19 08:41:33 983

原创 3.用go-kit整合链路追踪

项目中如果一个微服务要对其他服务暴露http api接口,需要把http client调用放到 pkg/sdk/go中实现。// ...1、拼接请求数据2、构建http client3、发送请求4、处理响应数据比如下面拿certs服务中实现的sdk举例子,代码在pkg/sdk/go/certs.go中。if err!= nil {项目采用了go-kit组件搭建,业务开发定义service接口,然后写个service实现。

2024-04-02 13:36:01 838

原创 链路追踪 - jeager

opentracing的官方文档。

2024-04-01 15:57:18 637

原创 阿里云oss使用

比如我们用上面的curl方式请求,就会拿到错误信息,看签名内容,可以发现这么请求时签名里面没用content-type内容,但是服务端签名时字符串是有octet-stream的,这样自然对不上。签名URL是用get方式获取文件,对于下载用的url,签名的时候会有content-type,用的什么,那么下载时客户端(浏览器、curl等)调用的时候也必须使用同样的content-type,否则就会提示签名错误。charset=UTF-8,所以我们生成下载的签名url时需要提供同样的content-type。

2024-03-06 17:09:21 859

原创 正则表达式

2、如果文件名称本身就是【作业_20201020_1691998649_dd70c99c-338a-4f72-96b6-d4068dea00f0.zip】,经过处理就会变为【作业_20201020_1691998649_dd70c99c-338a-4f72-96b6-d4068dea00f0_1691998649_dd70c99c-338a-4f72-96b6-d4068dea00f0.zip】,我们还原的时候也就是要把最后的一组后缀去掉。整个后缀就是 _\d+_[-0-9a-zA-Z]+来匹配。

2024-03-05 11:28:54 569

原创 xorm使用

(现在已经不这么用了,得用reverse工具,下面步骤看看就得了,是以前那么用的)1、安装xorm可执行文件想要看源码,可以访问执行完上面的go install之后,xorm的相关代码会被下载到pkg/mod下,从里面找到cmd/xorm/template文件夹,拷贝出来。比如拷贝到/home/songweiwei/templates。里面内容如下。

2023-11-14 15:29:01 104

原创 golang闭包

闭包 函数类型

2022-11-19 22:19:28 894 1

原创 ArrayList、Vector、LinkedList区别

List

2022-06-19 10:55:30 512

原创 synchronized锁

2022-06-18 23:21:10 256

原创 ReetrantLock重入锁

2022-06-17 16:28:47 158

原创 java多线程知识点合集

java面试

2022-06-17 14:15:26 211

原创 线程池底层说明

线程

2022-06-16 14:27:33 152

原创 面试题:Redis的SDS你了解么?

redis字符串

2022-06-15 21:00:22 254

原创 面试题:如何为线程池设置合适的线程数?

线程

2022-06-15 19:21:52 803

原创 TCP四次挥手

http

2022-06-14 14:52:12 207

原创 为何设计为单线程?

单线程

2022-06-14 14:46:18 231

原创 B-、B+树的区别

mysql

2022-06-14 14:35:56 3415

原创 API防重放攻击

防重放

2022-06-14 14:18:19 1325

原创 Innodb行锁

行锁

2022-06-14 12:23:03 1659

原创 mysql的mvcc版本控制

快照读

2022-06-14 10:07:17 106

原创 mysql隔离级别

隔离级别,幻读

2022-06-13 21:51:53 8433 11

原创 mysql - 分库分表

分库分表

2022-06-13 20:09:01 323

原创 mysql-主从、读写分离

读写分离

2022-06-13 10:35:14 456

原创 mysql -存储引擎

mysql

2022-06-12 14:15:39 79

原创 mysql - 索引基本介绍

索引基础

2022-06-11 21:10:33 479

原创 ceph概述

ceph

2022-06-10 16:29:03 920

原创 openstack neutron

neutron

2022-06-09 16:05:45 2672

原创 openstack-nova

nova

2022-06-08 21:15:06 2031

原创 openstack glance

学习openstack

2022-06-08 16:01:01 414

原创 mysql压缩包的安装

启动mysql(8.0)后,使用navicat(11.1.13)进行连接,报错1251: Client does not support authentication问题原因是我所使用的mysql版本是8.0,而8.0版本的数据库加密方式与5.0不一样,如果你使用旧的客户端(例如navicat)去连接就会报这个错误。解决方法有两种,换高版本navicat或者修改mysql8.0的加密方式。我们这边...

2018-05-28 18:13:01 214

原创 基于php7的项目要安装mongodb类库

公司的一个项目要从php5.6升级到php7版本,项目的mongo类库用不了,看了php手册,发现要对于php7要安装新的类库。php7需要使用的library是 mongodb而不是旧的mongo,所以要在项目中下载这个mongodb(library)。对于一个要安装mongodb library的项目,直接用composer下载,使用composer require mongodb/mongo...

2018-03-30 19:40:44 5166 1

转载 贪婪匹配

贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配。 $str = '{{a}}{{b}}';preg_match('/{{.*}}/',$str,$match);print_r($match);//Array ( [0] => {{a}}{{b}} )非贪婪匹配:在满足匹配时,匹配尽可能短的字符串,使用?来表示非贪婪匹配。 $str = '{{a}}{{b}}’;pre...

2018-03-06 15:50:27 513

原创 PC端 “微信NATIVE支付“ 原理:

PC端    “微信NATIVE支付“ 原理:首先就是调用”统一支付接口“,得到二维码code_url。调用统一支付接口需要传入很多参数,最主要的就是”通知地址“,用来接收微信支付成功通知,即支付回调。调用”统一支付接口“后得到返回值中return_code和result_code都为true,这样就说明能得到code_url。微信NATIVE支付主要有三个点:有个php脚本,调用统一支付接口得到...

2018-03-06 15:47:29 3670

原创 微信oath2.0认证的过程

微信oath2.0认证的过程用户使用微信客户端,向服务器A发来请求。服务器A响应此请求,让其请求微信服务器。    具体是让微信客户端302调转请求微信服务器,请求微信服务器获取code的url文档有,我需要加上公众号的appid,redirect_url,scope。3.  微信客户端请求微信服务器。4.  微信服务器返回带着code参数的链接,让微信客户端按照rediret_url请求。5. ...

2018-03-06 15:45:20 702

原创 redirect

当微信客户端来请求,如果发现没有证明用户身份的cookie,就让用户重定向到微信认证,据此获得用户openid和基本信息。实现逻辑是:302跳转带上cookie,cookie是要记录用户本来的请求路由,后续有用。302跳得本质,是在返回的响应的响应头中,增加location属性来告知浏览器,进行重定向。简单方式就是    header(“location:http://www.weixin.com...

2018-03-06 15:44:38 469

原创 csrf

在yii2.0中,默认csrf校验是开启的。页面中,使用小部件ActiveForm,默认会生成一个带有_csrf值的隐藏域。如果不用ActiveForm,也能调用Request中的方法自己生成。例子1:use yii\widgets\ActiveForm;use yii\helpers\Html; <?php $form = ActiveForm::begin();?><?=Ht...

2018-03-06 15:41:16 225

原创 yii2.0框架中安装redis扩展

yii2.0框架中安装redis扩展1.通过composer进行安装,到项目根目录cmd运行(推荐)    php composer.phar require --prefer-dist yiisoft/yii2-redis    或者添加    "yiisoft/yii2-redis": “~2.0.0” 到对应项目的composer.json 文件中,     再运行composer  upd...

2018-03-06 15:40:15 330

15天学会jQuery

很好地学习js的快速掌握和入门书籍,js的学习进步大家多交流

2014-04-28

空空如也

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

TA关注的人

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