自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

罗布泊coding

学习,生活,工作的足迹

  • 博客(300)
  • 资源 (4)
  • 收藏
  • 关注

原创 ES查询和监控

参考https://blog.csdn.net/okiwilldoit/article/details/137107087。再安装kibana,在它的控制台里写es查询语句。

2024-04-10 15:04:44 149

原创 mac系统使用经验

mac使用

2024-03-28 11:58:00 568

原创 使用 Lens 管理 Kubernetes 集群

随着越来越多的工作负载迁移到容器化环境,管理大量容器以及它们与其他系统之间的连接变得具有挑战性。随着容器化环境的规模和复杂性增加,超出了人类的管理能力,Kubernetes等容器编排平台变得越来越重要。然而,这样的平台也有自己的管理挑战,需要指标、可观察性和用户友好的界面来展示其巨大的复杂性。镜头自称为“Kubernetes IDE”,是一个有用、有吸引力的开源用户界面 (UI),用于与 Kubernetes 集群一起工作。

2024-02-21 09:29:17 350

原创 LRU算法实现

最近最少使用算法,主要思路:双链表:双链表存储数据,插入和删除元素都很方便,复杂度都是O(1)。头节点是最近使用的元素,尾节点是最近最少使用空间满了的话,就淘汰尾节点,新增元素时,放在头节点。。为什么不用数组,因为插入和删除需要平移元素,复杂度是O(n)。哈希map:用于查找数据,key是数据的key,value是数据的指针(即数据在双链表中的位置)最大容量:如果超过容量,就把尾节点淘汰,新数据添加到头节点。

2023-11-30 10:38:12 409

原创 链表中的节点每k个一组翻转

描述将给出的链表中的节点每 k 个一组翻转,返回翻转后的链表如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。示例1输入:返回值:示例2输入:{},1返回值:{}

2023-11-29 14:21:34 86

原创 Java性能分析工具

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。Grace是一款开源用于解决应用程序中出现的常见问题的软件,其开源版本为Jifa,前身为Zprofiler。根据对象地址在"Inspector"搜索栏里搜索,得到这个对象里的所有字段以及对应的大小,一般Retained Size最大的就是泄漏的字段。

2023-10-26 15:20:39 127

原创 分布式事务介绍

本地消息表顾名思义就是会有一张存放本地消息的表,一般都是放在数据库中,然后在执行业务的时候 将业务的执行和将消息放入消息表中的操作放在同一个事务中,这样就能保证消息放入本地表中业务肯定是执行成功的。2PC 和 3PC 都是数据库层面的,而 TCC 是业务层面的分布式事务,就像我前面说的分布式事务不仅仅包括数据库的操作,还包括发送短信等,这时候 TCC 就派上用场了!(1)同步阻塞,2PC的两个阶段中,协调者和参与者的通信都是同步的,这会导致整个事务的长时间阻塞。

2023-04-07 10:21:08 331

原创 Centos系统常用软件

系统常用软件yum install gityum install lrzszyum install nginxC++环境yum install gccyum install gcc-c++yum install makePython环境

2021-10-25 10:40:13 1235

转载 GeoHash算法简介

一. 基本原理GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串。我们知道,经度范围是东经180到西经180,纬度范围是南纬90到北纬90,我们设定西经为负,南纬为负,所以地球上的经度范围就是[-180, 180],纬度范围就是[-90,90]。如果以本初子午线、赤道为界,地球可以分成4个部分。如果纬度范围[-90°, 0°)用二进制0代表,(0°, 90°]用二进制1代表,经度范围[-180°, 0°)用二进制0代表,(0°, 180°]用二进制1代表,那么地球可以

2021-07-19 15:35:42 18350 2

原创 Arena内存池简介

一. 什么是内存池?内存池(Memory Pool)是一种内存分配方式,又被称为固定大小区块规划(fixed-size-blocks allocation)。通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。内存池是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点

2020-11-25 18:09:31 3532

原创 消息队列实现原理(以kafka为例)

