fyzzz fyzzz
Tags Archives Links
  • 开始使用
  • Tags
  • Archives
  • Links
  • Search
  • RSS
mac 显示/隐藏文件夹 Command + Shift + . 禁止office自动更新 cd /Library/Application\ Support/Microsoft # 把MAU2.0下的文件移走或删除 Consul 本地启动 consul agent -dev -client=0.0.0.0 mongo 创建root use admin db.createUser({user: "root", pwd: "123456", roles:["root"]}) 查看用户 use admin db.system.users.find() 创建用户 use test db.createUser({ user: "fyzzz", pwd: "123456", roles: [{ role: "dbOwner", db: "test" }] }); db.createCollection("fyzzz") 修改权限 db.grantRolesToUser("fyzzz", [{role:"dbOwner", db:"test"}]) 删除权限 db.revokeRole....
置顶!

工作中遇到的命令

命令
Callable&Future&FutureTask介绍 直接继承Thread或者实现Runnable接口都可以创建线程,但是这两种方法都有一个问题就是:没有返回值,也就是不能获取执行完的结果。因此java1.5就提供了Callable接口来实现这一场景,而Future和FutureTask就可以和Callable接口配合起来使用。 Callable和Runnable的区别 @FunctionalInterface public interface Runnable { public abstract void run(); } @FunctionalInterface public interface Callable<V> { V call() throws Exception; } Runnable 的缺陷: 不能返回一个返回值 不能抛出 checked Exception Callable的call方法可以有返回值,可以声明抛出异常。和 Callable 配合的有一个 Future 类,通过 Future 可以了解任务执行情况,或者取消任务的....

并发之Future

Future
在项目中遇到了存储emoji(?)报错的情况,错误如下: Incorrect string value: '\xF0\x9F\x98\x80' for column 'name' at row 1 我们的项目使用的是springboot2.4.8+mysql5.7 数据库字段的编码已经修改成utf8mb4,并且直接把emoji插入表是可以成功的,所以不是数据库编码的问题。 网上搜了一下资料,有两个解决方案: 设置连接池的connection-init-sql的值为:SET NAMES utf8mb4,这个会在每次执行sql前执行; 升级mysql驱动类版本。升级前我们使用的是5.1.46,升级到5.1.49后问题解决。 为什么升级驱动类后可以了呢,我查看了mysql官网对驱动类的发行说明,发现5.1.47版本就已经解决了这个问题,原文如下: 浏览器翻译后: 参考链接:Changes in MySQL Connector/J 5.1.47 (2018-08-17)

mysql存储emoji异常解决

mysql
官方文档 本文记录常用的一些命令和场景 1、获取HttpServletRequest对象 watch -x 3 -n 1 org.springframework.web.servlet.DispatcherServlet doDispatch '@org.springframework.web.context.request.RequestContextHolder@currentRequestAttributes().getRequest().xxx()' 注:xxx替换为实际方法,如getRequestParameterMap()可以查看请求入参; -n 1表示只取1次。 2、反编译 参考 # 反编译类 jad demo.MainGame # 反编译指定方法 jad demo.MainGame main 3、sc/sm 查看已加载的类 sc sc 命令可以查找到所有JVM已经加载到的类。 如果搜索的是接口,还会搜索所有的实现类。比如查看所有的 Filter实现类 sc javax.servlet.Filter 通过 -d参数,可以打印出类加载的具体信息,很方便查找类加载问题。.......

arthas使用

arthas
在 kubernetes 中将 DNS 设置配置在 dnsConfig 配置项中, 而 dnsConfig 包含在 PodSpec 配置项中,因此 Pod 内所有容器都共享相同的 Network Namespace 。 helm中:

k8s设置dns

k8s
概述 我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能 就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。 这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机 制. MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。接下来,我们会深入讲解这些机 制,让大家彻底理解数据库内部的执行原理。 事务及其ACID属性 事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。 原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。 一致性(Consistent) :在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性。 隔离性(Isolation) :数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境执行。这意味着事务处理过程中的中间状态对外部是不可见的,反之亦然。 持久性(Durable) :事务完成之后,它对于数.....

Mysql事务隔离级别与锁机制

