自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 原神私服搭建二: 搭建服务端

原神私服搭建二: 搭建服务端

2022-06-14 11:02:18 52327 81

原创 分布式-Bus消息总线

分布式-Bus消息总线SpringCloud Bus使用轻量级消息代理将分布式系统的节点连接起来。然后可以使用此代理广播状态更改(例如配置更改)或其他管理指令本文接上一篇:分布式-Config 配置中心说明:配置服务端,客户端连接至统一mq,当git提交后,触发git的回调,调用服务端,广播到客户端,实现实时更新开始配置:安装ubuntu 安装rabbitmq一:配置配置中心服务1.依赖<!-- bus-RabbitMQ --> <dependency&g

2021-06-24 17:23:51 436

原创 MySQL innodb索引回表操作,最左匹配

MySQL innodb索引回表操作,最左匹配簇集索引(主键索引):索引的叶子结点存的所有字段值,非簇集索引(非主键索引): 索引的叶子结点存的是主键字段的值回表操作:​例子:表table 有主键 a,索引bselect a,b,c from table where a=1 ,因为a是簇集索引有所有字段,不会回表查select a,b,c from table where b=1,因为b是非簇集索引只有主键a和索引b,会回表查,步骤是拿a去a的簇集索引去找到c,最后a,b,c都有了

2021-03-01 09:58:48 395

原创 netty工作流程和原理

netty工作流程和原理流程说明:bossGroup负责处理连接请求,请求成功后将chanel注册到读写chanel上,交给workGroup。当selector监听有读写事件发生时,遍历这些事件的key,调用具体的handler处理。netty相对于nio的优化netty将连接和读写的selector分开netty将buffer重新编写,从内存中指定直接内容,使用它的引用netty将各种遍历key,判断情景的情况封装,更加注重于业务...

2021-03-01 09:45:00 505

原创 dubbo模拟框架的自我搭建一

dubbo模拟框架的自我搭建一rpc:远程方法调用框架实现思路:1.提供一个服务得接口2.提供服务得实现类3.将服务注册到注册中心,将服务注册到本地4.使用tomcat处理请求整体流程图:说明:1.服务消费者向远程注册中心获取服务提供者的url2.通过url连接服务提供者3.服务提供者通过服务消费者提供的参数(包括执行参数,执行方法,接口名等)去本地注册中找实现方法执行,并返回执行结果限制与优化:限制:因为本项目没有连接第三方,如redis,zk。所以采用了对象刷磁盘来达到数据同

2021-02-24 17:54:05 174

原创 jvm出现问题的线程定位

jvm出现问题的线程定位jps获取当前的进程号pidtop -Hp +pid 获得占资源多的线程号tid (或者运行 ps -mp <pid> -o THREAD,tid,time | sort -k2r)printf "%x \n" <tid> 获得16进制thread-hex-idjstack -l <pid> | grep <thread-hex-id> -A 10获得堆栈对象占用信息:Jmap -histo +pid | head -

2021-02-18 10:02:31 207

原创 DNF游戏私服搭建过程

DNF游戏私服搭建过程准备资源:1.黑岩客户端2.服务器启动所需资源3.1核2G服务器一台(版本centos5.8)(记得开放全部端口)服务端配置:步骤一:切换源为163的源: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com//.help/CentOS5-Base-163.repo 上传资源到服务器的根目录 cd / 上传文件步骤二:安装 glibc.i386,xulrunner.i386,libXt

2021-01-20 16:38:33 48312 47

原创 统计用户在各个月份的活跃(较大量数据)

需求:统计用户在各个月份的活跃(演示一个月的数据),一个用户在同一天会多次活跃,只记做一次基本sql:SELECT token FROM sdk_log.hear_beat_log bt WHERE bt.create_time >= '2020-09-01' AND bt.create_time < '2020-10-01' AND app_id IN ( 'bird_11d_cn_20190524', 'fbbdand2004' ) GRO

2020-12-28 12:43:04 905

原创 回收器类型+G1回收器概念

回收器类型+G1回收器概念一:串行收集器:开启:-XX:+SerialGC串行收集器组合 Serial + Serial Old串行收集器采用单线程stop-the-world的方式进行收集。当内存不足时,串行GC设置停顿标识,待所有线程都进入安全点(Safepoint)时,应用线程暂停,串行GC开始工作,采用单线程方式回收空间并整理内存。串行收集器特别适合堆内存不高、单核甚至双核CPU的场合二:并行收集器开启: -XX:+UseParallelGC(java 8默认开启的这种)并行收集

