- 博客(248)
- 资源 (24)
- 收藏
- 关注
原创 现网日志问题定位--日志的查询、过滤、筛选
现网日志问题定位--日志的查询、过滤、筛选1、监控server.log日志件,并查看含有'foo'关键字的前后5行:$ tail -f server.log|grep 'listMyMeetings' -C 5// 或$ tail -f server.log|grep 'listMyMeetings' -52、通过-f参数,我们可以实时查看文件的新增内容tail -f server.log3、筛选关键字打印的日志tail -fn 1000 server.log | grep
2020-09-10 12:20:58 1435
原创 Java8新特性(lambda表达式):List分组、List转Map、String转List、mapKey转list、循环map、过滤Filter、List转String
利用java8新特性,可以用简洁高效的代码来实现一些数据处理List分组、List转Map、String转List、mapKey转list、循环map、过滤Filter、List转String1、分组List里面的对象元素,以某个属性来分组,将属性相同的放在一起://List 以名称分组 Map<String, List<User>>public static void testGroupBy1(List<User> users) { Ma...
2020-08-31 18:13:34 22401
原创 maven升级版本后报错:Blocked mirror for repositories
maven在3.8.1 的默认配置文件中增加了一组标签,如果仓库镜像是 http 而不是https 就会被拦截禁止访问,而当前公司私服一般是http 而不支持https。方法一:降低Maven 版本到3.8.1 以下方法二:将镜像仓库从http 变成https方法三:增加节点方法四:注释掉 $MAVEN_HOME/conf/settings.xml 中的拦截标签。
2023-09-05 11:03:42 839 1
原创 zset类型的底层数据结构的实现
参考资料:redis中zset底层实现原理_渣渣-CSDN博客_zset底层数据结构redis的zset数据结构:跳表 - 知乎zset类型的底层数据结构的实现?zset是Redis提供的一个非常特别的数据结构,常用作排行榜等功能,以用户id为value,关注时间或者分数作为score进行排序。与其他数据结构相似,zset也有两种不同的实现,分别是zipList和skipList。数据结构跳表(skiplist)是一个查询/插入/删除 复杂度o(lgn)的数据结构。在查询上跟平衡
2021-12-05 14:33:31 6529
转载 线程池实现原理
创建线程有哪几种方式一、继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。 (2)创建Thread子类的实例,即创建了线程对象。 (3)调用线程对象的start()方法来启动该线程。 二、通过Runnable接口创建线程类 (1)定义runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。 ..
2021-12-05 13:08:56 416
转载 数据库Mysql 核心日志(redolog、undolog、binlog)
Mysql 核心日志(redolog、undolog、binlog)我们在使用Mysql 里会接触到三个核心日志分别是 binlog 、redo log、undo log, 这里面binlog 是server层的日志,而redo log 和undo log都是引擎层(innodb)的日志,要换其他数据引擎那么就未必有redo log和undo log了。也正是因为它们在Mysql不同的体系结构里,所以他们所针对的的问题也是完全不同的,而我们要了解这些日志的核心思想和功能原理,那么就势必先要从它锁针对的问
2021-12-05 11:42:58 466
转载 数据库MVCC多版本并发控制原理
MVCC实现原理频繁的加锁会带来什么问题?读数据的时候没办法修改。修改数据的时候没办法读取,极大的降低了数据库性能。数据库是如何解决加锁后的性能问题的?MVCC 多版本控制实现读取数据不用加锁, 可以让读取数据同时修改。修改数据时同时可读取。一、什么是MVCC?MVCC是在并发访问数据库时,通过对数据做多版本管理,避免因为写锁的阻塞而造成读数据的并发阻塞问题。通俗的讲就是MVCC通过保存数据的历史版本,根据比较版本号来处理数据的是否显示,从而达到读取数据的时候不需要加锁就可以
2021-12-04 21:36:47 10679 7
转载 数据库事务与锁
一、事务的ACID特性什么是事务?在数据库系统里而言,事务是代表一个或者一系列操作的最小逻辑单元,所有在这个逻辑单元内的操作要么全部成功,要么就全部失败,不存在任何中间状态,一旦事务失败那么所有的更改都会被撤消,一旦事务成功所有的操作结果都会被保存。“一致性是事务的最终目的,而原子性、隔离性、持久性其实都是为了实现一致性的手段”。1、原子性(Atomicity)概念:一个事务必须是一系列操作的最小单元,这系列操作的过程中,要么整个执行,要么整个回滚,不存在只执行了其中某一个或者某几个步
2021-12-04 21:34:11 2162
原创 gateway和nginx网关的区别
spring cloud gateway网关是介于nignx以及业务应用之间的中间层,主要负责将请求路由到不同的微服务中以及对请求的合法性进行校验。我们目前网关的选型是spring cloud gateway,位置在nignx之后,各个微服务应用之前。为何在已经有nignx的情况下,中间还需要一道负责负载均衡功能的网关呢?一个原因是spring cloud gateway天然集成了注册中心eureka,能实现应用的自动注册与发现,而nginx每增加一个服务应用都需要手动去设置配置文件。 另一个原
2021-12-04 17:37:22 14898
原创 数据库优化的方法
1、数据库优化概览图在数据库优化方面,从主到次的顺序:以SQL优化、索引优化为主,解决慢SQL问题,最大程度地利用好索引 其次从数据库表结构入手、分库与分表,对数据量级进行处理 最大化利用机器配置,比如设置使用机器内存的大小 如果以上三点无法满足需求,那么再考虑硬件方面的问题,比如提升机器配置,再不行就多用几台服务器,这种成本较高,其性价比相对来说是最低的2、软优化:2.1、查询语句的优化 用EXPLAIN 分析一条查询语句 1.避免索引失效导致的全表扫描 2.SQL语句
2021-12-04 17:27:37 7528 3
原创 Redis使用过程中遇到的问题
Redis使用过程中的问题 数据库和redis的数据一致性问题(最终一致性) 先更新数据库,再删除缓存(相当于被动更新) 先删除缓存,再更新数据库 缓存雪崩 大量热点数据同时失效,或者redis出现故障由redis的key过期导致 过期时间设置一个随机值 对于热点数据,没必要设置过期时间 增加二级缓存 缓存穿透 redis和mysql都不存在的情况,有可能是恶意攻击。Redis使用起来很简单,但是在实际应用
2021-12-03 09:11:58 1571
原创 centos7设置静态IP地址& “journalctl -xe“ for details
1.查看IP配置信息如上图所示,我的em1网卡已配置好2、编辑 vi /etc/sysconfig/network-scripts/ifcfg-你的网卡名字操作:vim /etc/sysconfig/network-scripts/ifcfg-你的网卡名字,按i键进入编辑。编辑结束后Esc退出编辑→Shift+q→!wq→x修改配置文件如下图参数说明:BOOTPROTO="static" # 使用静态IP地址,默认为dhcp IPADDR="19.37.33.66".
2021-11-29 19:00:00 917
原创 Netty介绍及其工作原理
资料总结来自MIC老师,仅供学习使用。为什么选择NettyNetty其实就是一个高性能NIO框架,所以它是基于NIO基础上的封装,本质上是提供高性能网络IO通信的功能。由于前面的课程中我们已经详细的对网络通信做了分析,因此在学习Netty时,学习起来应该是更轻松的。Netty提供了上述三种Reactor模型的支持,我们可以通过Netty封装好的API来快速完成不同Reactor模型的开发,这也是为什么大家都选择Netty的原因之一,除此之外,Netty相比于NIO原生API,它有以下特点:
2021-11-16 18:20:16 2092
原创 网络IO的通信原理及Reactor模型
网络IO的通信原理首先,对于TCP通信来说,每个TCP Socket的内核中都有一个发送缓冲区和一个接收缓冲区,接收缓冲区把数据缓存到内核,若应用进程一直没有调用Socket的read方法进行读取,那么该数据会一直被缓存在接收缓冲区内。不管进程是否读取Socket,对端发来的数据都会经过内核接收并缓存到Socket的内核接收缓冲区。read所要做的工作,就是把内核接收缓冲区中的数据复制到应用层用户的Buffffer里。进程调用Socket的send发送数据的时候,一般情况下是将数据从应用层用户的
2021-11-16 09:55:48 1206
原创 阿里云服务器上部署zookeeper 3.6.3(6)- 一致性与Leader选举原理分析篇
学习资料来源MIC老师,仅供学习使用。关于Zookeeper中的一致性前面我们在讲Zookeeper的数据同步时,提到zookeeper并不是强一致性服务,它是一个最终一致性模型,具体情况如图-4所示。ClientA/B/C假设只串行执行, clientA更新zookeeper上的一个值x。ClientB和clientC分别读取集群的不同副本,返回的x的值是不一样的。clientC的读取操作是发生在clientB之后,但是却读到了过期的值。很明显,这是一种弱一致模型。如果用它来实现锁机制是.
2021-11-16 09:21:11 414
原创 阿里云服务器上部署zookeeper 3.6.3(5)- 基于Zookeeper实现分布式锁及Leader选举篇
资料来自MIC老师,仅学习参考。理解分布式锁我们先来看一个问题,如图11-1所示,两个用户同时去抢购秒杀商品,当秒杀服务同时收到秒杀请求时,都去进行库存扣减,此时在没有做任何处理的情况下,就会导致库存数量变成负数从而导致超卖现象。这种情况下我们一般会选择加锁的方式来避免并发的问题。但是在分布式场景中,采用传统的锁并不能解决跨进程并发的问题,所以需要引入一个分布式锁,来解决多个节点之间的访问控制。Zookeeper如何解决分布式锁我们可以基于Zookeeper的两种特性来实现.
2021-11-13 17:37:24 1483
原创 阿里云服务器上部署zookeeper 3.6.3(4)- 客户端命令使用篇
zkCli.sh客户端命令使用[root@iZwz9fyh8d6xm9hs0q453mZ bin]# ./zkCli.sh./zkCli.sh -timeout 0 -r -server ip:port./zkCli.sh -timeout 5000 -server 192.9.200.242:2181-r :即使ZooKeeper服务器集群一般以上的服务器当掉,也给客户端体统读服务h :显示所有命令[zk: localhost:2181(CONNECTED) 0.
2021-11-11 19:51:22 1671
原创 阿里云服务器上部署zookeeper 3.6.3(3)- 集群模式篇
伪集群模式这里我们采用的是伪集群模式,一台机器上三个节点,集群模式是一台机器上一个节点。之所以称伪集群,就是这台机器挂了,集群也就没了。集群与伪集群的方式完全一样的。Zookeeper工作原理在zookeeper的集群中,各个节点共有下面3种角色和4种状态:角色:leader,follower,observer状态:leading,following,observing,lookingZookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的
2021-11-11 19:32:37 53633
原创 阿里云服务器上部署zookeeper 3.6.3(2)- 单机模式篇
单机模式zookeeper有两种运行模式:集群模式和单机模式。下载zookeeper安装包:https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz 。步骤一:安装配置jdk环境 切换到root账户 检查是否已安装过jdkyum list --installed|grep jdk 或者java -version看下能不能执行。 如
2021-11-11 19:09:12 2881
原创 java核心知识点总结篇-JAVA 基础篇
5.1.1. JAVA 异常分类及处理5.1.1.1. 概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。5.1.1.2. 异常分类Throwable 是 Java 语言中所有错误或异常的超类。下一层分为 Error 和 ExceptionError\1. Error 类是指.
2021-11-06 14:19:07 422
原创 java核心知识点总结篇-多线程并发篇(2)
书接上文。。。4.1.14. JAVA 阻塞队列原理阻塞队列,关键字是阻塞,先理解阻塞的含义,在阻塞队列中,线程阻塞有这样的两种情况:\1. 当队列中没有数据的情况下,消费者端的所有线程都会被自动阻塞(挂起),直到有数据放入队列。\2. 当队列中填满数据的情况下,生产者端的所有线程都会被自动阻塞(挂起),直到队列中有空的位置,线程被自动唤醒。4.1.14.1. 阻塞队列的主要方法 抛出异常:抛出一个异常; 特殊值:返回一个特殊值(null ..
2021-11-06 11:27:45 409
原创 java核心知识点总结篇-多线程并发篇(1)
4. JAVA 多线程并发4.1.1. JAVA 并发知识库4.1.2. JAVA 线程实现**/创建方式**4.1.2.1. 继承 Thread 类Thread 类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过 Thread 类的 start()实例方法。start()方法是一个 native 方法,它将启动一个新线程,并执行 run()方法。 public class MyThread exten.
2021-11-05 20:52:56 347
原创 java核心知识点总结篇-集合篇
3. JAVA 集合3.1.**接口继承关系和实现**集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。\1. Collection:Collection 是集合 List、Set、Queue 的最基本的接口。\2. Iterator:迭代器,可以通过迭代器遍历集合中的数据\3. Map:是映射表的基础接口3.2.ListJava 的 List 是非常常用的数据类型。List 是有序的..
2021-11-05 20:38:11 179
原创 java核心知识点总结篇-JVM篇
2. JVM(1) 基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。(2) 运行过程:我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。也就是如下:① Java 源文件—->编译器—->.
2021-11-05 20:23:11 1355 1
原创 Apache Pulsar
Apache Pulsar简介Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、 轻量化函数式计算为一体。该系统源于 Yahoo,最初在 Yahoo 内部开发和部署,支持 Yahoo 应用服务 平台 140 万个主题,日处理超过 1000 亿条消息。Pulsar 于 2016 年由 Yahoo 开源并捐赠给 Apache 软 件基金会进行孵化,2018 年成为 Apache 软件基金会顶级项目。Pulsar 作为下一代云原生分布式消息
2021-11-02 11:09:50 564
原创 RocketMQ安装
一、单实例安装&启动1、安装-目录规划cd /opt/soft# 上传RocketMQ二进制压缩包,到/opt/soft目录下 或者直接wget下载wget https://archive.apache.org/dist/rocketmq/4.7.1/rocketmq-all-4.7.1-binrelease.zip# 安装unzip解压yum install -y unzip# 解压unzip rocketmq-all-4.7.1-bin-release.zip# 重命名
2021-10-29 14:42:58 226
原创 RabbitMQ如何保证消息的可靠性
RabbitMQ如何保证消息的可靠性 1、保证消息不丢失(三步) 开启事务(不推荐) 开启confirm(推荐) 开启RabbitMQ持久化(交换机、队列、消息) 关闭RabbitMQ自动ack(改成手动) 2、保证消息不重复消费 幂等性(每个消息用一个唯一标识来区分,消费前先判断标识有没有被消费过,若已消费过,则直接ACK) 3、RabbitMQ如何保证消息的顺序性 将消息放入同一个交换机,交给同一个队列,这个队列只有一个消费者,消费者只允许同时开启一个线程.
2021-10-29 12:19:31 5131
原创 rabbitmq安装和使用
rabbitmq安装和使用一、安装依赖环境1. 在 http://www.rabbitmq.com/which-erlang.html 页面查看安装rabbitmq需要安装erlang对应的 版本2. 在 https://github.com/rabbitmq/erlang-rpm/releases 页面找到需要下载的erlang版本,erlang-*.centos.x86_64.rpm 就是centos版本的。3. 复制下载地址后,使用wget命令下载wget -P /home.
2021-10-29 10:01:54 304
转载 ZooKeeper可视化工具PrettyZoo【转载】
https://mp.weixin.qq.com/s/DMSf-2MFbjxd07OUF7Tx6Q
2021-09-08 15:26:12 182
原创 Navicat 连接阿里云上MySQL报 2059 - authentication plugin ‘caching_sha2_password‘ .....
Navicat 连接阿里云上MySQL报 2059 - authentication plugin 'caching_sha2_password' ..... 解决方法MySQL :80错误原因:MySQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_password】,Navicat不支持这种用户登录账户加密方式。1、连接报错 2、登录到mysql,云上的服务器也一样3、先查看一下加密的方式show variables like 'd.
2021-06-02 16:03:58 811
原创 阿里云服务器在安装MySQL启动失败mysql8.0
安装MySQL出现Job for mysqld.service failed because the control process exited with error code问题阿里云服务器在安装MySQL启动失败:根据这个提示,查看原因,百度到的办法是,修改配置文件后,还是报错“Job for mysqld.service failed because the control process exited with error code”。之后发现这一个问题(红框里面的提示..
2021-06-02 14:00:53 441
原创 github上Fork的原项目,原项目提交了新代码,怎么更新到自己Fork的分支上?
github上Fork的原项目,原项目提交了新代码,怎么更新到自己Fork的分支上?方法一、在github上进行操作、然后更新(旧)登录自己的github账号,在fork的项目内点击“New pull request”:这时候回到自己github账号下fork的项目code下看commits可以看到原项目新提交的内容都已经合过来了。方法二、在github上进行操作、然后更新(新:推荐)这时候回到自己github账号下fork的项目code下看c...
2021-05-30 00:20:44 1099
原创 通过redis key的前缀获取所有的key或者获取所有key对应的value
通过redis key的前缀获取所有的key或者获取所有key对应的value异常:从redis获取出来的值为java.lang.Long|3305 或者java.lang.String|"3305" ,导致转化为List< String/Long > 失败。原因:1、设置redis的value要存储String ,五种数据类型不存在Long型redisCacheUtils.createTimeOutCache(redisKey, user.getId() + "", 60..
2021-05-26 11:07:35 16988
原创 idea(2021.1)更新后报错 !invalid format: `命令行过长
1、idea更新到2021.1最新版本,原来的代码编译,执行报:!invalidformat:`命令行过长。要为{0}{1,choice,0#或也为{2}''''default''''配置|1#}缩短命令行吗?`!2、解决处理:详细原因:IDEA命令行缩短器是什么?每天努力一点,每天都在进步。...
2021-05-10 17:18:05 9606
原创 工具类-使用python实现world转pdf
使用python实现world转pdf1、前提条件python环境2、python 代码:# -*- encoding: utf-8 -*-import osfrom win32com import client#pip install win32comdef doc2pdf(doc_name, pdf_name): """ :word文件转pdf :param doc_name word文件名称 :param pdf_name 转换后..
2021-05-10 12:27:42 271
原创 如何将本地项目上传到Github
平时我们开发项目都是在局域网下搭建私有仓库,内网的人可以实现代码共同维护和开发。当我们想在自己的环境,公共的网络上,也想实现像在内网上维护项目,那我们怎么实现?怎么把自己的项目放到Github上维护那?实现代码共享,共同维护。点这里了解 开启Github之旅!...
2021-04-26 17:22:44 112
原创 状态模式介绍
这里写自定义目录标题状态模式介绍一、什么是状态模式?二、使用介绍三、为什么我们需要它?(适用场景是什么)小结 1、行为随状态改变而改变的场景。 2、条件、分支语句的代替者。四、优缺点五、怎么实现六、一个简单的地铁运行状态的例子。七、总结:项目开发,单独的状态模式不适用我们的当前的合同状态的流转,我们采用策略模式+状态模式的方式实现每天努力一点,每天都在进步状态模式介绍一、什么是状态模式?在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态
2021-04-25 10:06:27 2218
原创 算法-八皇后问题
算法-八皇后问题1、什么是八皇后问题?八皇后问题是一个古老的问题,于1848年由一位国际象棋棋手提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,如何求解?以高斯为代表的许多数学家先后研究过这个问题。后来,当计算机问世,通过计算机程序的运算可以轻松解出这个问题。2、如何解决八皇后问题?所谓递归回溯,本质上是一种枚举法。这种方法从棋盘的第一行开始尝试摆放第一个皇后,摆放成功后,递归一层,再遵循规则在棋盘第二行来摆放第..
2021-02-22 18:32:17 423
flyway-6.4.2.rar
2020-07-02
fastdfs-client-javajar1.29-SNAPSHOT.zip
2020-05-29
fastdfs-client-javajar1.27-SNAPSHOT.zip
2020-05-29
Git-2.7.2-64.rar
2020-05-29
flyway-patch.rar
2020-05-29
flyway-commandline-6.4.2-linux-x64.tar.gz
2020-05-29
flyway-commandline-6.4.2-windows-x64.zip
2020-05-29
kafkatool_64bit.exe
2020-04-07
junit-4.11与hamcrest-core-1.3.jar.zip
2020-03-26
学习Redis的脑图.rar
2020-03-24
Bean以及注解的方式实现dubbo调用(Maven)
2018-09-10
DSS数字签名标准Java实现
2018-01-07
RSA公钥加密算法Java实现
2018-01-07
信息-摘要算法5(MD5)Java实现
2018-01-06
DES对称加密算法Java实现
2018-01-06
DH密钥交换算法Java实现
2018-01-06
日期通用处理类
2017-08-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人