自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql8.0.27基于二进制文件的主从复制

首先准备两台服务器(或两个mysql)一个主一个从192.168.2.161192.168.2.162mysql> select version();+-------------------------+| version() |+-------------------------+| 8.0.27-0ubuntu0.20.04.1 |+-------------------------+1 row in set (0.00 sec)1.配置服务器

2022-01-25 21:35:41 1068 2

原创 ubuntu18 安装k8s

k8s查看token,discovery-token-ca-cert-hashdiscovery-token-ca-cert-hash:openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'token:kubeadm token list生成token:kubeadm

2021-10-25 18:58:34 478

原创 ubuntu root账户登陆

更改root账号密码sudo passwd root其配置在 sshd_config文件中,进行编辑:vi /etc/ssh/sshd_config找到PermitRootLogin 添加一行 PermitRootLogin yes,如下:Authentication:#LoginGraceTime 2m#PermitRootLogin prohibit-passwordPermitRootLogin yes#StrictModes yes#MaxAuthTries 6#MaxSessio

2021-07-15 10:29:48 184

原创 翻过的傻

1.2021.05.24 写了个mybatis的MapTypeHandler,插入数据没有问题,可以走TypeHandler的setParameter方法,但是获取数据总是获取不到数据,同时也不走getResult方法。debug DefaultResultSetHandler的applyAutomaticMappings方法发现typeHandler变成了原来写的另外一个包的MapTypeHandler。由此说明在setParameter时的TypeHandler是有包名等路径的,在getResult时T

2021-05-24 18:20:38 107

原创 springcloud gateway的坑

