自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于Haproxy+Keepalived+Nginx构建高可用负载均衡集群

基于Haproxy+Keepalived+Nginx构建高可用负载均衡集群架构设计Nginx安装gcc 安装PCRE pcre-devel 安装zlib 安装OpenSSL 安装下载源码包安装启动停止开机启动方法一 启动加载文件方法二 添加为系统服务Haproxy安装启动客户端访问测试Haproxy支持的负载均衡算法Keepalived安装keepalived配置主节点备份节点配置haproxy检测脚本启动keepalived测试测试VIP地址192.168.1.28192.168.1.29测试网络高可用测

2022-01-18 16:05:51 3375

原创 RabbitMQ高级

RabbitMQ高级

2022-01-14 17:31:23 2171

原创 Hyperf从入门到精通(1)

Hyperf从入门到精通(1)简述安装PHP安装swoole安装Hyperf压力测试简述Hyperf从入门到精通第一讲,介绍Hyperf框架的特点,手把手教你如何搭建一个高性能的微服务并进行压测演示。安装PHP安装swoole安装Hyperf压力测试...

2021-01-11 10:50:33 3411 1

原创 windows系统启动docker,Navicat连接失败问题

在 Windows(和 OS X)系统上,docker 守护程序和您的容器无法在本地运行,因此只有 docker 客户端在 Windows 机器上运行,而守护程序(和您的容器)在运行Linux的 VirtualBox 虚拟机中运行。

2022-09-11 16:45:40 671

原创 快捷键大全

6.快速选中代码的开头至结尾ctrl+shift+[或]11.快速打开项目中的文件ctrl+shift+N。4.类展开与关闭ctrl+shift+加号或减号。9.查看方法或变量定义ctrl+shift+i。1.查看当前类中的方法跟属性ctrl+F12。2.方法间快速移位alt+上箭头或者下箭头。3.方法展开与关闭ctrl+加号或减号。5.定位类的开始与结尾ctrl+[或]10.跳转到变量声明处ctrl+b。7.查看代码注释ctrl+q。8.显示默认参数ctrl+p。...

2022-07-25 16:05:00 215

原创 PSR编码规范

使用phpstorm进行编码时,编码完成,使用格式化代码快捷键ctrll+alt+L,自动格式化代码,遵循PSR4规范1.类名使用大驼峰2.属性名,方法名使用小驼峰3.常量全部字母大写4.类属性方法必须添加访问修饰符,abstract、final位于访问修饰符之前,static放于访问修饰符之后5.控制结构开始花括号必须写在声明的同一行,结束花括号必须在主体后自成一行6.类的开始花括号必须写在类声明后自成一行,结束花括号必须在类主体后自成一行7.方法的开始花括号必须写在方法声明后自成一行,结束花

2022-07-13 09:58:49 482

原创 Go Micro微服务实战

此次实战采用etcd做服务发现注册中心。创建服务端删除go.mod文件,跟客户端进行统一管理。编译proto文件创建客户端删除go.mod文件,跟服务端进行统一管理。修改web/handler/handler.go,hello/handler/hello.go,main.go,subscriber/hello.go中的包路径web/handler/hello.go测试服务是否正常其中: hello是服务名,Hello.Call是方法名......

2022-06-28 10:15:35 360 1

原创 Go Micro实现RPC

编写proto文件编译proto文件注意protoc生成的hellomicro.pb.micro.go还是使用的v1版本,这里改成v2版本默认使用mdns做注册中心,这里使用consul做注册中心编写客户端启动服务端

2022-06-27 16:57:44 232

原创 gRPC实现远程过程调用

字段操作选项编写实例编译proto文件源码解析客户端测试

2022-06-22 16:35:16 363

原创 Laravel源码解析之契约

Contract,翻译过来叫契约、协议等。在 Laravel-china 的翻译中,是一个不翻词,这里也使用 Contract 来代替。

2022-06-17 16:53:27 456

原创 Laravel源码解析之门面