mysql
以下顺序为启动过程中的调用顺序 BeanDefinitionRegistryPostProcessor void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException; 注册BeanDefinition BeanFactoryPostProcessor void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException; 扩展beanFactory InstantiationAwareBeanPostProcessor Object postProcessBeforeInstantiation(Class 实例化前,返回非null的话,就不走默认的实例化逻辑 Supplier T get(); 这是Spring提供给开发者的扩展点,如果我们要自己来实现创建对象的过程, 那么就可以提供一个Supplier的实现类, 当一个BeanDefi....

Spring启动过程中的扩展点

spring
Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL 注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中 Explain分析示例 参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html 示例表: -- ---------------------------- -- Table structure for actor -- ---------------------------- DROP TABLE IF EXISTS actor; CREATE TABLE actor ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_....

MySql-Explain工具介绍

mysql
一、索引定义 索引是帮助MySQL高效获取数据的排好序的数据结构。 二、索引数据结构 二叉树:单向递增时效果低 红黑树:每个节点只能存一个数据,树太深,意味着从磁盘读取数据的次数多 Hash表 B-Tree B+Tree B-Tree 叶节点具有相同的深度,叶节点的指针为空 所有索引元素不重复 节点中的数据索引从左到右递增排列 B+Tree(B-Tree变种) 非叶子节点不存储data,只存储索引(冗余),可以放更多的索引 叶子节点包含所有索引字段 叶子节点用指针连接,提高区间访问的性能 mysql每页大小为16KB,查询语句:show GLOBAL STATUS like 'Innodb_page_size'; 如果主键是BigInt,占8个字节,中间指针约6字节,那么一页可以存放161024/14 = 1170 假设数据为1KB,那么三层的树可以存放:11701170*16=21902400条数据。 Hash 对索引的key进行一次hash计算就可以定位出数据存储的位置 很多时候Hash索引要比B+ 树索引更高效 仅能满足 “=”,“IN”,不支持范围查询 h....

MySql索引数据结构

mysql
Jetbrains系列产品重置试用方法 本站惯例:本文假定你知道Jetbrains家的产品。不知道可以问问搜索引擎。 没错,jetbrains-agent这个项目停止了。市面上漫天飞的各种最新都是其他大神的魔改版本。[/斜眼] 我不是要专门写个博文来说明 jetbrains-agent项目已经停止,然后缅怀感叹一番。这篇文章是想和大家聊聊另一种思路。 ## 0x0. 项目背景 Jetbrains家的产品有一个很良心的地方,他会允许你试用 30天(这个数字写死在代码里了)以评估是否你真的需要为它而付费。 但很多时候会出现一种情况:IDE并不能按照我们实际的试用时间来计算。 我举个例子:如果我们开始了试用,然后媳妇生孩子要你回去陪产!陪产时我们并无空闲对IDE试用评估,它依旧算试用时间。(只是举个例子,或许你并没有女朋友) 发现了吗?你未能真的有 30天来对它进行全面的试用评估,你甚至无法作出是否付费的决定。此时你会想要延长试用时间,然而Jetbrains并未提供相关功能,该怎么办? 事实上有一款插件可以实现这个功能,你或许可以用它来重置一下试用时间。但切记不要无休止的一直试用,这并不是这....

Jetbrains系列产品重置试用方法

待分类
nginx转发,swagger请求地址错误 proxy_set_header Host $host:$server_port; #添加:$server_port proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://xxx;

nginx配置记录

nginx
设置IP访问 K8s默认通过域名访问,如果需要设置ip访问,可以通过以下方案配置。 方案一: 在任意ingress中,做如下修改: ...   apiVersion: extensions/v1beta1 kind: Ingress metadata:   generation: 1   labels:     app.kubernetes.io/name: control-web   name: control-web   namespace: ipes-sjz   annotations: #这是新增的     nginx.ingress.kubernetes.io/server-alias:  ~^.*$ #这是新增的   spec:   rules:     - host: ipes-sjz.fpi-inc.site ... 注:这个方案不是一定能生效,可以采取第二种方案。 方案二: 通过nginx转发 修改/etc/host......

k8s通过ip访问

k8s
修改默认目录 mkdir -p /data/docker/lib systemctl stop docker.service rsync -avz /var/lib/docker/ /data/docker/lib/ mkdir -p /etc/systemd/system/docker.service.d/ vim /etc/systemd/system/docker.service.d/devicemapper.conf 创建文件: [Service] ExecStart= ExecStart=/usr/bin/dockerd --graph=/data/docker/lib/ systemctl daemon-reload systemctl restart docker docker info | grep "Dir" 查看占用 docker system df 清除空间 docker system prune

docker修改默认目录

docker
离线安装docker 下载离线安装包:https://download.docker.com/linux/static/stable/x86_64/ 把离线包上传到服务器解压: 把命令放到/usr/bin下, 在/etc/systemd/system下添加docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for.....

离线安装docker、registry、k8s、helm

docker
1、观察磁盘分区状态 lsblk 2、blkid 列出装置的 UUID 等参数 3、parted 列出磁盘的 分区 表类型与 分区 信息 4、格式化磁盘 mkfs.xfs 磁盘 格式化成ext4 mkfs.ext4 磁盘 5、挂载 例: 6、移除 umount 7、开机自动挂载 编辑 /etc/fstab 如: 进行测试:先把/dev/vdc移除挂载,然后执行 mount -a,查看磁盘/dev/vdc是否挂载上,必须测试通过,否则影响开机。 8、重新挂载根目录与挂载不特定目录

linux挂载磁盘

linux
Spring最重要的功能就是帮助程序员创建对象(也就是IOC),而启动Spring就是为创建Bean对象做准备,所以我们先明白Spring到底是怎么去创建Bean的,也就是先弄明白Bean的生命周期。 Bean的生命周期就是指:在Spring中,一个Bean是如何生成的,如何销毁的? Bean的生成过程 1. 生成BeanDefinition Spring启动的时候会进行扫描,会先调用 Resource[] resources = getResourcePatternResolver().getResources(packageSearchPath); 拿到所指定的包路径下的所有文件资源(******.class文件) 然后会遍历每个Resource,为每个Resource生成一个MetadataReader对象,这个对象拥有三个功能: 获取对应的Resource资源 获取Resource对应的class的元数据信息,包括类的名字、是不是接口、是不是一个注解、是不是抽象类、有没有父类,父类的名字,所实现的所有接口的名字,内部类的类名等等。 获取Resource对应的class上的.......

Spring | 三、Spring中Bean的生命周期详解

spring
BeanDefinition Bean的定义,在Spring中,我们可以如何去定义一个Bean? <bean/> @Bean @Component(@Service,@Controller) 还有就是可以通过BeanDefinition 比如,我们可以通过定义一个BeanDefinition对象来表示定义了一个Bean: // 定义了一个BeanDefinition AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition(); // 当前Bean对象的类型 beanDefinition.setBeanClass(User.class); // 将BeanDefinition注册到BeanFactory中 DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); beanFactory.registerBeanDefinition(......

Spring | 二、Spring中核心概念详解

spring
参考链接: https://www.cnblogs.com/www-yang-com/p/10419861.html 假设master要对worker作免密登录 在master和worker上都执行:ssh-keygen -t rsa 执行完会在~/.ssh目录下生成:id_rsa和id_rsa.pub文件 把master的id_rsa.pub放到worker的~/.ssh下,并重命名为:authorized_keys 即可通过 ssh worker完成免密登录。

linux免密登录

linux
111

JVM | 九、垃圾回收器

待分类
1、基础 io、多线程、集合等基础框架,对JVM原理有一定的了解; 2、框架,源码 了解框架原理,Spring,ibatis,netty,tomcat,dubbo 3、中间件 分布式缓存、SOA、消息中间件,负载均衡、连接池等 4、数据库 熟悉MYSQL和NoSQL DB,分布式缓存者优先, 包括但不限于redis, mongodb, memcached; 熟悉事务、锁、并发、索引优化等; 5、运维能力 Linux、shell 2020-10-18:双亲委派,SPI服务发现 2020-10-19:手动解析字节码文件(一) 2020-10-20:手动解析字节码文件(二)、内存池与JVM内存模型(一) 2020-10-21:内存池与JVM内存模型(二) 2020-10-22:字符串和常量池 2020-10-24:执行引擎(一) 2020-10-25:执行引擎(二) 2020-10-26:OOP对象模型(一) 2020-10-27:OOP对象模型(二) 2020-10-28:内存池和相关算法(一) 2020-11-01:内存池和相关算法(二)、垃圾回收器(一) 2020-11-03:垃圾......

haha

待分类
1 2 3
RSS 开始使用
fyzzz - 记录精彩的程序人生

Open Source, Open Mind,
Open Sight, Open Future!
48 文章
0 浏览     3 当前访客
© 2023 fyzzz
浙ICP备19026143号