自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 使用istio管理dubbo服务

Istio是什么Istio,希腊语,意思就跟他的图标一样,意扬帆起航。据说作者为了取名,翻阅了几个小时的希腊字段,主要是为了沿用k8s建立的航海主题,帆船与船舵相互配合才能扬帆起航。官方对 Istio 的介绍浓缩成了一句话:An open platform to connect, secure, control and observe services. 可以说Istio是用来处理服务间通信的基础设施层,这个简介也介绍了Istio的四个重要的功能:Connect: 控制服务间的调用流量,能够实现灰

2021-04-06 09:17:39 1576

原创 Istio学习之CRD3⃣️:ServiceEntry

Istio学习之CRD3⃣️:ServiceEntry服务网格中的工作负载想要访问网格外的服务时,有以下三种方法:允许Envoy代理将请求透传到未在网格内部配置的服务(默认,通常情况下配置更严格的控制是更可取的)配置 ServiceEntry以提供对外部服务的受控访问。对于特定范围的IP,使用global.proxy.includeIPRanges配置完全绕过Envoy代理。本篇主要来介绍一下OutboundTrafficPolicy.Mode的设置,ServiceEntry的使用与概念。介

2021-03-29 15:55:30 429

原创 Istio学习之CRD2⃣️:DestinationRule

Istio学习之CRD2⃣️:DestinationRule今天来学习Istio关于流量管理的另一个CRD——DestinationRule,根据字面意思即目标规则,我们可以理解VirtualService为流量的路由,那么DestinationRule则为流量路由之后的去处。介绍首先献上官方文档:https://istio.io/latest/zh/docs/reference/config/networking/destination-rule/样例apiVersion: networ

2021-03-28 23:40:28 344

原创 Istio学习之CRD1⃣️:VirtualService

Istio学习之CRD1⃣️:VirtualServiceIstio的自定义资源有五十多个,今天先对Network部分的VirtualService的学习做个记录。介绍首先献上官方文档:https://istio.io/latest/zh/docs/reference/config/networking/virtual-service/VirtualService主要是定义了服务的路由规则,如果流量满足了我们设定的匹配规则,则会根据我们的设定将流量发送到服务注册表中的服务/版本样例a

2021-03-25 23:43:02 303

原创 如何学习云原生

如何学习云原生什么是云原生云原生以容器、微服务、DevOps,持续交付等技术为基础建立的一套云技术产品体系。这是一种新型技术体系,是云计算未来的发展方向。从1999年到2024年,本地部署和市场云化此消彼长,企业上云的速度随着虚拟化等技术的发展大大加快,未来可能将成为各大企业的一项基础能力。所以作为一名刚入行或资深的工程师,我觉得都应该对云原生相关的概念和技术了解,提升自己的核心竞争力。如何从零开始学习云原生云原生技术体系非常的庞大,我们可能经常听到docker,k8s(kubernetes)等相关

2021-03-16 15:52:09 907

原创 Etcd V2与V3存储差异

Etcd V2与V3存储差异在Etcd v2与v3两个版本中,使用的存储方式完全不同,所以两个版本的数据并不兼容,对外提供的接口也是不一样的,不同版本的数据是相互隔离的,只能使用对应的版本去存储与获取。V2——基于内存的存储在v2版本中,数据是以树形结构完全存储在内存中的,只有进行持久化的时候才会将数据以JSON格式存储进磁盘。v2的watch机制在v2版本中,存在着一个EventHistory表,EventHistory表是有长度限制的,默认是1000.v2中存在一个全局的版本cu

2020-11-01 22:59:28 1596

原创 使用Docker快速部署你的Phalapi项目

使用Docker快速部署你的Phalapi项目为什么要用dockerdocker作为一种新兴的虚拟化技术,相较于传统的部署方式,使用docker去部署我们的项目,可以有更多的好处,如更快的部署,启动时间传统去部署我们的phalapi项目或phalapi-pro项目,需要安装nginx,php,fpm,mysql等等环境,php的拓展,nginx的配置,fpm的配置等等问题都可以花费很多时间,即使自己亲手部署过很多次,隔一小段时间后重新去部署一个新环境也会出现其他问题,使用docker可以大大缩短

2020-09-29 09:33:40 402

原创 Go基础数据结构学习——slice

