- 博客(84)
- 收藏
- 关注
原创 总结开发过程遇到问题有哪些渠道可以寻找解决方案
百度、ChatGPT/讯飞星火等AI、Stack Overflow、github isssue平时开发过程遇到问题的主要解决方式都是百度或者询问ChatGPT,当然在java中这两个方式也能解决百分之80的问题,毕竟java的社区圈够热闹。
2024-06-07 12:34:08 337
转载 upstream-Nginx负载均衡
server配置格式:server host[:port] [weight=number] [max_conns=number] [[max_fails=number] [fail_timeout=time]] [backup] [down] [resolve] [route=string] [slow_start=time] [drain]# slow_start:当不正常的服务器变得正常时,或者当服务器在被认为不可用的一段时间后变得可用时,服务器将其权重从0恢复到设置值的时间。
2024-05-23 17:28:47 35
转载 InnoDB内存相关的参数优化
优化建议:innodb_log_buffer_size的大小需要与innodb_log_file_size参数相匹配。通常建议将innodb_log_buffer_size设置为innodb_log_file_size的1/4-1/2左右。经过调整,将innodb_log_buffer_size从8M增加到64M,解决了这个问题,同时提高了系统的性能和稳定性。innodb_buffer_pool_size是InnoDB引擎中最为重要的内存参数之一,也是最需要优化的参数。如果内存充足,则可以设置为较大的值。
2024-05-23 11:46:56 57
转载 分库分表概述
一、为什么要进行分库分表当MySQL单表数据量过大,比如超过5千万条的时候,读写性能变得很差。而且常规的优化手段已经不起作用了,比如:SQL调优、添加索引、主从复制、读写分离。这时候就需要用到MySQL终极优化方案 — 分库分表。二、怎么判断项目是需要分库还是要分表?是先分库还是先分表当数据库的QPS过高,数据库连接数不足的时候,就需要分库。(比如一个库的连接数支持2K,分成两个库就能支持4K) 微服务架构中,为了业务隔离,一般也做分库处理。 当单表数据量过大,读写性能较差,就需要分表。
2022-04-01 18:14:33 190
转载 构建通用WebSocket推送网关的设计与实践
HTTP协议是一种无状态的、基于TCP的请求/响应模式的协议,请求只能由客户端发起、服务端进行响应。在大多数场景,这种请求/响应的Pull模式已经可以满足需求。但在某些情形,例如消息推送、通知等应用场景,需要实时将数据同步到客户端,这就要求服务端支持主动Push数据。服务端推送技术历史悠久,经历了短轮询、长轮询的发展,一定程度上能够解决问题,但也存在着不足,例如时效性、资源浪费等。HTML5标准带来的WebSocket规范基本结束了这一局面,成为目前服务端推送技术的主流方案。在系统中集成We
2022-03-31 15:04:41 593
转载 mysql大量数据插入优化
场景:插入10000条数据到数据库,表结构user(age,name)1.普通循环插入public void insert() { for (int i = 0; i < 1000; i++) { Useru= new User(); u.setAge(i); u.setName(i); ...
2022-01-12 10:45:19 793
转载 MySQL如何实时同步数据到ES?
canal简介canal主要用途是对MySQL数据库增量日志进行解析,提供增量数据的订阅和消费,简单说就是可以对MySQL的增量数据进行实时同步,支持同步到MySQL、Elasticsearch、HBase等数据存储中去。canal工作原理canal会模拟MySQL主库和从库的交互协议,从而伪装成MySQL的从库,然后向MySQL主库发送dump协议,MySQL主库收到dump请求会向canal推送binlog,canal通过解析binlog将数据同步到其他存储中去。...
2021-12-05 22:17:04 567
原创 服务端验证facebook,Google访问令牌?
1.客户端调起应用获取授权,并拿到fb id和access_token,经过加密传输到服务端(确保access_token适用于您的应用)服务端校验加密,请求(HTTP GET)facebook:graph.facebook.com/me?access_token=xxxxxxxxxxxxxxxxx,然后检查您所拥有的fb id是否与请求中传回的id相匹配。来源:如何验证facebook访问令牌? | 码农家园google:https://oauth2.googleapis.com/token
2021-11-14 12:39:51 703
原创 seata:no available service ‘null‘ found, please make sure registry config correct
问题出在service.vgroupMapping.order-service-seata-service-group=default 这个 ‘vgroupMapping’, 以及绑定的group要对, 亲测有效
2021-11-13 18:53:11 237
转载 APP多版本共存,服务端如何兼容?
做过APP产品的技术人员都知道,APP应用属于一种C/S架构的,所以在做多版本兼容,升级等处理则比较麻烦,不像web应用那么容易。下面将带大家分析几种常见的情况和应对方式:小改动或者新加功能的这种情况,数据库结构和API程序一般是可以兼容多版本的,所以不用强制升级,可以坐到多版本共存。尽量采用数据库层面新增字段和API的方式,应用程序层面就可以兼容了。当然,API层面也可以部署多个版本来同时提供,但这个不是必须的但最重要的是数据库层面的表结构那些能够兼容到。或者:..
2021-11-13 18:22:19 1549
原创 java服务器性能_java web 服务器性能评估
qpsQueries Per Second 秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。tps是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。Qps 基本类似于 Tps,但是不同的是,对于一个页面的一次访问,形成一个 Tps;但一次页面请求,可能产生多次.
2021-08-24 23:28:26 444
原创 docker 容器log日志配置以及registry 镜像删除
docker log在没有设置的情况下,通常会变得很大。查看docker日志的时候,使用命令docker log -f 会出现日志无限翻滚的情况,这些日志都是打印到控制台的,但是都被docker收集了起来,放到了/var/lib/docker/containers/{容器id}/*.log中,一般默认的日志格式是{容器id}-json.log,如果日志大小不加限制,很可能日志会无限增长最终撑爆磁盘。全局设置修改/etc/docker/daemon.json 文件,添加log-dirver和log-o
2021-08-12 21:45:21 1483
原创 jdk8 lambda和stream
最近写代码被同事嘲讽,只会写if else,for 循环,现在来了解下jdk8新特性lambda和stream的使用。lambda表达式语法:(parameters) -> expression或(parameters) ->{ statements; }parameters是参数,expression是表达式,statements是代码块。比如 x->x+5,表示接收参数x,返回x+5,(x, y) -> x + y ,表示接收参数x和y,返回x..
2021-07-10 15:50:48 277
原创 java使用redis调用lua
使用脚本的好处:1. 减少网络开销,在Lua脚本中可以把多个命令放在同一个脚本中运行2. 原子操作,redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。换句话说,编写脚本的过程中无需担心会出现竞态条件3. 复用性,客户端发送的脚本会永远存储在redis中,这意味着其他客户端可以复用这一脚本来完成同样的逻辑使用:1. 根据业务编写lua脚本 XX.lua,语法请自行百度(idea可以安装luaplugin)local current = redis.call('GET', ...
2021-07-10 02:05:26 1892
原创 使用Filter做拦截验证转发响应
Filter 实现URL级别的权限访问控制,过滤敏感词汇,压缩响应信息等。(忽略Filter配置文件)public class SysUpholdFilter implements Filter{ RedisCache redisCache; @Override public void init(FilterConfig filterConfig) throws ServletException { ApplicationContext app= W.
2021-07-10 01:38:00 318
转载 Linux下卸载RabbitMQ
一、卸载rabbitmq相关的1、卸载前先停掉rabbitmq服务,执行命令service rabbitmq-server stop2、查看rabbitmq安装的相关列表yum list | grep rabbitmq3、卸载rabbitmq已安装的相关内容yum -y remove rabbitmq-server.noarch二、卸载erlang1、查看erlang安装的相关列表yum list | grep erlang2、卸载erlang已安..
2021-05-09 13:41:33 2520
转载 CentOs7 RabbitMQ安装部署
一、首先安装ERLANG环境下载安装:curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bashyum -y install erlang检查是否安装成功:erlhalt().命令退出来二、安装RABBITMQ下载安装:curl -s https://packagecloud.io/install/repositories/rab..
2021-05-09 13:30:10 238
原创 搞清线程池的几种实现方式
摘要:JDK中创建线程池主要有两类方法,一类是通过Executors工厂类提供的方法,该类提供了4种不同的线程池可供使用,另一类是通过ThreadPoolExecutor类进行自定义创建。(4种分别是:newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor)Executors类的封装,可以简化我们的使用,但事实上,阿里代码规范《阿里巴巴Java开发手册》中明确不建议使用Execut
2021-04-26 17:25:37 568
转载 HttpUtils工具类
import com.alibaba.fastjson.JSONObject;import org.apache.http.HttpEntity;import org.apache.http.HttpStatus;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.m..
2021-04-26 12:00:15 156
原创 SpringBoot Redis监听新增、修改、删除、过期事件(详细)
前言项目中需要监听redis的一些事件比如键删除,修改,过期等。过期事件网上有很多例子可以参考,但修改或删除事件却很少。因为redis支持发布订阅所以其他的事件类型应该也是能实现的,通过过期事件监听结合上文键空间通知,我整理了相关代码,希望帮助需要的人快速解决问题。代码搬运工搬自:https://blog.csdn.net/qq_39648029/article/details/105072079https://blog.csdn.net/huangbaoling66/article/det
2021-04-26 11:47:16 8706
原创 springBoot启动时让方法自动执行的几种实现方式
1.实现ServletContextAware接口并重写其setServletContext方法 注意:该方法会在填充完普通Bean的属性,但是还没有进行Bean的初始化之前执行 @Componentpublic class TestStarted implements ServletContextAware { /** * 在填充普通bean属性之后但在初始化之前调用 * 类似于initializingbean的afterpropertiesset或自定义in..
2021-04-25 17:44:54 178
原创 SpringBoot项目使用shell自动拉取代码并部署
一、环境前提:jdk 安装对应项目jdk版本maven 安装maven配置环境变量git 安装git配置git账号,此时需要注意:git 可以是1.码云(git@gitee.com)2.github(git@github.com) 3.公司自定义搭建的(git@192.168.1.31)我这里直接借用某位大佬的文章https://blog.csdn.net/tracyclock/article/details/72779737git --version 查看版本...
2021-04-19 18:36:47 327
转载 JFinal 框架websocket配置
说明以tomcat容器为例,tomcat7以上版本开始支持websocket,JFinal集成的jetty服务器不支持websocket一、包依赖,tomcat7或是javaee包都行,两者二选一,容器中已提供所以只作为提供者<dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-websocket-api</artifactId><version&
2020-12-15 22:17:15 489
转载 windows 下利用 Charles 对手机进行抓包(https)
前提条件:手机和电脑必须在同一个局域网内1、电脑上下载Charles ,自行百度,无需破解2、安装,一直下一步就好。无特别说明,安装好之后,logo是一个花瓶模样3、打开Charles,如下图4、对Charles进行设置,如下图 ,点击顺序为 Proxy--ssl proxying settings5、你会看到如下图,Enable SSL Proxying这个对勾一定要勾上,然后点击Add6、按下图输入,并点击OK7、点击OK8、如下图,步骤和3...
2020-12-07 11:58:40 1159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人