Facade,一般翻译成外观或者门面。在 Laravel 的翻译文档中,是不翻词,这里我也直接使用 Facade 来表述。Facade 的主要作用,是 简化类调用的快捷语法 。因为在结构复杂,功能完善的框架中,往往类的结构,层次也比较复杂,Laravel 也是如此复杂的框架,因此为了简化使用,我们就定义了类的快捷访问方式,在 Laravel 中,就是 Facade!常规设计模式中的外观模式(Facade Pattern),就是解决快捷访问问题的,因此 Laravel 的 Facade 就是外观模式的实现。.

2022-06-17 16:42:21 568

原创 Laravel源码解析之服务提供者

官方文档中关于服务提供者的这篇文档,主要是说明如何编写自定义的服务提供者。本篇注解,就来说说啥是服务提供者,然后再总结一下如何编写服务提供者。服务提供者想要理解,首先需要理解什么是服务容器,可以移步服务容器 进行了解。在有了服务容器的概念后,就可以很容易的理解什么是服务提供者了。服务容器是盛放服务的容器,有绑定和解析两个主要操作。绑定就是将服务注册到容器中。而服务提供者,就是完成绑定服务到容器任务的单元。看名字就知道,是用来提供服务的单位。简言之,服务容器中绑定的服务,就是由服务提供者绑定进去的。...

2022-06-17 16:27:05 615

原创 Laravel源码解析之服务容器

官方文档中关于服务容器的介绍,主要是针对于这个服务容器提供的绑定,解析的语法上。是建立在读者对服务容器,依赖注入,控制反转有一定的认知的基础上进行说明的。本篇注解的主要目的就是在官方文档的基础上,补充上服务容器设计上的的内容,便于理解 Laravel 提供的语法。Laravel 的应用 Application 的实现就是一个服务容器,目的是用来管理 Laravel 框架中各种对某些对象的依赖关系。体现的设计思想是控制反转。...

2022-06-17 15:52:55 854

原创 数据库中间件之Mycat

Mycat 的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对 SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表)........................

2022-06-06 19:02:33 250

原创 使用kubeadm方式搭建kubernetes集群

使用kubeadm方式搭建kubernetes集群使用kubeadm方式搭建kubernetes集群kubeadm最终目标环境准备安装系统初始化关闭防火墙关闭selinux关闭swap主机名在master添加hosts将桥接的IPv4流量传递到iptables的链时间同步所有节点安装Docker/kubeadm/kubelet/kubectl安装docker添加阿里云YUM软件源向/etc/yum.repos.d/kubernetes.repo添加yum源安装kubeadm,kubelet,kubectl部

2022-01-20 12:46:38 1044

原创 RabbitMQ入门

RabbitMQ入门MQ的优势跟劣势优势削峰填谷异步提速应用解耦劣势消息一致性系统复杂性提高系统可用性降低安装RabbitMQ安装依赖yum install gccyum install socat安装Erlangwget https://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/openssl-libs-1.0.2k-19.el7.x86_64.rpm --no-check-certific

2022-01-06 16:34:42 885

原创 git rebase解决冲突

