- 博客(203)
- 资源 (4)
- 收藏
- 关注

原创 使用Logstash同步Mysql到ElasticSearch
【相关文章:Linux下安装ElasticSearch7.4】操作系统:CentOS7.2ElasticSearch版本:7.4.2Logstash版本:7.4.2下载地址:https://www.elastic.co/cn/downloads/logstash或https://elasticsearch.cn/download/下载后放到服务器某个目录下,解压:ta...
2019-11-06 19:30:02
1049
2

原创 ThinkPHP5.0结合Swoole开发WebSocket在线聊天
ThinkPHP使用Swoole需要安装 think-swoole Composer包,前提系统已经安装好了Swoole PECL 拓展(相关文章:Linux下源码包安装使用Swoole扩展)在tp5的项目根目录下执行composer命令安装think-swoole:composer require topthink/think-swoole安装成功:话不多说,直接上代码...
2018-11-23 23:46:43
8595
21

原创 ThinkPHP5.0集成支付宝扫码支付(PC端)
相关文章:ThinkPHP5.0集成微信扫码支付(PC端) 搞完了微信搞支付宝~~~还是先下载支付宝电脑网站支付demo,目录结构如下:把demo文件夹放到tp5的 vendor 文件夹下面,重命名为alipay:配置 config.php 的支付参数,去蚂蚁金服商家中心找,或者使用沙箱测试环境。注意签名方式要和私钥、公钥的签名方式相同。<?php$conf...
2018-11-22 10:22:51
3483
1