Go基础数据结构学习——slicesliceSlice切片:是一个数组某部分的引用,在内存中是一个包含三个域的结构体,第一个是指向数据的第一个元素的指针,第二个是切片的长度,第三个是切片的容量type slice struct { array unsafe.Pointer len int cap int}slice不能简单使用==来测试两个slice是否拥有相同的...

2020-04-18 23:38:30 203

原创 Go基础数据结构学习——string

Go基础数据结构学习——stringstring在Go语言内存模型中用一个2字长的数据结构表示,一个是指向字符串存储的数据的指针,另一个为长度数据。type stringStruct struct { str unsafe.Pointer len int}由于string中不包含内存空间,只有一个内存的指针,可以方便的进行传输而不用担心内存拷贝,非常的轻量化,但是字符串字面量...

2020-04-14 23:24:34 333

原创 go协程控制——context

context为什么有context首先,如果我们在并发程序中,如果需要我们去通知子协程结束我们会怎么做?我们可能会通过一个channel+select去通知,如下:package mainimport ( "fmt" "time")func main() { exitChan := make(chan bool) go func() { for { ...

2020-03-09 01:49:25 484

原创 go的*锁*包——sync

go的锁包——sync上一篇文章介绍了各种锁的基本概念,这篇文章主要学习一下Go的标准库sync包,提供了基本的同步基元.要注意的是,sync除了Once和WaitGroup类型,大部分都是适用于低水平程序线程,高水平的同步使用channel通信更好一些互斥锁——Mutex互斥锁: 同一时刻只能有一个读或写的场景var mu sync.Mutexfunc main() {...

2020-03-04 23:00:12 176

原创 各种锁系列

各种锁系列平时我们在开发或学习中,数据库中,某个编程语言中经常会听到各种锁,主要用来对资源并发过程做一些限制,接下来对各种锁进行一个总结与学习!乐观锁与悲观锁首先,乐观锁与悲观锁并不是指具体的某种东西,而是一种设计的思路乐观锁 (Optimistic Lock)乐观锁表示非常的乐观,认为业务操作去拿锁并不会有什么问题(冲突),进行完业务操作后需要去更新数据的最后才去拿锁...

2020-03-02 17:05:27 454

原创 Redis通信协议——RESP

通信协议简述RESP(Redis Serialization ProtocolRedis)序列化协议Redis 协议规则:将传输的结构数据分为 5 种最小单元类型,单元结束时统一加上回车换行符号\r\n。单行字符串 以 + 符号开头。(也可用多行的形式,实现统一)多行字符串 以 $ 符号开头,后跟字符串长度。NULL长度为-1 : $-1\r\n空串长度填 0: $0\...

2019-12-18 00:14:14 239

原创 Redis——漏斗限流

漏斗限流模块——redis-cell安装: 同样使用docker安装// 拉取镜像docker pull hsz1273327/redis-cell:latest// 后台运行,映射本地6381端口docker run -d -p 6381:6379 hsz1273327/redis-cell// 运行redis-cli -p 6381主要命令解析CL.THROTTLE [...

2019-12-16 17:15:30 380

原创 Redis——布隆过滤器

安装使用rebloom作为插件安装 centos安装rebloomdocker安装:// 拉取镜像docker pull redislabs/rebloom// 后台运行,映射到本地6380端口docker run -d -p 6380:6379 redislabs/rebloom// 连接redis-cli -p 6380布隆过滤器的主要命令和误判bf.add...

2019-12-16 15:52:53 364 2

原创 Redis队列——消息队列,延迟队列

异步消息队列使用的数据结构: list主要实现: go实现简单消息队列package mainimport ( "encoding/json" "fmt" "github.com/gomodule/redigo/redis" "os")type Producer struct { // 生产者}func (p *Producer)publish(conn re...

2019-12-15 16:25:51 211

原创 Redis——分布式锁

什么是分布式锁分布式锁: 进行逻辑处理时经常会遇到并发问题。可以借助redis来实现分布式锁,简单来说就是限制两个操作不同时进行,每次执行某个操作的时候用setnx()加锁,当没被锁再执行下一个操作.限制程序的并发执行!一般步骤: 使用 setnx(set if not exists) 指令,只允许被一个客户端占坑。先来先占,用完了,再调用 del 指令释放茅坑。setnx lock:XX...

2019-12-10 15:24:29 128

原创 Redis小知识

Redis的端口为什么是9379?这个端口号也不 是随机选的,而是由手机键盘字母「MERZ」 的位置决定的。「MERZ」在 Antirez 的朋友 圈语言中是「愚蠢」的代名词,它源于意大利 广告女郎「Alessia Merz」在电视节目上说了一 堆愚蠢的话.Redis的过期清理?redis使用hashtable存储数据的过期时间,但不会时刻去检测数据是否过期,清理过期数据主要分两个阶段完成,...

2019-12-09 18:21:47 162

原创 MySQL的delete操作对表空间的影响

delete操作的几种情况drop操作: 不管什么引擎,Innodb还是myisam都会释放磁盘空间truncate操作: truncate和drop一样都会释放磁盘空间,但与drop不同的是,truncate=drop+create,就是会新建一张空表,保留了mysql的表结构delete操作:delete from table_name删除了全部数据,对于myisam会释放磁盘空间...

2019-09-16 14:20:15 568

原创 HTTP的认证

粗略的BASIC认证Base64解码后就能得到用户ID和密码,而且无法实现认证注销的操作.DIGEST认证SSL认证表单认证Session

2019-07-25 01:22:08 154

原创 安全的HTTPS与安全通信机制

HTTP存在的不足:使用明文通信,内容可能会被窃听不验证对方身份们,可以遭遇伪装无法证明报文的完整性,可能遭篡改HTTP+加密+认证+完整性保护=HTTPSHTTPS的通信:HTTPS:通信接口使用SSL和TLS协议组合的HTTP被成为HTTPS(HTTP Secure超文本传输安全协议)通信过程:先和SSL通信,再由SSL和TCP通信好处:共享秘钥...

2019-07-25 01:08:52 352

原创 HTTP首部

1.HTTP报文的结构如图:可以看到HTTP报文可以分为两部分:首部:主要是客户端与服务器分别处理请求和响应提供所需要的信息报文主体:就是用户在客户端请求资源信息通用首部请求报文和响应报文都会使用的首部Cache-Control:控制是否缓存和缓存的信息connection:控制不再转发给代理管理持久连接:HTTP/1.1都是默认持久连接的,如果想断开连接...

2019-07-24 18:07:15 268

原创 通信数据转发

可以将请求转发给下一个服务器并接受服务器返回的响应给客户端代理1.代理不改变请求的URI,会直接把请求发送给持有资源的目标服务器,再从源服务器的响应经过代理后传给客户端,中间的代理服务器可以级联多台服务器2.代理可以:利用缓存来减少网络带宽针对特定网站的访问控制3.分类(1)缓存代理:可以使用缓存代理把资源缓存在代理服务器上,需要资源的时候直接从代理服务器中取而不需要去源服务器...

2019-07-23 01:12:15 319

原创 HTTP状态码

状态码1.状态码:向客户端描述请求的结果,以便用户知道服务端是正常处理了请求还是出现了错误信息性状态码——1XX接受的请求正在处理成功状态码——2XX1.200:成功正常处理2.204:成功处理但是反馈的响应报文中不含实体的主体部分,也不允许返回任何实体的主体。一般用于客户端不需要发生更新3.206:用于范围请求,响应报文中只包含Content-Range指定范围的实体内容,如:...

2019-07-22 23:07:46 168

原创 URI与URL

1.URI统一资源标识符Uniform:规定统一的格式可方便处理多种不同类型的资源,而不用根据上下文环境来识别资源指定的访问方式Resource:资源(可表示的任何东西)Identifer:标识符2.两者区别:URI用字符串标识某一互联网资源,URL标示资源的地点URI 表示请求服务器的路径,定义这么一个资源。而 URL 同时说明要如何访问这个资源(http://)...

2019-07-22 22:26:13 103

原创 nginx——优化②expires缓存

nginx可以通过设置expires对一些资源缓存,这样可以减少对服务器的请求和节省带宽格式:expires + 时间 (s/m/h/d)原理:使用于变化周期短的图片,css,js等栗子:location ~*\. (jpg|jpeg|gig|png|css){ expires 1d;}...

2019-07-18 20:40:54 153

原创 nginx——优化①gzip压缩

附上:nginx-gzip官方文档各个参数:gzip on|off; # 是否开启gzip压缩功能gzip buffers 4 16k; # 压缩缓存空间大小,压缩在内存中缓存4块,每块最大16Kgzip_comp_level [1-9]; # 压缩级别,压缩级别越高压缩越小,但是越浪费CP...

2019-07-18 20:11:52 259

原创 Swoole-网络通信引擎HTTP

WRITING

2019-07-17 17:03:49 353

原创 Swoole-网络通信引擎UDP

ServerUDP服务器创建与TCP服务器创建类型,但不同的是:UDP没有连接的概念。启动Server后,客户端无需Connect,直接可以向Server监听的9502端口发送数据包。对应的事件为onPacket。<?php/** * User: sHuXnHs <hexiaohongsun@gmail.com> * Date: 19-7-12 * Time: 1...

2019-07-17 16:43:32 165

原创 nginx——location与rewrite配置

一般模式writing…精准模式正则模式

2019-07-15 10:41:20 102

原创 nginx——配置与日志

nginx的配置文件nginx的虚拟主机配置nginx的日志管理

2019-07-12 10:35:45 188

原创 Swoole-网络通信引擎TCP

Server端介绍面向过程实现<?php/** * User: sHuXnHs <hexiaohongsun@gmail.com> * Date: 19-7-12 * Time: 12:34 *///创建Server对象,监听 127.0.0.1:9501端口$serv = new swoole_server("127.0.0.1", 9501);//...

2019-07-12 01:04:21 350

原创 php的isset和empty

1.empty查看官方手册,主要是在0这里,我们可以发现php的empty()会把下面这些也认为是空的:“” (空字符串)0 (作为整数的0)0.0 (作为浮点数的0)“0” (作为字符串的0)NULLFALSEarray() (一个空数组)$var; (一个声明了,但是没有值的变量)所以有时候我们判断的时候不仅要考虑到FALSE,NULL等情况,也要考虑0,空字符串,空...

2019-07-11 22:15:30 119

原创 nginx——工作模式与信号量控制

工作模式1.nginx的工作模式是多进程的,启动后后台进程包括了一个master进程和多个worker进程运行,以后台守护进程(daemon)常驻内存。master:主要用来获取配置,接受请求,向worker发送信号,监控worker和释放worker进程。worker:响应用户的请求2.nginx之间是通过信号来传递信息和控制的。shuxnhs@shuxnhs-PC:~$ ps a...

2019-07-11 13:10:40 99

原创 PHP好玩代码注释

有时候我们查看一些网站的源代码的时候,总会发现一些调皮的程序员,不仅代码写的好,连注释都如此的吊炸天。。如下图:如此好玩的东西,那就用世界上最好的语言PHP来实现一下,需要用到GD库,代码如下:<?php// 打开一幅图,黑白效果会比较好$file_name = '4.jpg';$chars = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzc...

2019-07-03 17:45:49 767

原创 PHP每隔多少个添加换行同时不拆分掉单词

最近碰到一个数据处理的需求:要求是给很多段文字进行处理,每一行数据每隔29行添加换行,但是不能拆分掉单词,比如hello的h刚好在29位那么要在hello前就断开,不多说看代码,php是世界上最好的语言。比如有其中的一句:Venham a mim, todos os que estão cansados e sobrecarregados, e eu darei descanso a vocês...

2019-07-02 17:03:13 664

原创 docker学习

docker学习docker安装windows首先需要安装windows的一个包管理工具:Chocolatey,安装的方式很简单,可以参考官网的两种安装方式:CMD安装:@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPoli...

2019-06-11 00:39:28 127

原创 PHP的json操作

json_encode():待编码的除资源外的任何数据类型主要包括三个参数value:待编码的valueoptionsdepth:设置最大深度JSON_UNESCAPED_UNICODE可以解决中文的问题,json_decode():对 JSON 格式的字符串进行解码注意json_decode包含四个参数:string json:要解码的json串assoc:...

2019-06-01 15:57:54 891

原创 PHP中的array_multisort详解

基本用法array_multisort($a, $b)$a和$b两个数组的元素必须相等先对$a进行排序,然后$b的排列顺序是按照$a的排列顺序排列(不是按照自己的元素的大小来排列的)举个栗子<?php$one = array('5', '4', '3', '2', '1');$two = array('1', '2', '3', '4', '5');array_mult...

2019-05-09 19:28:34 2761

原创 Composer

升级:composer self-update清楚缓存:composer clear-cache

2019-04-27 14:01:27 96

空空如也

空空如也

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

TA关注的人

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