- 博客(22)
- 资源 (11)
- 收藏
- 关注
原创 java创建kafka的topic
kafka 0.10及其以下版本创建topic这个版本创建topic必须使用zookeeper,一般可以使用如下命令手动创建topic:bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 3 --partitions 3 --topic test那如何使用代码自动创建topic呢,可以使用AdminZkClient,示例如下:KafkaZkClient zkClient = KafkaZkClie
2022-03-03 16:41:03 6883 1
原创 java.lang.NoSuchFieldError: SERVER_SENT_EVENTS_TYPE异常问题
项目启动过程中,出现了java.lang.NoSuchFieldError: SERVER_SENT_EVENTS_TYPE异常,查看抛出的异常函数调用栈,发现是在引入的jar包中,同时引入了javax.ws.rs-api-2.1.jar和jaxrs-api-3.0.12.Final.jar,由于它们有相同类MediaType,且包名都是javax.ws.rs.core,前者有SERVER_SENT_EVENTS_TYPE字段,但是后者没有,而jvm最终加载的类是后者的MediaType,导致意图使用前者的
2021-07-13 10:08:55 2101 1
原创 kafka配置项offsets.retention.minutes导致offset丢失的问题
最近在一个项目中遇到kafka的current-offset丢失的问题。问题现象是,服务程序在暂停kafka的一个topic消费后,过了一天多,运维人员发现这个topic的消费组的current-offset丢失,在服务程序继续消费这个topic,消费者只能从最新的offset开始消费,导致之前一天累积的数据没有被处理。经过排查发现,是kafka的配置项offsets.retention.minutes导致。offsets.retention.minutes设置服务端保存消费者提交的offset的时间,
2021-06-30 21:22:45 2363 1
原创 linux内核设计与实现——进程(第3章和第4章)
1. 进程进程就是处于执行期的程序。但进程不仅仅包括可执行程序代码,还包括打开的文件、内存、信号量、处理器状态等资源。线程是进程中活动的对象。每个线程都拥有一个独立的程序计数器、进程栈和一组进程寄存器。内核调度的对象是线程,而不是进程。linux对线程和进程并不特别区分,线程是一种特殊的进程,它会与其他进程共享某些资源。1.1 进程描述符内核把进程的列表存放在叫做任务队列的...
2018-06-22 22:17:40 192
原创 linux内核设计与实现——虚拟文件系统
虚拟文件系统虚拟文件系统(有时也称作虚拟文件交换,更常见的是简称VFS)作为内核子系统,为用户空间程序提供了文件和文件系统相关的接口。之所以可以使用这种通用接口对所有类型的文件系统进行操作,是因为内核在它的底层文件系统接口上建立了一个VFS抽象层,该抽象层使Linux能够支持各种文件系统,即便是它们在功能和行为上存在很大的差别。VFS抽象层能够支持各种各样的文件系统,因为它定义了所有文...
2018-06-05 21:59:48 1451 1
原创 linux内核设计与实现——内存管理(第12章)
页内核以页作为内存管理的基本单位。32位机器支持4KB的页,64位支持8KB的页。 内核用struct page结构表示页,位于 linux/mm_types.h 中:struct page { unsigned long flags; // 存放也的状态 atomic_t _count; ...
2018-06-04 20:33:33 262
原创 linux内核设计与实现 —— 定时器和时间管理(第11章)
内核中的时间概念硬件为内核提供了一个系统定时器用以计算流逝的时间。系统定时器是一种可编程硬件芯片,它能以固定频率产生中断。该频率可以通过编程预定,称作节拍率(tick rate)。该中断就是所谓的定时器中断,它所对应的中断处理程序负责更新系统时间,也负责执行需要周期性运行的任务。节拍率Hz系统定时器频率(节拍率)是通过静态预处理定义的,也就是HZ(赫兹),在系统启动时按照HZ值对硬...
2018-05-30 12:05:07 288
原创 linux内核设计与实现 —— 中断和中断处理(第7章,第8章)
中断和中断处理中断的目的:让处理器最快地响应外部硬件的请求。中断本质上是一种特殊的电信号,由硬件设备发向处理器,处理器反映到操作系统中,最后由操作系统处理这个中断电信号。不同的设备对应的中断不同。每个中断都通过一个唯一的数字标记,这个标记通常被称为中断请求(IRQ)线。每个中断都有一个中断处理程序,运行在中断上下文中。(中断上下文与进程上下文的区别在于:中断上下文中的执行代码不可阻...
2018-05-29 21:10:47 325
转载 五大常用算法之二:动态规划算法
一、简介动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动...
2018-03-05 20:28:29 387
转载 五大常用算法之一:分治算法
文章转载自:http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html,自己添加了一些算法相关的题目。一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即...
2018-03-05 15:11:23 152
原创 旅行商问题(TSP)的启发式求解算法
一、TSP问题TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。二、求解算法从图论的角度来看,TSP问题实质是在一...
2018-03-02 22:25:40 28105 1
原创 java虚拟机探索(一):jvm架构简介
java虚拟机的实现必须遵循《java虚拟机规范》,而规范只是规定了java虚拟机实现的一些必要细节,并没有指出具体该如何实现,所以具体的厂商可以有自己的实现方法。在这里以jdk自带的虚拟机Hotspot为例,介绍其实现架构。 如上图所示,Hotspot JVM总体结构分为3个部分:类加载器子系统,运行时数据区,执行引擎子系统。以下是对每个部分的简单介绍。1. 类加载子系统虚拟机...
2018-02-24 15:23:40 228
原创 linux的debugfs机制
debugfs是linux中用户层与内核层的的一种数据交互方式。debugfs相关函数定义在 linux.debugfs.h 文件中,实现在linux.debugfs.c文件中。重要函数有下面几个。创建和撤销目录及文件struct dentry *debugfs_create_dir(const char *name, struct dentry *parent);struct
2018-01-08 22:05:12 485
原创 wifi配置工具iw源码解析
iw是一个基于nl80211接口的无线配置工具,用于替代原先基于wext接口的iwconfig。iw源码可以在网址 https://www.kernel.org/pub/software/network/iw/ 获取,或者使用git命令从http://git.kernel.org/?p=linux/kernel/git/jberg/iw.git. 中下载。1、简单的nl80211程序i...
2017-10-09 16:10:04 6014 1
原创 ubuntu安装搜狗输入法出现两个图标和两个输入框的解决方式
ubuntu16.04安装搜狗输入法后出现两个图标和两个输入框,让人很困扰,如何让它只出现一个呢?只要卸载掉fcitx-ui-qimpanel就行了 卸载命令如下:sudo apt-get purge fcitx-ui-qimpanel
2016-08-22 22:36:42 7778
转载 socket编程的select模型 转载
socket编程的select模型在掌握了socket相关的一些函数后,套接字编程还是比较简单的,日常工作中碰到很多的问题就是客户端/服务器模型中,如何让服务端在同一时间高效的处理多个客户端的连接,我们的处理办法可能会是在服务端不停的监听客户端的请求,有新的请求到达时,开辟一个新的线程去和该客户端进行后续处理,但是这样针对每一个客户端都需要去开辟一个新的线程,效率必定底下。其实,socket编程提供
2015-06-05 21:10:53 378
转载 MFC下的消息处理
一、添加消息处理函数PreTranslateMessage,此函数可以通过MFC ClassWizard添加BOOL CPreTranslateMessageDlg::PreTranslateMessage(MSG* pMsg){ if (pMsg->message==WM_LBUTTONDOWN) { MessageBox("一二三四"); } r
2015-05-15 17:52:23 557
转载 动态链接库DLL
这是转载博客园的一篇文章,我进行了一下简单的整理 原文链接:http://www.cnblogs.com/lidabo/archive/2013/08/30/3291784.html。
2015-05-13 14:33:15 766
原创 C++动态数组
在C++中,使用变长数组,有三种方式: 1、使用new动态分配数组的长度。int *p;int len;p=new int[len];............delete[] p; 2、使用函数 void* malloc(size_t n)动态分配内存空间,然后将首地址赋给一个数组指针。3、使用C++容器vector。采用vector可以动态增加数组长度,与java的java.util包中
2015-05-06 14:39:05 943
原创 android socket编程client
activity篇:package com.mysocket.androidclient;import java.io.*;import java.net.InetSocketAddress;import java.net.Socket;import android.os.Bundle;import android.os.Handler;import android.os.Message;
2015-04-04 00:37:40 766
原创 android笔记之activity与broadreceiver通信
broadreceiver从其他地方接收到消息,然后在将消息转发给指定的activity在BroadcastReceiver中:public class MsgReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Lo
2015-03-31 22:32:36 501
原创 android笔记之activity使用intent通信
activity之间可以使用intent进行通信 例如在ActivityA和ActivityB之间进行通信,使用intent传递数据 关键函数: ActivityA: startActivityForResult(Intent intent, int requestCode) //可将消息添加到intent中,利用intent传递消息
2015-03-31 11:07:12 407
Atheros AR9223芯片
2018-12-14
802.11协议竞争机制解析
2018-12-14
分层分组公平排队算法
2018-12-14
游双-Linux高性能服务器编程(高清pdf+源码)
2018-10-12
802.11无线网络权威指南第二版
2018-10-12
VC++ 20个网络相关源码实例
2015-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人