原创 ThinkPHP5.0集成微信扫码支付(PC端)
前两天发现微信官方测试扫码支付的链接崩了,公益404了,http://paysdk.weixin.qq.com,微信也不说一声,这让使用这个链接生成二维码的用户情何以堪......只好下载官方的demo放到自己网站上生成二维码了。趁热打铁,把微信支付demo集成到tp5里面,实现微信扫码支付~~~下载demo,目录结构如下:把 lib 文件夹拿出来,放到tp5根目录vendor...
2018-11-21 18:43:09
5935
31
原创 【Java】SpringBoot接入阿里云日志服务Logback Appender
1、application.yml中日志文件配置如下:logging: config: classpath:logback-spring.xml2、logback-spring.xml中日志输出配置如下:<configuration scan="true" scanPeriod="60 seconds"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"&
2021-02-26 11:06:08
2
原创 MySQL索引优化建议
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 尽量使用唯一索引,对于有唯一值的列索引效果最好 索引长度尽量短,这样做有几个好处,首先短的索引可以节省索引空间,也会使查找的速度得到提升。 太长的列,可以选择只建立部分索引 更新非常频繁的数据不适宜建索引 利用最左前缀原则,比如建立了一个联合索引(a,b,c),那么其实我们可利用的索引就有(a), (a,b), (a,b,c) 不要过多创建..
2021-02-25 15:37:43
3
原创 图文详解MySQL的共享锁和排它锁
共享锁又称为读锁,简称S锁。顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改加共享锁可以使用select ... lock in share mode语句我们有如下测试数据:现在我们对id=1的数据行共享锁查询,这里会使用begin开启事务,而不关闭事务,这样做是用来测试,因为提交事务或回滚事务就会释放锁。共享锁sql分析实例打开一个查询窗口BEGIN;SELECT * FROM area WHERE id=1 LOCK IN S
2021-02-25 15:29:04
9
原创 Mysql存储引擎MYISAM和INNODB选择
innodb与myisam的异同点myIsam和innodb底层都是采用B+Tree这种数据结构来实现 B-Tree索引 InnoDB支持事务,MyISAM不支持 InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高 MyISAM是非聚集索引,数据文件和索引文件是分离的,索引保存的是数据文件的指针 InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需
2021-02-25 15:25:04
3
原创 【Java】logback中root配置为INFO,为何logger配置为DEBUG级别也能打印出日志
配置如下,root配置为INFO,logger中配置的DEBUG也能打印出来:<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> ...</appender><appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> ...</appender>
2021-02-23 10:54:53
24
原创 IOS接入openSDK 服务器端Universal Links配置
1、创建apple-app-site-association 文件,内容如下:{ "applinks": { "apps": [], "details": [ { "appID": "Y3JAJ4DU63.com.lws.test", "paths": [ "/*" ] } ] }} 【参数说明】 ...
2021-02-22 11:32:36
11
原创 PHP获取远程图片宽、高
使用函数 getimagesize:<?php $remote_png_url = 'http://xxx.png'; $img_data = getimagesize($remote_png_url); print_r($img_data);打印结果如下:Array( [0] => 290 [1] => 69 [2] => 3 [3] => width="290" height="69" [b
2021-02-20 17:59:02
11
原创 Hyperf-高性能PHP协程框架实战(五) 请求与响应
1、获取请求参数 通过use Hyperf\HttpServer\Contract\RequestInterface;获得对应的请求对象RequestInterface $request 如下为获取一些请求参数的示例:<?phpdeclare(strict_types=1);namespace App\Controller;use Hyperf\HttpServer\Contract\RequestInterface;use Hyperf\H...
2021-01-23 16:20:27
64
1
原创 Hyperf-高性能PHP协程框架实战(四) 中间件的使用
场景:开发中可能会遇到跨域问题,我们希望每一个请求过来,服务端程序都可以设置允许跨域,这时就可以用到中间件,来拦截请求并做出一些配置。1、生成一个中间件 示例:使用命令生成一个设置跨域的中间件 CorsMiddlewarephp ./bin/hyperf.php gen:middleware Http/CorsMiddleware 此时会自动生成中间件文件: 修改代码,实现设置跨域功能:<?phpdeclare(...
2021-01-23 11:49:52
46
原创 Hyperf-高性能PHP协程框架实战(三) 依赖自动注入
目录1、构造函数注入2、@Inject 注解注入 场景:如下有一个用户服务类UserService,类中存在getInfoById()方法,传递用户id获取用户信息。现在要再IndexController中调用该方法。可以使用以下自动注入依赖的方式,避免用new手动实例化。<?phpdeclare(strict_types=1);namespace App\Service;class UserService{ public function getIn...
2021-01-23 04:45:06
35
原创 Hyperf-高性能PHP协程框架实战(二) 定义访问路由
1、配置文件定义路由可以在 /config/routes.php 路由配置文件中定义路由,配置如下:<?phpdeclare(strict_types=1);use Hyperf\HttpServer\Router\Router;Router::addRoute(['GET', 'POST', 'HEAD'], '/', 'App\Controller\IndexController@index');Router::get('/favicon.ico', function ()
2021-01-23 00:00:18
39
原创 Hyperf-高性能PHP协程框架实战(一) 安装和启动
【本文基于Hyperf2.1官方文档:https://hyperf.wiki/2.1/#/,在此鸣谢Hyperf作者及开源项目贡献者。】系统环境:Linux CentOS7.6PHP版本:7.3.20Swoole版本:4.5.91、Composer安装Hyperf#移到项目目录cd /www/wwwroot#composer安装composer create-project hyperf/hyperf-skeleton根据提示选择自己需要的依赖:(Com..
2021-01-22 23:01:42
151
原创 Web网站性能优化的一些建议
1、浏览器访问优化1.1 减少http请求 主要手段是合并CSS、合并JS、合并图片,可以将浏览器一次访问的所需的JS、CSS合并成一个文件,多图可以合并为一张,可通过CSS偏移响应设置不同图片对应的超链接。1.2 浏览器缓存静态资源 可以将CSS、JS、图标等静态资源缓存到浏览器,通过设置http头中 Cache-Control 和 Expires 属性,需要更新时可以把原文件重命名引用。1.3 开启压缩 HTML、CSS、JS文件启用gzip压缩,通...
2021-01-17 13:36:28
40
原创 【Java】获取星座匹配度
星座匹配度规则表如下:获取匹配度代码如下: /** 星座匹配分值 */ private static Map<String, String> constellationScoreMap = new HashMap<>(); /** * 初始化星座匹配分数 * 1水瓶座 2双鱼座 3白羊座 4金牛座 5双子座 6巨蟹座 7狮子座 8处女座 9天秤座 10天蝎座 11射手座 12摩羯座 * 每个key以两星座编号用-分隔
2020-12-29 18:15:06
523
10
转载 为啥这么多公司用 ZooKeeper?它到底解决了什么问题?
ZooKeeper 很流行,有个基本的疑问: ZooKeeper 是用来做什么的? 之前没有ZK,为什么会诞生 ZK? OK,解答一下上面的疑问:(下面是凭直觉说的) ZooKeeper 是用于简化分布式应用开发的,对开发者屏蔽一些分布式应用开发过程中的底层细节 ZooKeeper 对外暴露简单的 API,用于支持分布式应用开发 ZooKeeper 在提供上述功能的同时,其还是一个 高性能、高可用、高可靠的分布式集群 上面说这么多,总结一下,ZK 能解决分布
2020-12-29 16:12:45
95
转载 1.3 万亿条数据查询,如何做到毫秒级响应?
知乎,在古典中文中意为“你知道吗?”,它是中国的 Quora,一个问答网站,其中各种问题由用户社区创建,回答,编辑和组织。作为中国最大的知识共享平台,我们目前拥有 2.2 亿注册用户,3000 万个问题,网站答案超过 1.3 亿。随着用户群的增长,我们的应用程序的数据大小无法实现。我们的 Moneta 应用程序中存储了大约 1.3 万亿行数据(存储用户已经阅读过的帖子)。由于每月累计产生大约 1000亿行数据且不断增长,这一数字将在两年内达到 3 万亿。在保持良好用户体验的同...
2020-12-29 16:11:14
66
转载 腾讯,干掉 Redis 项目,正式开源、太牛x啦!
项目简介Tendis是腾讯互娱CROS DBA团队 & 腾讯云数据库团队自主设计和研发的分布式高性能KV存储数据库,兼容Redis核心数据结构与接口,可提供大容量、低成本、强持久化的数据库能力,适用于兼容Redis协议、需要大容量且较高访问性能的温冷数据存储场景。Tendis目前已经被应用到腾讯内、外部大型项目中。集群架构Tendis使用去中心化集群架构,每个数据节点都拥有全部的路由信息,用户可以访问集群中的任意节点,并且通过redis的move协议,最终路由到正确的节点。每
2020-12-29 16:09:54
49
原创 【Java】微信企业付款到零钱 工具类封装
WxService.java:package com.lws.test.core.wechat;import com.ygxk.social.core.utils.MD5Util;import com.ygxk.social.core.utils.StringUtil;import com.ygxk.social.core.wechat.WxKeyConstant;import lombok.extern.slf4j.Slf4j;import org.apache.http.client.
2020-12-28 18:18:22
596
4
原创 【Java】获取当天凌晨10位时间戳
如下://当天凌晨时间戳long nowTime = System.currentTimeMillis();long dailyStartTime = nowTime - (nowTime + TimeZone.getDefault().getRawOffset()) % (1000 * 3600 * 24);Integer dayStartTime = Integer.parseInt(String.valueOf(dailyStartTime).substring(0, 10));..
2020-12-28 18:09:58
64
原创 【Java】Mybatis中使用sum对字段求和
如下sql,为计算用户收益总和: <select id="getTotalIncome" resultType="com.xxx.social.modules.user.entity.UserIncomeEntity"> select sum(income) as totalIncome from income_log where uid = #{uid,jdbcType=BIGINT} </select>其中返回的求和字段类型需要设置为 BigDecimal:.
2020-12-28 18:05:40
198
原创 【Java】FastJson如何返回不带转义字符的json字符串
一开始使用 JSONObject.toJSONString() 把json对象转为json字符串,但是在进行kafka进行消费的时候,发现接收到的json总是带转义字符,处理起来比较麻烦于是使用如下方法,先转为Object对象,再转为字符串:JSONObject.toJSON(jsonObject).toString();...
2020-12-28 17:57:39
222
原创 Kafka消费者启动报错: Not authorized to access group
原因可能为使用了阿里云的Kafka服务,消费组不存在,需要创建,参考文档:是否支持Consumer Group自动创建?
2020-12-28 16:31:04
212
原创 【浏览器报错解决】The ‘Access-Control-Allow-Origin‘ header contains multiple values ‘null, *‘, but only one i
原因为nginx配置及接口程序中,均设置了【Access-Control-Allow-Origin:*】引起的,注释二者其一即可。
2020-12-28 13:35:09
61
原创 Redis报错:(error) NOAUTH Authentication required
需要验证密码,解决如下:redis-cli -h 127.0.0.1 -p 6379auth xxxxxxxx为你的redis密码。
2020-12-14 15:55:30
40
原创 【Java】Mybatis实现模糊查询
例:如下为模糊查询user表昵称字段: <select id="selectUserByKeyword" resultType="com.ygxk.lws.modules.user.entity.UserEntity"> select * from user where nickName LIKE CONCAT('%',#{keyword},'%') </select>
2020-12-10 19:53:29
59
原创 【Java】Mybatis实现in查询
例:如下为in查询user表,uidList如 [1,2,3] <select id="selectUserInUid" resultType="com.ygxk.lws.modules.user.entity.UserEntity"> select * from user where uid in <foreach collection="uidList" item="uidList" index="index" open="(" close=")" se
2020-12-10 19:50:24
80
原创 【Java】Mybatis插入数据获取主键id返回值
例:如下为插入用户关注记录,获取主键 fid:<insert id="insertUserFollow" parameterType="com.ygxk.social.modules.user.entity.UserFollowEntity" useGeneratedKeys="true" keyProperty="fid" keyColumn="fid"> insert into user_follow <trim prefix="(" suffix=")" suf
2020-12-10 19:33:44
73
原创 【Java】shuffle随机打乱数组List
引入:import java.util.Collections;实现:Collections.shuffle(list);
2020-12-10 19:26:06
661
4
原创 【Java】SpringBoot接入阿里云短信服务
1、引入maven依赖:<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.0.6</version> <!-- 注:如提示报错,先升级基础包版,无法解决可联系技术支持 --></dependency><dependency&
2020-12-10 19:11:29
75
原创 【Java】SpringBoot配置多环境、运行时选择指定配置文件
如下图,可以创建多个环境的配置文件:application.yml 中定义当前使用环境如下:spring: application: name: xxx-server profiles: active: dev #当前环境 async: executor: pool: core-size: 10 max-size: 60 keep-alive-seconds: 60 queue-ca
2020-12-10 18:47:15
1774
11
原创 【Java】微信企业付款报错:java.io.IOException: toDerInputStream rejects tag type 45
原因是证书格式问题,之前用PHP做一直用.pem格式的证书,看了官方文档才知道,其他语言大多用.p12格式的证书: 更换为.p12格式证书,不报错了。
2020-12-10 10:51:28
337
原创 如何解决IOS系统https访问H5页面速度非常慢
测试发现用苹果手机访问h5,打开速度非常慢,于是让前后端各种优化,缓存该加的都加上了,结果还是慢,安卓秒开,肯定不是程序的原因了,经过调试验证,解决方案如下:1、开启OCSPstapling,参考文章:【Nginx实战】Nginx开启OCSP stapling2、如果使用的SSL证书为Let’s Encrypt颁发的,更换为其他机构颁发的证书。...
2020-09-28 14:54:23
1237
原创 ThinkPHP5.0实现程序报错发送邮件预警
1、监听日志写入行为 在 \thinkphp\library\think\Log.php 的 save 方法结束前监听钩子行为 log_write_done:Hook::listen('log_write_done', $log);2、定义行为扩展 在\application\tags.php 中定义行为扩展 log_write_done:<?php// 应用行为扩展定义文件return [ // 应用初始化 'app_init'...
2020-09-01 13:40:33
156
原创 【Nginx实战】Nginx反向代理配置
1、什么是反向代理 反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。 反向代理与正向代理(如VPN)的区别是,正向代理代理的是客户端,我们需要在客户端进行一些代理的设置。而反向代理代理的是服务器,作为客户端的我们是无法感知到服务器的真实存在的。 ...
2020-08-28 17:34:08
168
原创 【Nginx实战】Nginx工作原理及优化配置
1、Nginx进程模型 Nginx进程分为 master 进程 和 worker 进程,执行ps -ef |grep nginx 命令,可以看到如下: 一个mster进程下有多个 worker进程,当nginx收到一个请求,master会向worker发出信号,然后通过worker进程去处理。 每个worker进程都是被master进程管控,一个用户请求只能由一个woker进程去处理,而且多个worker进程之间会有竞争,每个woker进程下是多路复用。...
2020-08-28 16:20:05
100
1
原创 【Nginx实战】rewrite规则详解
Nginx的rewrite功能和apache一样,主要是实现URL地址的重定向。Nginx的rewrite功能是由PCRE软件支持,rewrite模块即ngx_http_rewrite_module模块。rewrite机制从某种意义上可以说为了美观或者搜索引起的友好搜索,提高排名等1、rewrite语法规则rewrite regex replacement [flag]rewrite:rewrite重写的关键字不可省略regex:这里写的是正则表达式replacement...
2020-08-28 15:15:21
149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