同一分支不同仓库引起的冲突A,B仓库分别对同一文件做了修改后,各自提交,此时后面提交的在push时就会出现冲突解决步骤:1.git fetch(下载所有分支的最新的代码)2.git rebase origin/master(以origin/master分支为基线,合入master分支的修改到origin/master)此时会提示冲突文件3.对冲突文件进行修改4.git add5.git commit6.git rebase --continue(继续合并。合并的过程中,还有可能产生冲突。解决

2021-12-08 20:02:01 13535

原创 Hyperf从入门到精通(11)

Hyperf从入门到精通(11)简介洋葱模型中间件类型全局类型中间件局部类型中间件注解定义配置文件定义中间件执行顺序生成中间件中间件执行流程演示控制器中间件对Request跟Response进行干预简介本节将讲述 Hyperf 里中间件使用方式和中间件的流程原理,包括通过 @Middlewares 和 @Middleware 注解来注册中间件,以及通过配置来注册中间件等多种形式,同时也演示了在中间件修改 Request 对象如何被后续中间件使用的同时被其它非中间件的逻辑使用。洋葱模型原理:图中的顺

2021-08-10 11:54:12 745

原创 Hyperf从入门到精通(10)

Hyperf从入门到精通(10)简介演示利用协程上下文解决简介本节课程将通过代码实践来了解在Hyperf常驻内存环境中所有由 DI 管理的对象的生命周期,并演示了错误的传值方式以及正确的通过协程上下文传值的方式。演示第一次请求:http://127.0.0.1:9501/context/get 结果:10 正确第二次请求:http://127.0.0.1:9501/context/set?id=20 结果:20 正确第三次请求:http://127.0.0.1:9501/context

2021-08-09 12:58:17 554

原创 Zookeeper从入门到精通

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创

2021-07-28 17:22:08 231

原创 MongoDB从入门到精通

基本概念MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。Mong

2021-07-22 17:25:56 323 1

原创 MySQL事务处理

MySQL事务处理锁共享锁排它锁事务的并发问题脏读不可重复读幻读事务隔离级别MySQL默认事务隔离级别锁共享锁定义:共享锁又叫读锁,多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。加共享锁可以使用select … lock in share mode语句。排它锁定义:排它锁又叫写锁,是一个事务在一行数据加上排他锁后,其他事务不能再在其上加其他的锁。只有当前事务对数据可读可写。加排他锁可以使用select …for update语句。事务的并发问题脏读定义:从别的事务中

2021-06-11 15:04:01 86

原创 Redis高级

Redis高级Redis主从复制是什么能干嘛搭建主从复制新建配置文件启动三台Redis服务器配置从库查看主机运行情况注意点Redis哨兵模式是什么搭建哨兵创建哨兵配置启动哨兵当主机挂掉,从机选举中产生新的主机Redis集群模式问题什么是集群搭建集群创建6个实例将6个节点合成一个集群采用集群策略连接查看节点状态注意点Redis主从复制是什么主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。能干嘛读写分离,性能扩展容灾快速恢复

2021-05-14 15:17:44 109

原创 消息队列面试题

消息队列面试题消息队列的应用场景各种消息队列的比较消息队列的优缺点如何保证消息队列的高可用如何保证消息不丢失如何保证消息不被重复消费(幂等性)如何保证消息的顺序性消息堆积如何处理消息过期如何处理消息队列的应用场景数据结构:消息队列是一种先进先出的数据结构应用场景:解耦、异步、削峰解耦:各个系统之间耦合性高,如果某个子系统出现问题,会影响其他子系统和整个业务流程。这时引入消息队列,将子系统需要的数据放入消息队列,子系统出现异常,不会影响到其他子系统。异步:某个子系统不依赖于其他子系统的返回结果。流

2021-04-25 16:09:22 225

原创 Hyperf从入门到精通(9)

Hyperf从入门到精通(9)简介ConfigInterface 对象获取配置@Value 注解获取配置config() 全局函数获取配置简介本节将讲述 Hyperf 里配置的使用方式,包括注入 Hyperf\Contract\ConfigInterface 对象获取配置,通过 @Value 注解获取配置,通过 config() 全局函数获取配置 3 中形式,以及讲述了环境变量的使用及与配置文件的配合方式。ConfigInterface 对象获取配置@Value 注解获取配置config(

2021-01-22 11:47:58 446

原创 Hyperf从入门到精通(8)

Hyperf从入门到精通(8)简介协程创建通过Coroutine的create方法创建通过co函数创建通过go函数创建WaitGroup特性简介Channel管道Parallel 特性简介parallel函数简介本节将讲述协程的多种创建方式,以及 Channel 的使用及调度流程,以及通过 WaitGroup 特性和 Parallel 特性通过子协程并行的发起多个请求实现并行请求的案例。协程创建通过Coroutine的create方法创建通过co函数创建通过go函数创建WaitGrou

2021-01-22 11:27:29 1008 2

原创 Hyperf从入门到精通(7)

Hyperf从入门到精通(7)简介概念使用事件管理器定义事件定义监听器触发事件测试简介本节讲述 Hyperf 里的一个重要的机制,同时也是业务解耦的利器–事件机制,演示了事件机制是如何使用的,包括创建事件、触发事件、监听事件等,同时也演示了监听器在不同场景下的不同的使用模式。概念事件模式是一种经过了充分测试的可靠机制,是一种非常适用于解耦的机制,分别存在以下 3 种角色:事件(Event) 是传递于应用代码与 监听器(Listener) 之间的通讯对象监听器(Listener) 是用于监听 事

2021-01-22 11:09:02 487 1

原创 Hyperf从入门到精通(6)

Hyperf从入门到精通(6)简介RPC概念原理作用服务提供者服务接口接口实现类配置服务消费者服务接口配置调用Consul注册中心启动consul生成consul配置文件简介本节将讲述在 Hyperf 里如何搭建一个 JSONRPC 协议的服务提供者和服务消费者,包括直接指定对端节点信息消费服务,和通过将服务提供者注册到 Consul 并由服务消费者从 Consul 拉取健康的服务节点信息完成 RPC 请求。RPC概念RPC(Remote Procedure Call)—远程过程调用,它是一种通过

2021-01-20 10:50:42 622

原创 Hyperf从入门到精通(5)

Hyperf从入门到精通(5)简介AOP面向切面编程AOP中的概念AOP通知类型切面类接口接口实现类依赖关系调用简介Hyperf 从入门到精通第五讲,本节将介绍 AOP 的概念,解释 AOP 是什么,能做什么,以及在 Hyperf 里的 AOP 实现原理及使用的注意事项,同时也通过代码实战来进行来自定义一个 Aspect 切入一个类和切入一个注解,并进行无侵入日志处理和对原方法的返回值进行重写。AOP面向切面编程在软件业,AOP为Aspect Oriented Programming的缩写,意为:面

2021-01-18 11:27:30 1391

原创 Hyperf从入门到精通(4)

Hyperf从入门到精通(4)简介注解自定义注解注解应用对象注解参数传递利用注解收集器,收集注解数据简介Hyperf 从入门到精通第四讲,本节将从代码的角度来讲述注解的实现原理及流程,包括 Hyperf 的启动流程,注解是如何被扫描的,注解元数据是如何被收集及利用的,以及如何定义一个自定义注解并获取注解的元数据的案例演示。注解自定义注解注意注解类的 @Annotation 和 @Target 注解为全局注解,无需 use其中 @Target 有如下参数:METHOD 注解允许定义在类方法上

2021-01-15 15:13:09 1273

原创 Hyperf从入门到精通(3)

Hyperf从入门到精通(3)简介简单对象构造函数注入简单对象@Inject 注解注入抽象对象注入接口类接口实现类依赖配置依赖注入简介Hyperf 从入门到精通第三讲,讲述依赖注入定义及各种使用使用方式和注意事项,包括三种注入类型简单对象注入、抽象对象注入和工厂对象注入,和两种注入方式,构造函数注入和 @Inject 注解注入,以及注解和依赖注入容器的配合及基本原理。简单对象构造函数注入简单对象@Inject 注解注入抽象对象注入接口类接口实现类依赖配置依赖注入...

2021-01-14 14:22:43 584

原创 Hyperf从入门到精通(2)

Hyperf从入门到精通(2)简述路由定义通过配置文件定义路由通过注解定义路由@AutoController注解@Controller注解测试简述Hyperf 从入门到精通第二讲,讲述 HTTP 路由的定义及使用,包括配置文件定义路由和注解定义路由,同时引入注解的概念并讲述注释和注解的区别,以及注解的基本实现流程。路由定义通过配置文件定义路由Router::get("/hello-hyperf", function () { return 'Hello,Hyperf';});Rout

2021-01-13 16:03:45 825 1

原创 金融大数据分析平台原型

文章目录首页用户登录认证用户使用统计报告热门关键词全文检索关于本库&使用帮助文献检索期刊检索出版物检索图片检索视频检索高级检索金融基本文献专题金融统计报告专题金融法律法规专题金融教育培训专题金融百科知识专题金融机构信息专题首页用户登录认证用户使用统计报告热门关键词全文检索关于本库&使用帮助文献检索期刊检索出版物检索图片检索视频检索高级检索金融基本文献专题金融统计报告专题金融法律法规专题金融教育培训专题金融百科知识专题金融机构信息专题...

2020-08-13 15:35:34 844

消息队列常见面试题笔记

消息队列常见面试题笔记

2021-04-27

空空如也

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

TA关注的人

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