SpringBoot学习:kafka批量并发消费配置(consumer+producer)

springboot使用的是2.0.0版本,spring-kafka使用的是2.1.4版本,配置的时候遇到了一些问题,在此总结一下: 1. session-timeout连接超时时间,之前 配置的是3000(ms),一直报异常,堆栈信息提示 连接超时时间不能大于“某时间”,这里一直没弄懂“某时间”是指哪个时间,后改为6000(ms)(若有大佬知道的,欢迎骚扰!!!)。 ps:忘记“ ”里的时间是什么了,可能是我英语太差的原因。 2. 是否开启自动提交enable-auto-commit: fa
分类: 其他 发布时间: 03-24 23:40 阅读次数: 0

Zookeeper、Hadoop、HBase安装

基于:zookeeper-3.4.6.tar.gz 1.解压 tar -zxf zookeeper-3.4.6.tar.gz 2.zookeeper-3.4.6目录创建两个文件夹用来储存日志和数据 cd /hous/zookeper/zookeeper-3.4.6 mkdir data mkdir logs 3.conf下创建zoo.cfg,打开文件添加如下 tickTime=2000 dataDir=/hous/zookeper/zookeeper-3.4.6
分类: 其他 发布时间: 03-24 23:40 阅读次数: 0

Elasticsearch搜索引擎

es基本概念: 索引(Index) es是把数据存放到一个或者多个索引中 文档 (document) 用来存储数据实体,类似关系型数据库的row,文档的三元素:1._index:文档对应的索引;2._type:文档对应的数据类型;3._ID:文档的唯一ID 类型(type) 每个文档在es中都必须设定它的类型。文档类型使得同一个索引中在存储结构不同文档时,只需根据文档类型就可以找到对应的参数映射信息,方便文档的存取。类似于关系型数据库的table 节点(node) 部署es程序的服务器,运行的
分类: 其他 发布时间: 03-24 23:39 阅读次数: 0

Docker篇:安装Docker

docker 安装 1.打开/etc/yum.repos.d/文件 cd /etc/yum.repos.d/ 2.下载docker,这里使用的是清华大学镜像 wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo 3.修改下载路径 vim docker-ce.repo 修改下载路径,执行以下命令全部替换 按住shift+:执行以下命令: %s@https://downloa
分类: 其他 发布时间: 03-24 23:39 阅读次数: 0

Java、Golang 选择排序

