
高性能编程
文章平均质量分 71
涟漪海洋
不想做一个碌碌无为的人,努力努力再努力@努力努力再努力
展开
-
大数据flume1.9部署实战
大数据flume1.9部署实战原创 2022-06-14 16:18:40 · 989 阅读 · 0 评论 -
Spark SQL编程之RDD-RDD转换
背景本文使用idea编程spark版本<scala.version>2.11.8</scala.version><spark.version>2.2.0</spark.version><scala.compat.version>2.11</scala.compat.version>备注<ps>Spark中,只有遇到action,才会执行RDD的计算(即延迟计算)</ps>...原创 2022-04-29 16:35:16 · 2387 阅读 · 0 评论 -
Spark SQL编程之DataSet
DataSet是什么 是Dataframe API的一个扩展,是Spark最新的数据抽象。 具有类型安全检查也具有Dataframe的查询优化特性,API风格更友好 DataSet支持编解码器,当需要访问非堆上的数据时可以避免反序列化整个对象,提升效率 样例类被用来在Dataset中定义数据的结构信息,样例类中每个属性的名称直接映射到DataSet中的字段名称 Dataframe是Dataset的特列,DataFrame=Dataset[Row],所以可以通..原创 2022-04-24 17:32:11 · 1461 阅读 · 0 评论 -
Scala核心编程(12)- 模式匹配
match介绍Scala中的模式匹配类似于Java中的switch语法,但是更加强大。模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明,当需要匹配时,会从第一个case分支开始,如果匹配成功,那么执行对应的逻辑代码,如果匹配不成功,继续执行下一个分支进行判断。如果所有case都不匹配,那么会执行case _ 分支,类似于Java中default语句。应用案例 val category: String = "vip" category ma..原创 2022-04-14 17:45:40 · 278 阅读 · 0 评论 -
Scala核心编程(10)-集合(上)
集合简介Scala同时支持不可变集合和可变集合 两个主要的包:不可变集合:scala.collection.immutable(类似java中数组) 可变集合: scala.collection.mutable (类似java中ArrayList)Scala默认采用不可变集合,对于几乎所有的集合类,Scala都同时提供了可变(mutable)和不可变(immutable)的版本 Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展...原创 2022-04-07 20:13:10 · 513 阅读 · 0 评论 -
Scala核心编程(9)-隐式转换和隐式参数及隐式类
隐式转换和隐式参数及隐式类原创 2022-04-07 17:52:41 · 561 阅读 · 0 评论 -
IOTDB集群部署
背景IOTDB单节点的数据插入性能不是很好,所以,想看看集群的效果,那么就需要搭建集群的环境文件获取下载地址(选择集群版本)文件目录完成IoTDB Cluster安装后,默认会在IoTDB Cluster的根目录下生成下列目录文件:目录 说明 conf 配置文件目录 data 默认数据文件目录,可通过修改配置文件修改位置 ext 默认udf目录,可通过修改配置文件修改位置 lib 库文件目录 logs 运行日志..原创 2021-09-06 12:56:18 · 7552 阅读 · 0 评论 -
IOTDB 0.12.1单机环境搭建
背景物联网行业,需要存储不同设备的时序数据,数据量比较大,之前使用的是Hbase但是,鉴于Hbase对聚合操作支持的不是很友好,所以,打算替换成国产的IOTDB数据库简介IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,完美对接 Hadoop 与 Spark 生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。环境搭建环境要求安装前需要保证设备上配有 JDK>=1.8 的运行环境...原创 2021-09-06 10:43:52 · 2831 阅读 · 0 评论 -
Jenkins环境搭建
背景开发代码之后,需要持续自动化集成,因此选用了jenkinsJenkins介绍Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成[1]下载地址https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.255/因为下载的是war所以需要servlet容器,这里选择tomcat将jenkins.war放入tomc...原创 2021-08-27 16:26:28 · 2349 阅读 · 0 评论 -
阿里云docker环境搭建和问题解决
背景在新买的阿里云在线搭建docker环境当前系统环境lsb_release -a# 查看系统详细信息命令[root@iZbp18sxd8cxak3k30znshZ docker]# lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarchDistributor ID: AlibabaCloud(AliyunLinux)Description: Alibaba Cloud Linux (Aliyun Linux) .原创 2021-07-28 14:04:25 · 7013 阅读 · 0 评论 -
idea2021.1 Action:Consider defining a bean named ‘Forecast1‘ in your configuration.
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2021-07-15 19:27:05.477 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - ***************************APPL.原创 2021-07-15 19:41:03 · 7291 阅读 · 0 评论 -
The request was rejected because the URL was not normalized.解决方案
背景在单点登录配置url的时候,访问一个url的时候会报如下的错误2021-05-24 18:28:03.163 ERROR 17350 --- [nio-8082-exec-1] o.a.c.c.C.[.[.[.[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [/auth] threw exceptionorg.springframework.原创 2021-05-24 18:35:12 · 21536 阅读 · 0 评论 -
Java 8 lambda Collectors优雅的使用方式-超详细-groupingBy分组自定义比较器
背景在使用Java8进行分组的时候,有的时候需要分组返回的数据是固定的,这个就需要指定分组使用的map类型,以下是一些案例数据准备实体类(Student)public class Student { /** * 班级 */ private String grade; /** * 年龄 */ private int age; ...原创 2021-05-07 17:49:18 · 20949 阅读 · 1 评论 -
Consider defining a bean of type ‘org.springframework.http.codec.ServerCodecConfigurer‘ in your conf
背景在使用springcloudgateway启动过程中报错如下: . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =======..原创 2021-04-26 10:29:30 · 22224 阅读 · 0 评论 -
Feign调用的时候出现 Request method ‘POST‘ not supported的解决方案
背景在使用SpringbootFeign调用的时候,会出现以下报错org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMapping..原创 2021-03-23 17:46:50 · 38408 阅读 · 0 评论 -
Unable to find a single main class from the following candidates 问题解决
背景maven父子工程间引用打包,产生的异常[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.1.12.RELEASE:repackage (repackage) on project shop-common: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.1.12.原创 2020-11-19 15:36:50 · 85752 阅读 · 0 评论 -
最详细的mybatis plus代码生成配置--自定义生成代码路径并生成扩展类--高级配置
Mybatis plus号称是只做增强不做改变,可快速进行单表 CRUD 操作,从而节省大量时间,具备代码生成、物理分页、性能分析等功能,官网地址教程地址https://baomidou.com/guide/PS:其实mybatis本身就可以自动生成一些常用代码和单表查询的语句,只是没有mp功能这么多而已,不过,快速开发的时候mp还是很给力的。背景:项目中,采用了springboot框架,集成mybatisplus的时候,有很多不如意的地方,于是就游走与官网和社区中,仓促写了个代......原创 2020-11-14 17:13:29 · 93646 阅读 · 12 评论 -
Shell 脚本的详细解读 (三)
Shell命令cut功能描述:在文件中负责剪切数据,从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出基本用法cut [选项参数] filename说明:默认分隔符是制表符选项参数说明 选项参数 功能 -f 列号,提取第几列 -d 分隔符,按照指定分隔符分割列 -c 指定具体的字符 ...原创 2020-10-21 15:11:48 · 93946 阅读 · 0 评论 -
Shell 脚本的详细解读 (二)
Shell中的运算符# 采用括号的方式(更容易理解)(1) “$((运算式))”或“$[运算式]”# 关键字操作(2) expr + , - , \*, /, % 加,减,乘,除,取余PS:expr运算符间要有空格案例实操# 1. 计算 1+3A=`expr 1 + 3`echo 'A的值为:$A:1+3='"$A"# 2.计算 98-60B=`expr 98 - 60`echo 'B的值为:$B:98-60='"$B"# 3.计算(...原创 2020-10-20 17:58:07 · 94107 阅读 · 0 评论 -
Shell 脚本的详细解读 (一)
Shell概述Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核Shell还是一个功能强大的编程语言,易编写,易调试,灵活性强Shell解析器Linux提供的Shell解析器# Linux中shell解析器[root@hadoop-slave01 mnt]# cat /etc/shells/bin/sh/bin/bash/usr/bin/sh/usr/bin/bash/bin/tcsh/bin/cshbash和sh的关系...原创 2020-10-14 18:05:57 · 99121 阅读 · 0 评论 -
细数单例模式
为什么要有单例模式单例模式是一个类对外仅提供一个实例对象,防止出现对象的不一致状态,与多例对象是对立的单例模式有以下特点 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。单例的写法饿汉模式不管对象会不会被使用,都提前实例化好对象,等待被使用1、是线程安全的 2、因为在类文件加载之初就会实例化对象,如果最终该对象没有被使用到会造成一定程度的内存浪费(针对目前的服务器能力无伤大雅)......原创 2020-09-18 11:29:59 · 102088 阅读 · 0 评论 -
Spring security 自定义过滤器实现Json参数传递-并兼容表单参数
依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <group.原创 2020-09-11 19:33:17 · 103849 阅读 · 2 评论 -
Spring高级特性-监听事件[观察者模式]
1、定义一个事件 订单支付之后的扩展业务,可直接动态扩展不用改动之前任何的代码package com.milla.navicat.spring.study.event;import org.springframework.context.ApplicationEvent;/** * @Package: com.milla.navicat.spring.study.eve...原创 2019-11-04 17:07:48 · 158589 阅读 · 0 评论 -
Java中 对象和二进制数组(byte array)之间的互转
直接上代码package com.study.auth.config.core.handler;import lombok.Data;import lombok.extern.slf4j.Slf4j;import java.io.*;import java.util.Arrays;import java.util.Objects;/** * @Package: com.study.auth.config.core.handler * @Description: <对象和.原创 2020-09-09 13:59:02 · 106616 阅读 · 2 评论 -
Controller 层返回值的公共包装类-避免每次都包装一次返回-InitializingBean增强
场景:在微服务中,一般返回数据都会有个返回码、返回信息和返回消息体,但是每次返回时候调用或者是封装,太过麻烦,有没有什么办法不用每次都封装呢?答案是有的。返回值对象package com.study.auth.comm;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.annotation.JSONField;import com.alibaba.fastjson.serializer.Serialize..原创 2020-09-07 18:58:01 · 106564 阅读 · 0 评论 -
Java 8 lambda Collectors优雅的使用方式-超详细
Jdk1.8版本引入了lambda表达式,对于集合操作引入了java.util.stream.Collectors官方文档中描述为:实现各种有用的减少操作,如将元素累积到集合中,汇总根据各种标准的元素,等等。# 那么我们来详细的看看其中的方法初始化测试数据 private static void initBooks() { books.add(new Book("书名1", "Java", "张三", 53.2, 135, 52301L)); ...原创 2020-09-02 20:15:48 · 111712 阅读 · 0 评论 -
NIO实现聊天室
NIO概述NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。三大核心部分Channel(通道) Buffer(缓冲区) Selector(多路复用器)NIO聊天室# 服务端package com.milla.study.netbase.expert.io.nio;import co...原创 2020-08-12 21:19:12 · 114750 阅读 · 2 评论 -
Java 8 时间操作工具类有需要的拿走
时间转换工具类项目中是经常需要使用,废话不多说,直接上代码package com.study;import lombok.extern.slf4j.Slf4j;import java.time.*;import java.time.format.DateTimeFormatter;import java.time.temporal.TemporalAdjusters;import java.time.temporal.TemporalUnit;import java.util..原创 2020-08-07 20:10:18 · 114171 阅读 · 0 评论 -
一步一步实现bio聊天室
BIO概念Java BIO(blocking I/O): 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销使用场景BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。聊天室需要一个服务端 一个或多个客户端服务端当前服务端可以接收客户端数据 同时能够向客户端...原创 2020-08-06 20:04:50 · 114365 阅读 · 0 评论 -
Linux 中history命令详解
作用用于显示历史记录和执行过的指令命令 当登录shell或者是退出的时候会自动进行读取和存储语法# history (选项)(参数)参数 含义 备注 n 显示最近的n条记录 -a 将历史命令缓冲区中命令写入历史命令文件中 -c 将目前的shell中的所有 history 内容全部消除 实际为假删除 -r 将历史命令文件中的命令读入当前历史命令缓冲区 -w 将当前历史命令缓冲区命令写...原创 2020-08-04 20:45:51 · 142881 阅读 · 0 评论 -
DeadLock死锁的出现和检测-模拟死锁
什么是死锁死锁: 指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁 死锁线程:上述永远互相等待的线程称为死锁线程死锁模拟package com.milla.study.netbase.expert.jvm;/** * @Description: <模拟死锁> * @Author: MILLA * @CreateDate: 2020/4/23 15:16.原创 2020-08-04 18:31:39 · 119619 阅读 · 0 评论 -
JDK 中一些常用的内置命令简析
jpsJava VirtualMachine Process Status Tool显示当前所有java进程pid的命令# 仅输出VM标识符,不包括class,name ,jar,name,arguments in main method等信息[root@elastic-slave ~]# jps -q # 输出main method的参数[root@elastic-slave ~]# jps -m# 输出完全的报名,应用类名,jar的完整路径买那个[root@elas...原创 2020-08-03 13:35:05 · 118743 阅读 · 0 评论 -
GC 调试过程记录
查看JVM配置[root@localhost data]# java -versionjava version "1.8.0_231" # 版本Java(TM) SE Runtime Environment (build 1.8.0_231-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)# model类型# -Xmixed 混合模式(先编译后执行)# -Xint 解释执行# -Xco.原创 2020-07-31 20:20:56 · 122564 阅读 · 0 评论 -
Windows环境安装 安装mysql-8.0.18-winx64详细图解(zip包版本)
环境&版本window操作系统:win10系统 mysql-8.0.18-winx64: 64位软件Mysql软件官方地址下载zip包解压zip包创建my.ini配置文件# 具体内容如下[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=D:/Java/Database/mysql-8.0.18-winx64# 设置mysql数据库的数据的存放目录 (data文件夹如果没有的...原创 2020-07-31 13:36:26 · 125026 阅读 · 1 评论 -
Java 连接 Memcahed 实现缓存操作
Memcached单机版搭建Memcached集群版本搭建(包含代理)Maven依赖 <!--memcached依赖包--> <dependency> <groupId>com.googlecode.xmemcached</groupId> <artifactId>xmemcached</artifactId> ...原创 2020-07-30 19:15:38 · 122076 阅读 · 0 评论 -
memcached完整的搭建集群过程
Memcached单机搭建详解传送门集群准备三个节点(伪集群-同一台机器的不同端口)# ------节点----|--端口--|-节点名称 192.168.16.37 | 11211 | node1 192.168.16.37 | 11212 | node2 192.168.16.37 | 11213 | node3启动命令# 节点1[root@localhost memcached]# /mnt/memcached/bin/memcached -...原创 2020-07-30 17:21:21 · 122941 阅读 · 1 评论 -
memcached单机搭建
Memcached介绍是一个免费开源、高性能、具备分布式内存对象的缓存系统,能通过减轻数据库负载加速动态WEB应用本质是一个内存key-value缓存 协议简单,是基于问本行的协议 不支持数据的持久化,服务器关闭后数据会全部消失 memcached简洁而强大,便于快速开发,上手较快 没有安全机制Memcached实际理念简单的键/值存储 服务器不关心数据格式,只做数据存储 服务端功能简单,很多逻辑依赖客户端实现 客户端专注如何选择读取和写入的服务器,以...原创 2020-07-29 20:25:38 · 123335 阅读 · 0 评论 -
手把手一步一步的搭建Redis集群(超级详细)
环境集群需要多台服务器操作,该例仅为个人练手,所以在一台上启动多个节点做的伪集群[root@hadoop-master redis]# uname -aLinux hadoop-master 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/LinuxRedis版本redis-6.0.5安装步骤#创建操作目录 [root@hadoop-ma...原创 2020-07-29 18:24:25 · 124938 阅读 · 0 评论 -
redis-cli -p 6379 info 命令详解
# redis版本号2redis_version:5.0.33# redis源码包git信息4redis_git_sha1:000000005redis_git_dirty:06redis_build_id:da69b07a37c06dc87# 运行模式(“独立”,“哨兵”或“集群”)8redis_mode:standalone9# 操作系统信息10os:Linux 3.10.0-514.el7.x86_64 x86_原创 2020-07-29 16:15:06 · 127672 阅读 · 0 评论 -
Redis 哨兵模式的一些思考
为什么会出现哨兵模式Redis主从复制模式下,如果主节点出现故障将不能再继续提供服务,需要人为将从节点提升为主节点,同时还需要通知各个应用新的主节点的地址,这个在很多场景下是不能接受的,哨兵模式能很好的解决这个问题 Sentinel(哨兵)进程是用于监控redis集群中Master主服务器工作的状态 在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用(HA) 其已经被集成在redis2.6+的版本中,Redis的哨兵..原创 2020-07-29 13:45:23 · 123390 阅读 · 0 评论