一. 概述:消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。使用较多的消息队列有Kafka、ActiveMQ、RabbitMQ、ZeroMQ、MetaMQ、RocketMQ。消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景。1、异步处理:用户注册后,需要发注册邮件和注册短信。2、应用解耦:用户下单后,订单系统需要通知库存系统。3、流量削锋:秒杀活动,一般会因为流量过大,导致流量暴增,应

2020-09-21 10:33:22 3904

原创 利用Redis设计常用系统(分布式锁)

一. 发红包用redis队列。用户发红包时,输入金额m和红包个数n。后台程序接收到这两个参数后,将m分成随机的n份,将这n个数写入到redis队列中。用户抢红包时,访问redis队列,每抢一个就lpop出一个金额,直到队列为空。二. 商品秒杀系统用redis的DECR命令。Redis Decr 命令将 key 中储存的数字值减一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。思路:商品信息在秒杀活动开启之前, 将其从关系型数据库(比如mysql

2020-09-15 09:32:52 222

原创 Redis主从同步原理

在redis中为了保证redis的高可用,一般会搭建集群模式,其中一种就是主从模式,还有一种是集群模式。主从模式可以保证redis的高可用,那么redis是怎么保证主从服务器的数据一致性的,接下来我们谈谈redis主(master)从(slave)同步原理。1. PSYNC命令要想了解redis的主从同步原理,首先要了解下psync命令。Redis在2.8版本提供了PSYNC命令来带代替SYNC命令,为Redis主从复制提供了部分复制的能力。PSYNC命令格式是:PSYNC <runid>

2020-09-11 10:09:47 464

原创 和为S的两个数字

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。思路:设置两个头尾指针i,j,计算出头尾两个数的和tmp。(1)如果tmp == sum,那么要找的就是这两个数;(2)如果tmp < sum,那么说明tmp还小,需要大数,头指针右移;(3)如果tmp > sum,那么说明tmp比较大,需要小数,尾指针左移;这里最终答案可能不止一个,所以需要记录符合条件的积,选择一个最小的积。所以对于情况(1),

2020-09-06 14:54:08 97

原创 面试题:删除链表中的重复结点&删除链表倒数第k个节点

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:找到重复节点(所有重复节点)的前驱和后继节点,用前驱指向后继。有个问题:如果头结点也是重复节点呢?为了避免单独处理头结点,创建一个虚拟节点,作为链表头结点的前驱。代码如下:ListNode* deleteDuplication(ListNode* pHead){

2020-09-06 12:55:24 165

原创 用反射机制合并两个Protobuf

对于protobuf的合并操作,官方api提供了MergeFrom函数。如:pd1.MergeFrom(pb2),该方法对于非repeated类型,优先使用pb2,对于repeated类型,就是将两个字段的值取并集,并且无法去重。有时无法满足我们的项目需求。我们可以使用protobuf的google::protobuf::Descriptor和google::protobuf::Reflection实现将两个相同类型的pb合并。代码如下:addressbook.proto文件:package zh

2020-07-29 09:37:48 5926

原创 C++反射机制的实现

如何通过类的名称字符串来生成类的对象。比如有一个类ClassA,那么如何通过类名称字符串”ClassA”来生成类的对象呢?反射机制就是程序在运行的过程中,可以通过类名称创建对象,并获取类中申明的成员变量和方法。Java中有天然的反射机制,因为Java本身就是半编译语言,很多东西可以在运行时来做,但是c++就不同了。要建立c++的反射机制,就需要登记每个类名与 创建类实例的回调函数 的对应关系。主要用工厂模式和一个的宏注册函数来实现。实现代码如下所示:class_factory.h#include

2020-06-11 14:28:27 312

原创 vscode共享linux文件 & 搭建samba服务windows共享linux文件

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。一. Linux端设置1.安装sambayum install samba -y2.修改samba配置vim /etc/samba/smb.conf[global]log file = /var/log/samba/log.%mmax log size = 50obey pam restrictions = nodns proxy = noos level = 33syslog = 3s

2020-05-09 17:20:22 1039

原创 打印零与奇偶数

题目:https://leetcode-cn.com/problems/print-zero-even-odd/submissions/用三个互斥锁控制打印0,奇数,偶数的顺序。每把锁控制一种打印。打印0后,如果是偶数,则释放奇数锁,即开始打印奇数。反之,释放偶数锁。打印奇数后,释放0锁;打印偶数后,释放0锁。class ZeroEvenOdd {private: int n...

2019-10-12 11:48:17 510

原创 交替打印FooBar

题目:https://leetcode-cn.com/problems/print-foobar-alternately/submissions/打印保持顺序,与按序打印类似。1.用两个信号量解决。由于c++中没有原生信号量,所以用mutex和条件变量实现一个。class Semaphore{public: Semaphore(int value = 1) :count(val...

2019-10-12 10:58:11 570 2

原创 按序打印

题目:https://leetcode-cn.com/problems/print-in-order/submissions/最经典的多线程问题。这里提供两种解决方案。1. 原子计数器加while循环class Foo {private: std::atomic<int> counter_;public: Foo() { counte...

2019-10-11 17:26:55 264

原创 架构设计/开发常用工具框架

1.rpc框架:brpc,spp 2.缓存数据库(nosql):redis,couchbase,memcache,cassandra(facebook开源分布式) 3.服务发现:consul,zookeeper 4.消息队列:kafka 5.监控:grafana,influx db(时序数据库) 6.数据库:mysql 7.版本管理:gitlap(开源),svn,github 8.数...

2019-07-31 18:18:58 1888

转载 开源监控利器 grafana

grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。grafana最常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。grafana有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Ela...

2019-07-31 18:07:39 199

原创 influxDB介绍

InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据。InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手。InfluxDB关键概念:database,measurement(类似sql中的table),fiel...

2019-04-08 18:28:52 2192

原创 Brpc定时器

brpc定时器,即bthread_timer_t,是另外开一个线程来定时执行操作,封装了bthread_timer_add等方法,头文件是&lt;bthread/unstable.h&gt;。下面是示例代码:#include &lt;memory&gt;#include &lt;string&gt;#include &lt;bvar/bvar.h&gt;#include &lt;bv...

2019-03-11 15:56:03 1628 1

原创 用supervisor管理进程

简介supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。安装配置好yum源后,可以直接安...

2019-01-09 16:21:57 316

原创 mysql多行记录合并为一行

t_zhb表结构如下:task_id type item_id cnt1 2 1 2002 2 1 4001 2 2 5002 2 2 300现在想要把type和item_id都相同的记录合并为一行,合并后如下所示:type item_id cnt2 1 200,4002 2 500,300用...

2018-11-15 18:17:56 388

原创 brpc学习:bvar

一.介绍bvar是多线程环境下的计数器类库,方便记录和查看用户程序中的各类数值,它利用了thread local存储减少了cache bouncing,相比UbMonitor(百度内的老计数器库)几乎不会给程序增加性能开销,也快于竞争频繁的原子操作。brpc集成了bvar,http接口下的/vars可查看所有曝光的bvar,/vars/VARNAME可查阅某个bvar,在brpc中的使用方法请...

2018-10-11 11:38:50 6251

原创 使用tcpcopy导线上流量

假设我们要上线一个服务程序,在上线前,免不了单元测试,功能测试,还有使用ab,webbench等等进行压力测试。但这些步骤非生产环境下正式用户的行为。或许你会想到灰度上线,但毕竟可能会影响到部分用户,那该怎么样压测才能不影响线上环境呢?网易的 王斌 开发了tcpcopy, 可以导入线上流量进行功能和压力测试。一. tcpcopy介绍tcpcopy是一种请求复制工具。可以将线上流量拷贝到测试...

2018-09-28 15:42:07 542

原创 C++11多线程编程

Linux 程序员都用过 pthread, 但有了 C++11 的 std::thread 以后,你可以在语言层面编写多线程程序了,直接的好处就是多线程程序的可移植性得到了很大的提高。C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是&amp;lt;atomic&amp;gt; ,&amp;lt;thread&amp;gt;,&amp;lt;mutex&amp;gt;,&amp;lt;condition_variable&am

2018-09-25 17:22:30 507

原创 brpc学习:ExecutionQueue

ExecutionQueue 提供了如下基本功能:异步有序执行: 任务在另外一个单独的线程中执行, 并且执行顺序严格和提交顺序一致.Multi Producer: 多个线程可以同时向一个ExecutionQueue提交任务支持cancel一个已经提交的任务支持stop支持高优任务插队示例代码:利用队列异步写文件#include &amp;lt;bthread/execution_q...

2018-09-20 14:09:57 2672

原创 brpc线程模型学习

bthread是brpc使用的M:N线程库,目的是在提高程序的并发度的同时,降低编码难度,并在核数日益增多的CPU上提供更好的scalability和cache locality。”M:N“是指M个bthread会映射至N个pthread,一般M远大于N。由于linux当下的pthread实现(NPTL)是1:1的,M个bthread也相当于映射至N个LWP。bthread的前身是Distri...

2018-09-18 11:51:02 7929 5

原创 C++11新特性学习

1. 智能指针参见博文:https://blog.csdn.net/okiwilldoit/article/details/800622202. auto指定符对于变量,指定其类型将从其初始化器自动推导而出。auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推导,可以大大简化我们的编程工作。auto实际上是在编译时对变量进行了类型推导,所以...

2018-09-13 17:22:32 251

原创 Git使用手册

1. 回退到某个版本先显示提交的log$ git logcommit 4dc08bb8996a6ee02fAuthor: Mark &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;[email protected]&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Date: Wed Sep 7 08:08:53 2016 +0800commit 9cac9ba76574da

2018-09-12 09:37:08 1616

原创 Redis Sentinel学习和集群

一.介绍Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。 它的主要功能有以下几点: ...

2018-09-05 15:47:49 212

原创 couchbase安装和配置

一.Couchbase介绍Couchbase,是MemBase与couchDb这两个NoSQL数据库的合并的产物,是一个分布式的面向文档的NoSQL数据库管理系统,即拥有CouchDB的简单和可靠以及Memcached的高性能。它内置了Memcached的所有服务,可以说是Memcached的升级版,分布式版本。Couchbase是高性能,高伸缩性和高可用的分布式缓存系统。二.与Red...

2018-08-31 11:16:28 6388

原创 consul和consul template初步体验

一、consul概述consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server和client。每个数据中心官方建议需要3或5个...

2018-08-30 17:16:08 4036 1

原创 brpc初步学习

一.BRPC介绍BRPC百度开源的一个rpc框架,它具有以下特性: 1. 基于protobuf接口的RPC框架,也提供json等其他数据格式的支持 2. 囊括baidu内部所有RPC协议,支持多种第三方协议 3. 模块化设计,层次清晰,很容易添加自定义协议 4. 全面的服务发现、负载均衡、组合访问支持 5. 可视化的内置服务和调试工具 6. 性能上领跑目前其他所有RPC产品支持...

2018-08-28 11:04:20 8337

原创 blade构建protobuf小项目

一.简介google protobuf是一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。google protobuf是跨语言的,并且自带了一个编译器(protoc),只需要用它进行编译,可以编译成Java、python、C++、C#、Go等代码,然后就可以直接使用,不需要再写其他代码,自带有解析的代码。 更详细的介绍见: http...

2018-08-27 19:48:35 1651

原创 用Blade构建glog和gflags小项目

一.Blade介绍Blade 是一个现代构建系统,期望的目标是强大而好用,把程序猿从构建的繁琐中解放出来。Blade主要定位于linux下的大型C++项目,密切配合研发流程。比方单元測试。持续集成,覆盖率统计等。但像unix下的文本过滤程序一样,保持相对的独立性,能够单独执行。眼下重点支持i386/x86_64 Linux,未来能够考虑支持其他的类unix系统。在腾讯公司“台风”云计算...

2018-08-27 15:05:53 1502

Ubuntu10.04下安装ns-allinone-2.35

Ubuntu10.04下安装ns-allinone-2.35

2013-12-05

整理好的日期控件

js日期控件,经过整理,有些支持所有浏览器,有些支持部分浏览器

2013-02-28

Jfreechart各种图的源代码

Jfreechart各种图的源代码,包括柱状图,饼图,折线图,时序图等等,很全

2012-11-28

百度面试题集锦

整理的百度面试题,很好很强大的东西,可以自己下载来做做看,对找工作有帮助

2012-10-19

空空如也

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

TA关注的人

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