1.Forward Routing Filter 文档是这样写的The ForwardRoutingFilter looks for a URI in the exchange attribute ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR. If the URL has a forward scheme (such as forward:///localendpoint), it uses the Spring DispatcherHandler t

2021-05-21 10:32:11 895

原创 DispatcherServlet 源码解析

protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception { //log记录request日志 logRequest(request); // Keep a snapshot of the request attributes in case of an include, // to be able to restore the original a

2020-11-03 13:06:33 142

原创 选择排序算法

1.原理:从开始位置遍历,找出最小值和最小值的位置,然后和第一个数交换。然后再从第二个数向后遍历找出次小值和位置,和第二个数交换位置,以次比例直至完成。2.代码/** * 选择排序 */public class SelectSort { public static void main(String[] args) { int[] array = new int[]{6546,54654,4654654,4544,2132,224,2432,44,4525,465465,4

2020-09-15 18:08:08 73

原创 插入排序

1.原理:从原数组中依次取出数据,按照大小找到新数组的位置,然后插入进去2.代码实现/** * 插入排序 */public class InsertSort { public static void main(String[] args) { int[] array = new int[]{6546,54654,4654654,4544,2132,224,2432,44,4525,465465,46,6446,44646}; int[] temp = in

2020-09-15 17:56:13 69

原创 快速排序

1.原理:寻找一个基准值base(通常为左侧第一个数据),双向遍历,比如:i是从左向右遍历,j是从右向左遍历,如果i遍历到i的值大于base则停止,同样j遍历到j的值小于base则停止,然后交换i和j位置上的值。i和j继续遍历,直至i大于j。此时下标i左侧数据都小于等于base值,右侧数据都大于base值,左侧第一个数据是左侧最大值。交换i位置和基准值的位置。然后用同样的方法遍历左侧数据和右侧数据,直至没有数据可遍历即完成。2.代码/** * 快速排序 */public class QuickSo

2020-09-15 17:08:40 77

原创 冒泡排序算法

1.原理:从头部开始遍历,如果相邻的两个数左边大于右边,互换位置。第一遍之后最右边的数字是最大的。然后遍历第二次直到最后一位的前一位,这样倒数第二位就是第二大的了。依次遍历,最后排序成功。是最稳定的排序算法。时间复杂度为O(n2)2.代码/** * 冒泡排序算法 */public class BubbleSort { public static void main(String[] args) { int[] array = new int[]{30,20,65,11,2

2020-09-15 16:23:30 75

原创 java ArrayList

最大size为Integer.MAX_VALUE - 8,因为有些vm的头部信息保存在数组中。如果最大长度为Integer.MAX_VALUE的话可能会报错OutOfMemoryError/** * The maximum size of array to allocate. * Some VMs reserve some header words in an array. * Attempts to allocate larger arrays may result in

2020-09-15 14:23:47 83

原创 spring 小问题

1.springioc循环依赖如果主要使用构造函数注入,则可能会创建无法解决的循环依赖方案。例如:A类通过构造函数注入需要B类的实例,而B类通过构造函数注入需要A类的实例。如果您将A类和B类的bean配置为相互注入,则Spring IoC容器会在运行时检测到此循环引用,并抛出 BeanCurrentlyInCreationException。一种可能的解决方案是编辑某些类的源代码,这些类的源代码由设置者而不是构造函数来配置。或者,避免构造函数注入,而仅使用setter注入。换句话说,尽管不建议这样做,

2020-09-14 15:51:06 75

原创 java 线程池

1.线程池的优点1.减少了每个任务创建的开销,通常在处理大量异步任务时提高了性能2.提供了绑定和管理执行任务集合的方法,还维护了一些执行的统计信息,比如:完成的任务数2.核心线程数和最大线程数ThreadPoolExecutor将根据corePoolSize和maximumPoolSize)设置的界限自动调整池大小(getPoolSize)。在方法execute(Runnable)中提交新任务时,如果运行的线程少于corePoolSize线程,则会创建一个新线程来处理该请求,即使其他工作线程处于空闲

2020-09-14 12:55:56 87 1

原创 ubuntu 18 部署redis集群

修改redis配置文件 cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 15000然后重启每个redis。在其中一个执行redis-cli -a redis --cluster create 192.168.1.151:6379 192.168.1.152:6379 192.168.1.151:6379 192.168.1.153:6379 192.168.1.154:6379 192.168

2020-09-07 22:02:33 130

原创 ubuntu18 安装redis

1.下载 sudo wget http://download.redis.io/releases/redis-6.0.6.tar.gz2.解压 sudo tar xzf redis-6.0.6.tar.gzcd redis-6.0.63.编译 make make install4.复制redis.conf 到/etc/redis/6379.config中 sudo cp redis.conf /etc/redis/6379.conf5.进入utils目录复制redis_init_scri

2020-09-07 17:34:33 226

原创 redis集群一致性

Redis 并不能保证数据的强一致性. 这意味这在实际中集群在特定的条件下可能会丢失写操作.第一个原因是因为集群是用了异步复制. 写操作过程:客户端向主节点B写入一条命令.主节点B向客户端回复命令状态.主节点将写操作复制给他得从节点 B1, B2 和 B3.主节点对命令的复制工作发生在返回命令回复之后, 因为如果每次处理命令请求都需要等待复制操作完成的话, 那么主节点处理命令请求的速度将极大地降低 —— 我们必须在性能和一致性之间做出权衡。 注意:Redis 集群可能会在将来提供同步写的方法。 R

2020-09-06 22:11:06 512

原创 redis淘汰策略

1.配置项redis.conf文件中maxmemory 选项,在64为机器上如果设置的为0则没有内存限制,而32位系统使用3GB的隐式内存限制。当达到内存限制时,通过配置的策略进行淘汰。maxmemory-policy 为淘汰策略配置项maxmemory-samples 5 lru样本数2.淘汰策略 noeviction:在达到内存限制并且客户端尝试执行可能导致使用更多内存的命令时返回错误(大多数写入命令)。allkeys-lru:删除最近使用比较少的keyvolatile-lru:删除最近使

2020-09-02 11:13:56 143

原创 ubuntu 18 安装mysql 5.7

1.系统更新完毕后执行MySQL安装命令:sudo apt install mysql-server2.查看MySQL服务状态:sudo service mysql status3.设置密码:set password for ‘root’@‘localhost’ = password(‘1234’);4.远程登录:GRANT ALL PRIVILEGES ON . TO ‘root’@’%‘IDENTIFIED BY ‘密码’ WITH GRANT OPTION;刷新配置:flush privile

2020-06-29 22:55:24 141

原创 分库分表数据库的扩容

现在做互联网开发的不懂点分布式,不懂点分库分表都不好意思说自己是互联网搬砖人员。昨晚经常性失眠,根据前几天看的redis原理想到一个数据库的扩容方案。 一般分库分表都是基于一个字段或者多个字段组合的hash值进行取模运算进行分库分表的,说一个普通的,比如订单表进行分库分表,以订单id为key进行hash运算得到a=hash(id),数据库的数量为d,表的数量为t。b=a%d,则b是数据库的下标...

2020-01-06 16:16:23 332

原创 SqlSessionFactoryBean

实现了FactoryBean<SqlSessionFactory>, InitializingBean, ApplicationListener<ApplicationEvent>实现FactoryBean<SqlSessionFactory> 返回SqlSessionFactory @Override public SqlSessionFactory ...

2019-02-19 14:47:27 642

原创 MybatisAutoConfiguration

当jvm加载SqlSessionFactory.class, SqlSessionFactoryBean.class,spring加载DataSource.class bean ,spring加载MybatisProperties.class参数时public MybatisAutoConfiguration(MybatisProperties properties, ...

2019-02-19 14:47:14 569

原创 DefaultSqlSessionFactory

private final Configuration configuration; public DefaultSqlSessionFactory(Configuration configuration) { this.configuration = configuration; }上边的构造方法是在SqlSessionFactoryBuilder中用到了,用法为 pub...

2019-02-14 10:33:38 1775

原创 Mybatis SqlSessionManager

SqlSessionManager 实现了SqlSessionFactory和SqlSession, private final SqlSessionFactory sqlSessionFactory;//session工厂类 private final SqlSession sqlSessionProxy;//session 代理 private final ThreadLoca...

2019-02-13 15:43:01 723

原创 java HashMap学习

首先 HashMap 继承了AbstractMap ,实现了Cloneable Serializable 和Map 接口。  /** * The default initial capacity - MUST be a power of two. */ //设置map初始长度 static final int DEFAULT_INITIAL_...

2019-01-10 15:58:25 126 1

空空如也

空空如也

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

TA关注的人

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