2020-12-23 15:40:03 149

原创 多线程处理list集合

记录一次多线程处理list集合的过程方法://计数 static AtomicInteger count = new AtomicInteger(0); //处理方法 public String moFee(List<JSONObject> list, final int nThreads) throws Exception { if (list == null || list.isEmpty()) { return nu

2020-12-17 16:34:04 320 1

原创 ES(elasticsearch)搜索引擎 结合java 使用

ES(elasticsearch)搜索引擎 结合java 使用官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.x/java-rest-high.html重点概念:文件索引块是因为使用了倒排索引倒排索引:例如 文件a 中有 单词 java php ,文件b中有 java php python ,文件c 中有java , python 那么 单词对应的文件为: java :a ,b,c

2020-12-17 16:29:52 4114 1

原创 linux 上 ES(elasticsearch)搜索引擎7.7.0安装

linux 上 ES(elasticsearch)搜索引擎7.7.0安装前提:安装了docker(点击查看docker使用) ,未安装docker可使用源码安装,更改elasticsearch.yml配置文件即可源码官网:https://www.elastic.co/cn/elastic-stack一单机版1,拉取镜像卷imagedocker pull elasticsearch:7.7.02,创建文件挂载mkdir -p /data/elasticsearch/configmkdir -

2020-12-17 15:27:07 268

原创 docker 基本使用

docker 基本使用1.创建容器docker create --name=nginx nginx 说明:–name指定容器名2.创建并启动容器docker run --name nginx -d -p 8080:80 nginx 说明:将容器得80端口映射到宿主机得8080 (访问宿主8080等于访问容器80)3.启动容器/停止容器docker start/stop 容器name或者id4.查看所有容器do

2020-12-17 15:25:25 137

原创 volatile原理分析

