自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java集合

TreeMap 实现 SortedMap 接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用 Iterator 遍历 TreeMap 时,得到的记录是排过序的。Hashtable 是遗留类,很多映射的常用功能与 HashMap 类似,不同的是它承自 Dictionary 类,并且是线程安全的,任一时间只有一个线程能写 Hashtable,并发性不如 ConcurrentHashMap,因为 ConcurrentHashMap 引入了分段锁。多个元素构成了单向链表。

2022-09-13 11:17:59 367 1

原创 java基础

动态语言是指程序在运行是可以改变其结构,新的函数可以被添加,旧的函数可以被删除等结构上的变化,javaScript就是动态语言,Ruby和Python也是动态语言,而C、C++则不是动态语言,java从反射的角度说是半动态语言因为它具备一些动态语言的特性。此时这个方法会立即退出且不返回任何信息,另外调用这个方法的方法也不会继续执行,异常处理机制接手程序的运行,抛出的异常对象将被异常处理器处理。程序在运行时可以获取指定元素的注解对象,然后通过该注解Annotation对象类获取注解中的元数据信息。

2022-09-12 21:37:09 229

原创 volatile学习笔记

因为cpu的运行速度远高于内存,所以如果cpu运算以内存为媒介的话会极大的浪费cpu的运算能力。为了解决这个问题,给cpu增加了多级高速缓存,cpu在进行计算是将变量从主内存读取到自己的高速缓存中,完成运算后再通过高速缓存将运算结果写会主内存。这样做虽然解决了cpu资源浪费的问题,但是也带来了在不同的cpu中同一变量互相不可见(修改了不能被其他cpu感知到)的问题。每个线程在操作变量时先将变量读取到线程的工作内存中,对变量操作结束后再将工作内存中的变量值写回主内存。如下图,这样就会存在和计算机内存模型一样

2022-06-07 22:44:53 261

原创 sqlx简单应用