一 . 选择排序的Java语言实现 for (int i = 0 ;i< arr.length ;i++){ int min =i ; for(int j = i+1;j<arr.length; j++){ if(arr[j] < arr[min]){ min = j; } } swap (arr,i,min); } 二. Golang 实现选择排序 for i:=0 ; i< len(arr
分类: 其他 发布时间: 03-24 23:38 阅读次数: 0

Golang实现插入排序

插入排序逻辑就是从第二个元素开始比较与前面元素的大小,比它大就交换,然后移动指针。 第一种临界条件: 比如比较 5 2 1 第二种临界条件: 上面的1 2 5 插入一个3 第一次比较比5 小 ,交换 1 2 3 5 j--之后j=2 此时继续发现 j (3) 大于 j -1 (2) 注意 !!! 下面代码中的为切片类型,是引用类型,如果是数组类型的值,记得在交换的时候使用指针来操作 func InsertionSort(s []int) { n := len(s) if n < 2 {
分类: 其他 发布时间: 03-24 23:38 阅读次数: 0

Golang语言实现冒泡排序

冒泡排序 冒泡排序就是每次内层循环找出最大的值,并放在切片的最右边, 找最大值的方式:从下标为零的开始比较 下标为0与下标为1的大小,比它前面(i+1)的大就跟前面的交换,直到最大的到最右边即就是 等于end package main import "fmt" func main() { s1 := []int{2,6,3,7,8} bubbleSort(s1) fmt.Println(s1) } func bubbleSort(slice []int) { if l
分类: 其他 发布时间: 03-24 23:38 阅读次数: 0

Golang语言实现归并排序

参考其他大神实现 : https://blog.csdn.net/qq_36520153/article/details/82894216 我的实现 package main import "fmt" func main(){ s1 := []int{2,6,3,7,8} sort1(s1) fmt.Println(s1) } func sort1(slice []int){ if len(slice) < 2 && slice == nil { return } s
分类: 其他 发布时间: 03-24 23:37 阅读次数: 0

在Thymeleaf中执行Java方法,实现CheckBox的自选中

今天在开发中遇到了一个需求就是页面返回的时候让checkbox回显的,本来用JS来写并没有什么难度的。但是要使用Thymeleaf就变得有些复杂。thymeleaf有一个特性就是可以在标签中执行Java的方法。 <label class="checkbox-inline i-checks" th:each="data : ${list}"> <input th:attr="checked=${methodService.contains(data.id,proofsList)?
分类: 其他 发布时间: 03-24 23:37 阅读次数: 0

重入锁-------synchronized

重入 : 一般地,当一个线程请求由其他线程所持有的锁的资源时,发出请求的线程就会阻塞。 然而,内置锁是可以重入的。因此当一个线程获得由该线程已经持有的锁,那么这个线程的请求就会成功。重入意味着获取锁的的粒度是线程。 第一种synchronized关键字 public class Demo_001 implements Runnable { @Override public void run() { set(); } public synch
分类: 其他 发布时间: 03-24 23:37 阅读次数: 0

Java读写锁

ReentrantLock ReentrantLock它实现了标准的互斥锁,即当一个线程获取了锁,其他的线程都要等待,当前线程释放锁才能获得所有权。一次最多只有一个线程持有锁。通常作为保护数据一致性很强的的加锁约束,这样也就限制了程序的并发效率。 虽然避免了 写---写,读---写 的线程安全问题,但是也同样避开了读读的的重叠。在很多的时候数据是被频繁读取的。 ReentrantReadWriteLock 它的出现就是为了解决多个线程读读互斥的问题。 我们先来看JavaDoc文档中两个获取锁模
分类: 其他 发布时间: 03-24 23:37 阅读次数: 0

Java之死锁两种方式模拟

锁顺序死锁 package ReadWirteLock; public class TestDeadLock { private final Object left = new Object(); private final Object right = new Object(); public void leftRight() { synchronized (left) { synchronized (right) { System.out.print
分类: 其他 发布时间: 03-24 23:36 阅读次数: 0

XML解析----- SAXReader

1.直接使用SAXReader package com.crown.saxdecoder; import java.io.InputStream; import java.util.Iterator; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Docum
分类: 其他 发布时间: 03-24 23:36 阅读次数: 0

Java之反射常用操作

获取Class对象 方式1: Class userClass = Class.forName("com.crown.reflect.User"); 方式2: Student stu1=new Student();//这一new 产生一个Student对象,一个Class对象。 Class stuClass=stu1.getClass();//获取Class对象 方式3: Class stuClass2=Student.class; 获取构造函数 Class对象提供两个有重载的获得
分类: 其他 发布时间: 03-24 23:36 阅读次数: 0

代理模式 ---静态代理

静态代理 共同接口 public interface Action { void doSomething(); } 真实角色 public class RealObject implements Action { @Override public void doSomething() { // TODO Auto-generated method stub System.out.println("real object dosomething"); } } 代理角色
分类: 其他 发布时间: 03-24 23:36 阅读次数: 0

最简单的观察者模式

主题角色: public interface Subject { void attach(Observe observe); void remove(Observe observe); void notifyObserver(String mess); } 主题角色可以是抽象类或者接口来实现,它定义了一组用来操作观察者的方法。 观察者 : public interface Observe { void Update(String message); } 真实观察者角色: pu
分类: 其他 发布时间: 03-24 23:35 阅读次数: 0

sqlserver主键自增

建表,主键自增 create table aaa( id bigint identity(1,1) not null PRIMARY key, name nvarchar(255) ); navicat没办法给主键列,加identity,只能用sql建表 赋值时,identity列不能赋值,报错 一、identity的基本用法 1.含义 identity表示该字段的值会自动更新,不需要我们维护,通常情况下我们不可以直接给identity修饰的字符赋值,否则编译时会报错 2.语法 列名 数据类
分类: 其他 发布时间: 03-24 23:34 阅读次数: 0

【Codeforces 584C】Marina and Vasya

【链接】 我是链接,点我呀:) 【题意】 题意 【题解】 设cnt表示s1和s2不同的字符的个数 如果cnt>2t 因为这cnt个位置肯定至少有一边不同 显然肯定会有一个f(s,S)的值大于t的 如果t<=cnt<=2t 这种情况,不能全都让这cnt个位置s1和s2都与所求s不同 因为每个都会多出来cnt-t个 我们可以这样,从cnt中选出来cnt-t个位置,只让s1与s不同 然后再求出来cnt-t个位置,只让s2与s不同 这样f(s1,S)和f(s2,S)的值都为cnt-t了 还剩下cnt-
分类: 其他 发布时间: 03-24 23:34 阅读次数: 0

传递类对象-智能指针作为线程参数

/* 1:临时对象作为线程参数:用测试大法 线程id:线程id是一个数字,每一个线程都对应一个线程id,线程不一样,线程id也不一样,用std::this_thread::get_id()来获取。 2:传递类对象,智能指针作为线程参数:在子线程中用const和引用来接 */ #include <iostream> #include<thread> using namespace std; class A { public: mutable int m_a;//m_a不管在什么情况下都可以修改
分类: 其他 发布时间: 03-24 23:34 阅读次数: 0

Linux 自动化部署DNS服务器

Linux 自动化部署DNS服务器 1.首先配置主DNS服务器的IP地址,DNS地址一个写主dns的IP地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加记录。  2.配置从dns的IP地址 3. 运行脚本,选择1,部署主DNS服务器    4.运行完脚本之后,主DNS就部署完成了,查看配置文件 /etc/named.conf  5. 查看区域文件 区域文件在 /var/named/   6.本地测试主DNS服务器是否部署成功   7. 在从DNS
分类: 其他 发布时间: 03-24 23:34 阅读次数: 0