volatile原理分析:一:代码实例(不加volatile): static volatile boolean initFlag=false; public static void main(String[] args) throws InterruptedException { new Thread(new Runnable() { @Override public void run() {

2020-12-02 17:18:34 210

原创 synchronized原理

synchronized原理:一:先认识下object对象的结构对象由:对象头,实例数据,其他组成对象头mark word说明:hashcode标志唯一对象, epch.threadId,age 偏向状态,锁状态标志用户加锁,垃圾回收等,元数据指针指向元数据区的静态方法,数组长度储存数组对象长度二:synchronized用法class Student{private static Object object =new Objcet();synchronized(object){//锁

2020-12-02 16:26:50 164

原创 分布式-Config 配置中心

分布式-Config 配置中心作用与说明:1.spring Cloud Config为分布式系统中的外部化配置提供了服务器端和客户端支持。有了配置服务器,您就有了一个中心位置来管理跨所有环境的应用程序的外部属性。2.本案例中将 文件上传到 git,配置服务端读取git上的数据,客户端读取配置服务端的数据,本文接上一篇(分布式-Feign 服务调用)开始配置:一:本文将service-a作为客户端读取配置中心配置,自定义文件 service-a-dev.properties 上传至码云二.搭建配

2020-11-27 16:16:08 268 2

原创 mysql数据库定时清理数据

mysql数据库定时清理数据一:查看调度,设置调度开启1.查看调度 SELECT @@event_scheduler2.设置调度开启:– 设置方法(开启)SET @@global.event_scheduler = ON;– 设置方法(关闭)SET @@global.event_scheduler = OFF;二:创建存储过程DELIMITER $$USE `db`$$DROP PROCEDURE IF EXISTS `auto_del_90`$$CREATE DEFINER=

2020-11-27 10:17:29 1547

原创 分布式-单点登录

分布式-单点登录原理:通过动态路由zuul,访问服务器前做鉴权,然后把信息存入redis,cookie,请求服务前先走动态路由,会验证。一:新建项目:sso-server1.依赖: <dependencies> <!-- Redis --> <dependency> <groupId>org.springframework.boot</groupId> &l

2020-11-26 14:11:23 346

原创 分布式-Zuul 动态路由 &简单令牌桶

分布式-Zuul 动态路由作用:隐藏服务,统一暴露接口,且可以让访问路径统一做验证,如只放行携带Token的路径本文接上文(分布式-Ribbon 负载均衡)配置:新建zuul-server项目,引入依赖 <!-- Zuul --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId&gt

2020-11-25 11:52:59 269

原创 分布式-熔断器

分布式-熔断器现象:当服务提供者出现故障时,应该跳过服务提供者,并且快速返回解决:给消费者设置熔断器添加配置feign.hystrix.enabled=truehystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000hystrix.command.default.execution.timeout.enabled=falsefeign.httpclient.connection-timeout=3

2020-11-24 18:00:29 222

原创 分布式-分布式事务

**分布式-分布式事务**现象:当有服务A调用服务B的情况,如果 A或者B业务出错时,整个业务A和B都应该回滚,Transtional做不到这点解决:引入第三方应用方案:1.二段提交(CanCommit,DoCommit):当A 调用B时,向第三方应用开启事务组,将A,B加入事务组,当发送业务出错时,第三方广播回滚命令至A,B,A,B事务回滚2.三段提交(CanCommit、PreCommit、DoCommit):在二段提交的前提上,在DoCommit前面多一个PreCommit,协调者和参

2020-11-24 17:39:35 253

原创 分布式-Ribbon 负载均衡

分布式-Ribbon 负载均衡负载均衡顾名思义,通过一些策略,把大量的请求分配到不同的消费者上,达到负载均衡本文章接上篇(分布式-Feign 服务调用)已有资源:注册中心,消费者,服务提供者*2项目列表:说明:服务提供者两个项目唯一不同的是端口不同,其他的相同(包括应用名也相同)配置位置:两个服务提供者配置开始:1.引入依赖 <!-- Ribbon --> <dependency> <groupId>org.s

2020-11-24 14:37:11 227

原创 分布式-Feign 服务调用

分布式-Feign 服务调用Feign是一个声明性web服务客户端。它使编写web服务客户机变得更容易,本质上就是一个http,内部进行了封装而已。角色:服务提供者,服务消费者,注册中心(上篇文章已搭建 搭建注册中心)服务提供者:写在前面: 1、经测试,默认情况下,feign只能通过@RequestBody传对象参数  2、接参只能出现一个复杂对象,例:public Result<List<UserVo>> list(@RequestBody UserVo enti

2020-11-24 14:15:50 487

原创 分布式-Eurka

分布式-EurkaEureka是一种基于REST(具像状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移本文将演示服务注册与发现eureka-server依赖: <!-- 引入spring-cloud依赖管理 --> <dependencyManagement> <dependencies> <dependency> <group

2020-11-24 11:43:53 356

原创 ThreadLocal

ThreadLocal了解学习thradLocal会为当前变量资源定义一个副本,在线程上是相互隔离的使用:public class ThreadLocalTest { public static void main(String[] args) { ThreadLocal<String> local=new ThreadLocal<>(); Random random = new Random(); IntStream.r

2020-11-24 10:00:15 131

原创 日志定时清理

日志定时清理:加入定时任务crontab -e添加0 1 * * * find /home/getway_fy -mtime +2 -name '*.log' -exec rm -rf {} \;解释: -exec :前面的命令返回为true则执行 *-exec rm -rf {} *find /home/getway_fy -mtime +2 -name ‘*.log’ 是查找两天前未被修改过的日志查看定时任务 crontab -l...

2020-11-23 10:38:42 196

原创 索引优化

现有一sqlselect id, apiSettleAmount, tmpAmount, taskNumber, amazonOrderId, planName, round(amount,2) as amount, singleCost, settleStatus, shopUser, round(amount+commissio

2020-10-29 14:28:09 184

原创 mysql字符串操作

mysql 字符串操作一:字符串连接以特定字符连接group_concat(name separator ';') 如 : SELECT group_concat(id SEPARATOR ',') from data_mr LIMIT 5CONCAT函数:字符串拼接,字符串有null就返回null 如: SELECT CONCAT('MySQL','5.7',null) from data_mr , 结果 ===> nullCONCAT_WS :

2020-10-29 14:15:09 241

原创 ubuntu 安装rabbitmq

环境:ubuntu安装erlang【执行】sudo apt-get install erlang-nox验证【执行】erl安装rabbitmq【可选】sudo apt-get update【可选】sudo apt-get upgrade【执行】sudo apt-get install rabbitmq-server创建用户:rabbitmqctl add_user username password为用户分配角色rabbitmqctl set_user_tags username a

2020-10-23 16:29:06 222 1

原创 ubuntu 安装 mysql

环境: linux ubuntu安装服务:sudo apt-get updatsudo apt install mysql-server-5.7安装工具:sudo apt install net-toolssudo netstat -tap | grep mysql查看版本:mysql -V查看账号密码:sudo cat /etc/mysql/debian.cnf配置mysqlsudo mysql_secure_installation我的配置:#1VALIDATE PA

2020-10-23 15:01:27 310

原创 批量更新操作

背景:现有两张表,一张为指令配置表command(数据量为41条) ,一张为记录请求失败的表regist_error(数据量为60万),regist_error表有一type字段需要更新,来源于command表的sms_type,两表通过code字段关联。笨方法,适合复杂操作(用多线程程序运行)@Testpublic void getFiltes() throws InterruptedException { //获取指令表command 指定类型的指令 List<SpBizC

2020-10-23 11:48:17 1094

原创 配置动态数据源和ehcache

个人认为比较舒服的一种配置方式:项目目录:结构解释:数据源静态配置文件在:commandServerLocalDatasource通过application.yml加载该静态文件,初始化DataSourceConfig配置文件 提供DynamicDataSourceProperties 的bean,再初始化DynamicDataSourceAutoConfiguration 配置文件,加载DynamicDataSourceProperties 的bean,注入多个数据源使用时在mapper

2020-08-20 11:37:38 186

原创 项目远程调试

原因:开发经常遇到明明测试服通过了 ,放到线上却出问题了(当然可以docker,但是实际开发很少用docker去开发部署,限制太多了)解决办法:给项目启动时设置一个调试渠道,本地访问调试渠道1 项目启动时,先允许远程调试启动项目时加上参数(这一段参数,放要在-jar ):-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=90812 idea中设置远程调试

2020-08-20 11:05:47 147

原创 jrebel使用方法

1.安装插件jrebel ,安装完重启2 .Jrebel激活第一步:生成一个GUID在线生成GUID地址 (https://www.guidgen.com/), PS:如果失效刷新GUID替换就可以!第二部:点击按钮 输入url :https://jrebel.qekang.com/{GUID},其中的GUID是步骤一生成的,邮箱自己填写3.JRebel 配置File>Setting>Compiler>选中Build project automatically4

2020-08-20 10:50:37 5098 1

原创 shell常用命令(这篇主要用来启动项目)

例子:case "$1" in start) start ;; stop) stop ;; deploy) deploy ;; depstart) depstart ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|restart|deploy|de

2020-07-28 08:56:23 448

原创 虚拟机安装及其网络设置

安装vm,安装后设置vm8下载镜像iso,推荐可以用aliyun 的镜像网络适配器使用nat,根据步骤安装虚拟机。安装完后编辑VM的网络设置NAT设置,网关与前面设置的vm8一样设置子网ip跟掩码,掩码与vm同启动虚拟机,设置ip,网关,掩码等进入/etc/sysconfig/network-scripts/编辑文件ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUT

2020-07-13 14:00:16 220

原创 docker 结合idea一键部署项目到服务器

Docker 结合idea 一件部署应用到服务器服务器:1.修改docker的配置文件,在ExecStart后面添加-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock[root@localhost ~]# vim /usr/lib/systemd/system/docker.service修改后文件:ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:2375 -H unix://var/run

2020-06-10 10:24:12 469

转载 最小栈

实现一个这样的栈,这个栈除了可以进行普通的push、pop操作以外,还可以进行getMin的操作,getMin方法被调用后,会返回当前栈的最小值。栈里面存放的都是 int 整数,并且数值的范围是 [-100000, 100000]。要求所有操作的时间复杂度是 O(1)。附加:如果空间复杂度也能O(1)的话可加分。解:存放差值若将a={2,1,3,.0}入栈,2进,初始化栈顶为0 , 最小值为21进,栈顶为差值1-2,差值 小于0,最小值为13进,栈顶为差值3-1 差值大于0,最小值为10进

2020-05-13 18:49:04 175

转载 Token生成及其引用

转自https://blog.csdn.net/weixin_44832837/article/details/103815551Token生成及校验<dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.8.2</version> </dependenc

2020-05-11 16:30:28 413

原创 AutoGenerator 可通过mybatis-plus自动构建项目,可构建mapper,entity,service,controller等。

AutoGenerator 可通过mybatis-plus自动构建项目,可构建mapper,entity,service,controller等。项目截图:一:依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http...

2020-02-24 19:37:15 240

空空如也

空空如也

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

TA关注的人

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