package dbclientimport ( "database/sql/driver" "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" "reflect")var db *sqlx.DBfunc InitDB() (err error) { dsn := "root:123456@tcp(127.0.0.1:3306)/nacos?charset=utf8mb4&parseTime=

2022-01-10 23:23:13 747

原创 go语言基础

1、hello worldfmt.Println("hello world")2.变量声明package variableimport "fmt"//声明一个变量 不设置初始值var a int//设置初始值 由系统推断变量类型var b = 1//设置变量并指定类型,在设置系统内置类型的时不需要指定类型。var c int = 2//定义一组同类型的变量var ( m, n, p = 3, 2, 1)//定义常量const ( SHANGHAI = 1 N

2022-01-10 21:23:39 217

原创 SpringCloudGateway入门

1.什么是SpringCloudGateway?Spring Cloud Gateway 网关是SpringCloud官方提供的;原来有一个Zuul网关,是Netflix公司提供的,现在已经不维护了,后面Netflix公司又出来了一个Zuul2.0网关,但由于一直没有发布稳定版本,所以springcloud等不及了就自己推出一个网关,已经不打算整合zuul2.0了;Spring Cloud Gateway 项目提供了一个用于在Spring MVC之上构建API网关的库,Spring Cloud Gat

2021-12-10 16:12:51 739

原创 Sentinel入门

1.什么是Sentinel?Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。2012 年,Sentinel 诞生,主要功能是提供请求流量控制;2013-2017 年,Sentinel在阿里巴巴集团内部大量用于生产实践,成为基础技术模块,覆盖了所有的核心场景;2018 年,Sentinel 对外开源,并持续演进和版本迭代。Sentinel在经过阿里巴巴内部一系列秒杀大促,特别是双11这样电商大促中的锤炼,目前已有不少企业在使用开源版本和云版本

2021-12-09 18:35:21 581

原创 Feign基本使用

将对外暴露服务单独写在一个模块中 <groupId>com.alan</groupId> <artifactId>commons</artifactId> <version>1.0.0</version> <dependencies> <dependency> <groupId>org.springframework.cloud&

2021-12-08 19:19:10 260

原创 Ribbon基础

负载均衡负载均衡分为服务端负载均衡和客户端负载均衡。服务端负载均衡是指的负载均衡的动作在服务端发生,客户端发送请求后不关心请求到那一台服务器。客户端负载均衡是指的在客户端发出请求之前就已经决定了请求那一台服务器。服务端是无感的。Ribbon就属于其中的客户端负载均衡。Nginx负载均衡数据服务端负载均衡。使用Ribbon实现负载均衡引入依赖<dependency> <groupId>org.springframework.cloud</groupI

2021-12-08 16:28:10 177

原创 RestTemplete解读

RestTemplete是发起http请求的模板类。通过他可以简单的发起http请求屏蔽了内部复杂的请求参数及返回结果的转化。同时结合@LoadBalanced注解可以实现请求的负载均衡。配置RestTemplete类 @Bean @LoadBalanced public RestTemplate restTemplate(RestTemplateBuilder builder) { return builder.build(); }调用请求: .

2021-12-08 16:07:05 820

原创 单机搭建nacos集群2.+版本启动报端口被占用问题。

异常信息:io.grpc.netty.shaded.io.netty.channel.unix.Errors$NativeIoException: bind(…) failed: 地址已在使用原因:2.0版本的nacos需要四个端口,本机服务端口是连号如:8848/8849/8850第四个端口就会发生占用。server.port(默认8848)raft port: ${server.port} - 1000grpc port: ${server.port} + 1000grpc port for

2021-12-08 08:59:38 8156 6

原创 nacos配置中心

使用nacos作为配置中心在项目的bootstrap.yml文件中配置配置中心的地址、group、data-id、文件后缀。自动刷新使用@Value(“${name}”)的值需要配合@RefreshScope注解使用。自动引用配置文件为{spring/application.name}.{file-extension:properties}和spring.application.name−{spring.application.name}-spring.application.name−{profi

2021-12-07 16:15:06 795

原创 项目启动报错:Application failed to connect to Nacos server: ““

报错内容:2021-12-07 14:05:59.406 ERROR 20760 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : ***************************APPLICATION FAILED TO START***************************Description:Application failed to connect to Nacos server: "

2021-12-07 14:09:02 9812 1

原创 Nacos作为注册中心

什么是Nacos?Nacos是属于Spring cloud alibaba的一个组件,具有注册中心和配置中心的功能。安装Nacos单机版下载服务:https://github.com/alibaba/nacos/releases nacos是java开发的项目不需要编译,可以直接启动。单机启动命令:./statrtup.sh -m standalone 。解压服务文件并启动服务。Nacos如何提供注册中心服务?nacos可以支持微服务之间的互相调用,此时没有绝对的服务端和客户端。以及前

2021-12-07 13:19:25 422

原创 java基础

1.面向对向和面向过程的区别?面向过程:优点:高效,不用实例化对象。适合单片机、linux、嵌入式编程。缺点:不易于复用、维护、扩展。写一个是一个,不够灵活。面向对象:优点:易于理解。具有封装、继承、多态的特点。易于复用、维护、扩展。缺点:因为需要实例化对象,效率较面向过程低一些。2.Java语言有哪些特点?简单易学面向对象(封装、继承、多态)平台无关性(依靠JVM实现)安全性(自动垃圾回收,不直接操作内存)可靠性支持多线程(并发编程)很好的支持网络编程编译与解释并存。

2021-12-04 15:35:18 146

原创 shell发送请求解析结果

需求shell发送请求到服务获取返回结果,解析结果后提取需要的数据。再次请求服务1.发送get请求到服务器,格式化返回结果输出到result.json文件。2.解析json文件并循环处理解析结果curl命令-X 请求方式-H请求头GET请求可以不写,参数跟在url中即可。POST请求使用 -d “{“key”:value}” 传递json格式参数返回结构为字符串可以用jq在shell环境格式化后处理。jq 命令jq . 格式化jsoncat result.json | j

2021-10-08 17:21:31 2491

原创 什么是RPC

1什么是RPCRPC(Remote Procedure Call)远程过程调用,是一种通过网络从远程计算机请求服务,二部需要了解底层网络技术的方式。为什么要用RPC?随着业务的发展,一台服务器不能支撑全部的业务程序运行。需要在不同的机器上部署不同的服务A和服务B。服务A和服务B的通信就不能像在一台机器或一个应用内直接调用对应的方法来获取结果了。整个通信的过程需要通过网络实现。这个通信的过程就是RPC。RPC演进过程版本1调用固定的方法,固定参数。参数和结果都没有封装为对象。Server:服务A

2021-09-29 18:52:51 194

原创 windows安装zookeeper单机

下载安装包地址:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz解压并修改文件存储路径。在bin目录同级创建zkData文件夹用来存放目录修改conf/zoo_sample.cfg为zoo.cfg。设置存储路径启动zk...

2021-09-16 08:49:52 70

原创 Kibana安装windows

下载kibana地址:https://www.elastic.co/cn/downloads/kibana下载对应的版本:查看es版本:下载kibana解压下载的压缩包修改配置文件config/kibana.yml启动并访问:localhost:5601

2021-09-15 17:37:08 155

原创 虚拟机环境处理

修改hostnamevi /etc/hostname修改hostsvi /etc/hosts免密登录# 永久关闭防火墙systemctl disable firewalld# 生成公钥私钥ssh-keygen# 发送公钥到待免密服务器cd /root/.sshssh-copy-id node01

2021-09-10 15:40:53 69

原创 kylin计算百分比

1.多cube关联查询数据with tmp1 as ( select * from user where type =1) ,tmp 2 as ( select * from info where area_code ='1.1.1'),tmp3 as ( select * from people )select * from tmp t1 left join tmp2 t2 on t1.A=t2.B and t1.C=t2.D left join tmp3 t3 on t1.A=t3

2021-09-06 18:24:12 458 2

原创 Davinci-Kylin使用记录

kylin构建cube报错,需要覆盖配置参数允许维表的快照大小的上限默认为300M,Hive中单表数据量过多时很容易突破这个限制。需要重写该配置参数。Kylin配置参数信息:https://kylin.apache.org/cn/docs/install/configuration.html#cube-config-overrideDavinci连接Kylin计算百分比Kylin中直接计算除法会对结果进行取整。结果小于1的都为0.需要使用cast函数将数据类型转化为double再进行计算拼接

2021-08-04 15:43:58 290

原创 异常:Got minus one from a read call

异常信息:java.sql.SQLRecoverableException: IO Error: Got minus one from a read call原因及解决方案:程序连接数据库通过连接池连接,连接池有设置初始化连接数N。数据库有自身连接池,数据库连接池的剩余连接数max-session减去已经占用的连接数,小于N时。项目启动就会报Got minus one from a read call异常。解决方案:扩大数据库连接池。减小应用D的初始化连接数。数据库连接配置信息.

2021-07-20 10:36:17 5840

原创 初识MYSQL

文章目录安装MySQL连接数据库DDL 数据库定义语言DML 数据库操作语言DQL 数据库查询语言DCL 数据库控制语言2.操作数据库2.1数据库的列类型2.2 数据库的字段属性2.3数据库创建表2.4数据表的类型2.5修改删除表3.MySQL的数据管理3.1外键3.2DML语言3.3DQL查询语句安装MySQL1.下载安装包,解压。2.创建并配置配置文件3.使用管理员权限将MySQL服务安装到系统,切换到bin目录下。 mysqld -install4.初始化数据目录data启动MyS

2021-07-07 20:26:35 70 1

原创 java基础:多线程

线程简介任务进程线程多线程程序是静态的代码=》跑起来是进程。进程包含对个线程线程实现public class TestThread{ public static void main(String[] args) { ThreadTest threadTest=new ThreadTest(); threadTest.start(); Thread thread=new Thread(new ThreadTes

2021-07-02 11:29:20 73

原创 Davinci实操

文章目录1.创建表格报表1.1创建项目1.2创建数据源1.3创建View1.4创建Widget1.5创建Dashboard2配置查询权限2.1要请其他成员加入自己的组织1.创建表格报表1.1创建项目1.2创建数据源1.3创建View1.4创建Widget选择刚创建的View1.5创建Dashboard将view放入Dashboard下载文件(按照sql查询结果下载)2配置查询权限2.1要请其他成员加入自己的组织给项目配置权限关联角色,配置权限..

2021-06-30 11:00:47 453

原创 java基础:网络编程

网络编程1.1 概述地球村:包的概念:对方的地址,对方的信息。自己的地址,自己的信息。打电话:TCP发短信:UDP1.1.1什么是计算机网络计算机网络是指将独立位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。1.1.2网络编程的目的是什么?传播交流信息,数据交换,通信。1.13想要达到这个目的需要什么?如何准确的定位网路上的一台主机,ip+端口,定位到计算的某个资源找

2021-06-28 15:29:09 94

原创 java基础:面向对象

面向对象面向对象的本质:以类的方式组织代码,以对象的组织(封装)数据。初识面向对象对象的创建分析面向对象的三大特性封装高内聚,低耦合。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉。低耦合:仅暴露少量的方法给外部使用。通常,应该禁止直接访问一个对象中数据的实际表示,而应该通过操作接口来访问,这成为信息隐藏。属性私有,get/set公开继承继承本质是对一批类的抽象,从而实现对现实世界更好的建模。extends的意思是扩展,子类是父类的扩展。Java中仅有单继

2021-06-25 16:18:40 53

原创 有效的数独

题目解题 public static void main(String[] args) { char[][]board = { {'5','3','.','.','7','.','.','.','.'}, {'6','.','.','1','9','5','.','.','.'}, {'.','9','8','.','.','.','.','6','.'},

2021-06-25 11:41:32 54

原创 java基础:数组

狂神说java数组数组概述数组是相同类型数据的有序集合。数组描述的是相同类型的若干个元素,按照先后顺序排列组合而成。数组中的每一个元素可以通过下标访问。数组声明创建数组声明的时候要指定数组的大小,或者直接指定数组的组成元素。 //静态初始化 int[] nums={1,2}; //动态初始化 int[] nums1 = new int[2]; nums1[0]=1; nums1[1]=2;

2021-06-24 16:42:00 60

原创 java方法详解

方法什么叫方法方法是语句的集合,他们在一起执行一个功能。方法是解决一类问题的步骤的有序集合。方法包含于类或对象中。方法在程序中被创建,在其他地方被引用设计方法的原则:一个方法只完成一个功能,有利于后期的扩展。方法的定义及调用方法的重载命令行传参可变参数在方法的声明中,在指定参数类型后加一个省略号(…)。一个方法中只能指定一个可变参数,他必须是方法的最后一个参数。递归方法自己调用自己就是递归。递归包含两部分:递归头:什么时候结束递归。递归体:递归执行的业务逻

2021-06-24 14:14:25 49

原创 Java基础:流程控制

狂神说java流程控制ScannerJava5开始,使用方法 Scanner s =new Scanner(System.in)通过Scanner类的next()方法和nextLine()方法获取用户输入的数据,通过hasNext()和hasNextLine()判断是否还有后续输入内容。 Scanner scanner=new Scanner(System.in); while (scanner.hasNext()){ System.out.print

2021-06-23 21:31:20 72

原创 Java基础语法

狂神说想学习笔记注释单行注释多行注释文档注释注释并不会被执行,是写给人看的。标识符关键字所有的标识符都应该以字母美元符号$或者下划线开头。自定义标识符(方法名、变量名、类名)不可以与java关键字重复。标识符是大小写敏感的。数据类型Java是强类型语言,要求变量的使用要严格符合规定,所有的变量都必须先定义才能使用。Java的数据类型分为两大类,基本类型和引用类型。数值类型整数类型 byte/short/int/long浮点类型 float/double

2021-06-19 17:25:39 54

原创 java的诞生

C&C++1972年C语言诞生贴近硬件、运行极快、效率极高。操作系统、编译器、数据库、网络系统等。指针和内存管理。1982年C++诞生面向对象兼容C图形领域、游戏等。建立一个新的语言,语法有点像C,没有指针、没有内存管理、真正的可移植性,一次编写到处运行、面向对象、类型安全、具有高质量的类库。Java初生1992年的网页粗糙二简单,缺乏互动性。图形界面程序(Applet)Bill Gates说:这是迄今为止设计的最好的语言。Java标准版(J2SE

2021-06-19 11:44:23 85

原创 MariaDB密码重置

文章目录重置MariaDB密码重置MariaDB密码修改配置文件,设置免密登录。my.ini[mysqld]character_set_server = utf8datadir=D:\dev\mariadb-10.3.27-winx64\datatmp_table_size = 256Mmax_heap_table_size = 256Mbind-address= 0.0.0.0skip-grant-tables创建用户alan设置密码123456。提示不可操作,刷新权限。*

2021-06-15 14:23:25 468

原创 Spark安装本地启动

下载并安装1.下载官网地址:https://archive.apache.org/dist/spark/spark-2.1.1/将下载好的压缩包spark-2.1.1-bin-hadoop2.7.tgz,上传到服务器。2.安装启动1.将压缩包解压到当前目录。2.进入bin目录执行命令 spark-shell。本地模式启动spark遇到的问题1.启动spark失败,提示 JAVA_HOME is not set解决办法:修改 sbin/spark-config.sh文件。

2021-05-21 17:52:11 342

原创 volatile关键字保证可见性实践

volatile关键字保证可见性实践什么叫可见性?每个线程都会将用到的变量从主内存读取到自己独占的工作内存中使用。当两个线程使用了同一个变量,其中一个线程A对该变量进行了修改,并同步到主内存后。不能保证另一个线程B马上读取到该变量的最新值。也就是说线程A对变量的修改对线程B来说是不可见的。线程B继续使用旧值进行运算则会得到错误的结果。这就是可见性问题。代码实践如何避免可见性问题的发生?使用volatile关键字修饰变量可以避免可见性问题的发生。因为使用volatile修饰的变量值发生

2021-05-06 20:33:35 221

原创 computeIfAbsent的使用

map.computeIfAbsent(x,y)map中不存在key为x的值时,将y作为value,x作为key放入map中。代码示例先判断再保存jdk1.8之前 private static void test() { Map<String,String> map=new HashMap<>(); map.put("name","张三"); String age=map.get("age");

2021-03-30 18:02:07 3363

原创 docker容器和服务器之间文件拷贝

查看容器名称docker ps 从容器到服务器docker cp mysql(容器名称):/dump.sql /optdocker cp 容器名称:/容器内路径 /服务器路径。注意容器名称和容器内路径间不需要空格。从服务器到容器docker cp /opt/dump.sql mysql:/opt* ...

2020-05-06 09:52:25 1434

原创 SpringBoot整合redis

以守护线程启动redis。修改redis配置文件redis.conf将daemonize由no修改为yes.ps:/是查找命令比如:/daem 回车就可以找到daemonize了启动redis后可以在本机非服务器上测试一下是否可以远程连接。在项目中引入redis所需jar包。 <dependency> <groupId&gt...

2020-04-19 18:10:29 110

空空如也

空空如也

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

TA关注的人

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