- 博客(54)
- 收藏
- 关注
原创 解决springcloud gateway 无法路由的问题
昨天小伙伴问我springcloud gateway 无法路由转发的问题,现在记录一下现在企业微服务架构基本上都是用springcloud体系了,在国内基本上新项目都用springcloud alibaba,而且基本上都是所有服务聚合在一个父项目中。springcloud gateway可以实现路由负载均衡等等功能,但是应用过程中,会有一些坑。
2023-03-17 16:41:36 3970
原创 Hadoop-hdfs单机伪分布式安装(自己玩)
设置基础环境设置主机名[root@localhost ~]# vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=baseimagehosts映射[root@baseimage ~]# vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdoma
2022-05-30 22:37:12 123
原创 【一篇文章学会Docker】
Docker学习总结什么是dockerdocker与虚拟机镜像和容器镜像(Image)容器(Container)Docker架构Centos7安装Docker卸载老版本安装Docker需要虚拟机联网,安装yum工具更新本地镜像源输入命令关闭防火墙启动docker配置docker的镜像加速Docker基本操作镜像相关命令拉取镜像安装打包好的镜像打包镜像加载镜像容器相关命令docker rundocker logs数据卷挂载数据卷安装mysqlDockerfile自定义镜像什么是DockerfileDocker
2022-04-27 00:48:25 101
原创 kafka集群搭建
只是简单记录搭建的过程,有时间再详细说明。前置环境准备4台虚拟机(node(01~04))node02、node03、node04上已经安装了zookeeper集群zookeeper集群搭建node01、node02、node03准备安装kafka集群kafka集群安装下载kafka[root@node01 soft]# wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.0/kafka_2.12-2.1.0.
2021-08-03 19:15:00 73
原创 zookeeper集群搭建
简介本篇是从实战出发,搭建zookeeper集群。zookeeper可以当做一个内存数据库,主要是对项目配置做集中管理、服务的注册发现、分布式锁等等。前置条件准备奇数台虚拟机,最少3台,我这里准备了4台,目的是偶数台比较复杂,方便以后学习用。node01、node02、node03、node04这4台虚拟机配置好ip、hostname等等安装好jdk,我这里是jdk1.8,并配置好环境变量。shell命令jps可用即可。安装zookeeper官网下载二进制安装文件新版本的安装
2021-07-30 03:04:33 160
原创 异或运算及相关面试题
异或定理异或:相同为0,不同为1.也就是无进位相加。0 ^ N = NN ^ N = 0(a ^ b) ^ c = a ^ (b ^ c)相关面试题1.如何不用额外变量交换两个数2.一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这种数3.怎么把一个int类型的数,提取出来最右侧的1结果:a & (-a) ,也就是 a & (~a + 1),因为 -a = ~a + 1.4.一个数组中,有两种数出现了奇数次,其他数都出现了偶数次
2021-07-28 17:57:23 169
原创 排序算法(插入、冒泡、选择排序)
插入排序对整数数组 int[] arr 进行插入排序0~0位置有序0~1位置有序:盯住1位置往前看,前面数大,则交换,继续往前看…0~2位置有序:盯住2位置往前看,前面数大,则交换,继续往前看……0~n-1位置有序:盯住n-1位置往前看,前面数大,则交换,继续往前看… public static int[] insertSorted(int[] arr){ //元素少于2个就不用排序了 if(arr == null || arr.length <
2021-07-28 17:09:43 141
原创 复杂度、对数器、二分法
复杂度包括固定时间的操作和非固定时间的操作,也就是时间复杂度、额外空间复杂度、常数项时间。固定时间的操作常数操作数组寻址(连续的)非固定时间的操作LinkedList的寻址(不连续的)评估算法优略的核心指标时间复杂度(流程决定)‘额外空间复杂度(流程决定)常数项时间(实现细节决定)- 常见的算数运算(+、-、*、/、%等)- 常见的位运算(>>、>>>、<<、|、&、^等)- 赋值、比较、自增、自减操作等- 数
2021-07-28 16:41:16 74
原创 算法学习开始篇
记录一下算法学习的过程包括力扣或者网上找到的面试题等资源基本公共类CommonUtils.javapackage com.mmm.algorithm.algorithm.common;/** * @author mmm */public class CommonUtils { /** * 打印数组 * @param arr */ public static void printArray(int[] arr){ for (
2021-07-28 16:18:28 70
原创 centos 的阿里云yum源不能用了,改成了企鹅的
*不知道阿里云出什么问题了,阿里云的yum镜像源一直不能用,没办法,改成腾讯的yum源了*
2021-07-05 09:35:55 1410
原创 【事无巨细】史上最全的elkb教程之(三)Kibana的安装
简介Kibana是elastic search的可视化分析工具。它可以对es进行高级的数据分析,以图表、表格地图等形式查看数据。安装Kibana1.下载去elastic search的官网进行下载,下载好的文件如:kibana-7.12.0-linux-x86_64.tar.gz2.解压文件到/usr/local/elkb/目录下并将文件授权给user_es用户。因为kibana默认不能root启动[root@localhost softwares]# ll总用量 625040-rw-r-
2021-03-28 16:51:57 336 1
原创 【事无巨细】史上最全的elkb教程之(二)elasticsearch-head安装
前置环境已经安装了elastic search见我的上一篇【事无巨细】史上最全的elkb教程之(一)elastic search安装已经安装了git见已经安装了nodejs见Centos7下nodjs安装安装elasticsearch-hard下载elasticsearch-hard插件[root@localhost git-2.31.0]# cd /usr/local/elkb[root@localhost elkb]# git clone https://github.com/mob
2021-03-26 01:25:12 249 1
原创 Centos7下nodejs安装
去nodejs中文官网下载并解压配置环境变量[root@localhost elkb]# vim /etc/profileexport NODE_HOME=/usr/local/elkb/node-v14.16.0-linux-x64export PATH=$JAVA_HOME/bin:/data/install/git/bin:$NODE_HOME/bin:$PATH新增配置刷新配置[root@localhost elkb]# node -vv14.16.0[root@local
2021-03-26 01:09:38 160
原创 Centos7下git安装
为什么要安装gitLinux默认安装的git版本比较低,所以需要安装教新版的git安装wget,并下载git[root@localhost softwares]# yum install -y wget[root@localhost softwares]# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.31.0.tar.gz[root@localhost softwares]# ll总用量 329716-rw-r
2021-03-26 00:59:47 258
原创 【事无巨细】史上最全的elkb教程之(一)elastic search安装
前置准备纯净的Linux环境我这里安装的是Contos 7[root@localhost ~]# uname -aLinux localhost.localdomain 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux[root@localhost ~]# 安装jdk目前elastic search 最新版本是 ,支持jdk8 ~16,我这里安装的是jdk8[r
2021-03-26 00:43:12 1752
原创 分布式基础——2.创建virtual box 虚拟机
admin-vue:面向工作人员使用的后台管理系统shop-vue:面向公众访问的网站系统安装virtual box安装vagrant重启电脑 cmd 命令行中执行命令 vagrant 验证是否安装成功执行命令 vagrant init centos/7 ,在用户目录下会生成一个文件:vagrantfile然后,命令行执行 vagrant up 来启动虚拟环境,会时间很长,要去官方下载镜像并启动虚拟容器...
2020-12-19 17:59:38 81
原创 安装linux虚拟机
首先得安装好vmware workstation,打开软件进入如下界面。点击“创建新的虚拟机”,选择自定义(高级)选项,一路下一步,直到出现下面的界面,选择稍后安装操作系统。一路下一步,填写好虚拟机名称,不要有中文及空格。一路下一步,最后点击完成,中间不需要任何其他操作。然后点击编辑虚拟机设置设置好安装的系统文件路径点击确定。点击开启此虚拟机。选择第...
2020-12-19 17:51:17 296
原创 各种数据库的jdbc配置
以前Mysql、MariaDB进行jdbc操作的时候,驱动都是com.mysql.jdbc.Driver,前一段时间,进行mariadb操作的时候突然不行了,现在对各个数据库jdbc配置进行总结,以备不时之需。Oracle的配置 //Oracle配置 private static final String driver = "oracle.jdbc.driver.Oracl...
2019-11-25 14:42:21 473
原创 mysql-表分区-hash分区
hash分区的目的是将数据均匀的分布到对应分区中,如果表中有主键或唯一索引,分区列必须是主键或唯一索引的一部分。hash分区创建分区是“PARTITION BY HASH(expr)”实现的,expr是整数列或者可以将分区列转换成整数的表达式。1.已经存在的表创建分区CREATE TABLE `test_user_hash` ( `user_id` bigint(19) NOT ...
2019-11-05 11:17:24 3448
原创 mysql-表分区-list分区
list分区跟range分区类似,区别在于list分区的值是一个离散的整数值集合,每个分区的整数值集合不能有交集。list分区是以“PARTITION BY LIST(expr)”实现的,expr可以是一个返回值是整数的表达式,或者是表的某个整数列。然后通过values in(逗号分隔的整数列表)。1、对已有表进行list分区CREATE TABLE `test_user_list`...
2019-11-04 21:42:33 3094
原创 mysql-表分区-range分区
range分区列必须包含在主键中,而且列的每个分区都是一个值区间,每个值区间不能有交集,否则数据插入时,数据库无法确定应该插入到哪个表分区中。1、已经创建的表添加range分区分为4个区:p0、p1、p2、p3p0:ext_int<100;p1:100<=ext_int<200;p2:200<=ext_int<300;p3:ext_int>...
2019-11-04 17:39:16 729
原创 mysql表分区
mysql处理少量数据非常方便,但是当表中数据量过大,进行增删改查操作时就会很慢。mysql的数据处理瓶颈是百万级,但是随着业务的深入,业务量的增多,存储的数据肯定会上升到千万级以上,这个时候就要对表进行处理了。前期阶段可以先对表进行水平或垂直拆分处理,后期可能就需要进行分库等操作了,本文只是对表的分区进行总结。mysql的表分区包括range、list、hash、hash线性、key分区等等...
2019-11-04 17:39:08 159
原创 Arrays$ArrayList转java.util.ArrayList
前两天遇到一个问题,要对一个集合的某个值进行删除操作。我以前有过总结,删除List的某个原色,最好用for i 这种遍历形式,因为它是单线程的。(见①)正常的new 出来的List删除是没问题的。但是用Arrays转化成的ArrayList,就出现问题了。public static void test1(){ List<String> typeList = A...
2019-08-22 19:39:05 1355
原创 LockSupport的使用
LockSupport可以唤醒1个线程的等待,不需要使用Synchronized wait notify 等操作,所以,在对一个线程进行等待唤醒才做时非常方便。但是如果是多线程之间的阻塞唤醒,做好还是用ReentrantLock等方式。import java.util.concurrent.locks.LockSupport;public class UseLockSupport { ...
2018-12-18 16:30:14 208
原创 ReentrantReadWriteLock的使用
ReentrantReadWriteLock的使用很简单,它其实是ReentrantLock的升级版,在并发读写的时候应用广泛。它提供了获取读锁和写锁的方法,在调用读写锁的时候,读锁可以并发同时调用,但是写锁只能一个线程调用其他线程等待。import java.util.concurrent.locks.ReentrantReadWriteLock;import java.util.c...
2018-12-18 15:56:39 1947 2
原创 Condition的使用
ReentrantLock与Condition一起使用可以更灵活、更方便的控制线程之间的等待唤醒操作。import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public cla...
2018-12-18 15:23:37 370
原创 AQS-ReentrantLock
AQS是jdk中的一个类:AbstractQueuedSynchronizer,很多并发容器底层是由这个类来实现的。它定义了多个线程访问资源的一个同步类容器。比如:ReentrantLock/Semaphore/CountDownLatch。AQS里面维护了一个共享的参数private volatile int state,以及一个先进先出的线程等待队列,访问state有3种方式:getS...
2018-12-18 11:31:07 94
原创 线程池
线程池的作用:管理控制:线程池可以更好的控制线程,使我们可以对线程的生命周期、初始化、运行状态、销毁等各个环节有一个把控。系统资源:线程池可以控制线程的数量,根据任务的多少去对线程池中的线程个数进行添加或减少,可以回收空闲状态的线程,减少线程的频繁初始化和销毁,避免不必要的系统开销,节省系统资源。保障稳定性。应用性能:线程池可以配合高并发容器的设置,异步多线程的去处理任务,提高应用服务...
2018-12-14 14:53:15 93
原创 Semaphore信号量相关
系统上线之前需要做一系列的评估来确保系统稳定,Semphore非常适合高并发访问限制。相关概念PV(Page View):网站的总访问量,页面浏览量货点击量,用户每刷新一次就会被记录一次。UV(Unique Visitor):访问网站的一台电脑客户端为一个访客。QPS(Query Per Second):每秒查询数。RT(Response Time):请求的响应时间。容量评...
2018-12-05 17:40:41 114
原创 ForkJoin框架
ForkJoin是jdk7以后加入的,它的作用是对一个大任务进行拆分,可以无限拆分,若需要返回结果,则进行合并。需要继承ForkJoinTask的子类:RecursiveTask:需要返回结果的RecursiveAction:不需要返回结果的需要定义域值,也就是判断什么时候开始拆分,定义拆分的规则,比如二分法等等下面是一个例子:等差数列求和:1+3+5+9+……+199=?...
2018-12-04 10:22:42 101
原创 Exchanger的用法
Exchanger一般用的比较少,它的作用是在两个线程中进行数据交换。下面做一个例子进行说明。例子:起两个线程,线程A 线程B ,它们分别各自处理自己的数据,然后进行数据交换。import java.util.concurrent.Exchanger;import java.util.concurrent.ExecutorService;import java.util.concur...
2018-12-02 21:29:54 485
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人