- 博客(55)
- 资源 (20)
- 收藏
- 关注
原创 高级软件开发知识点
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。有时候为了提高效率,只是为了测试下某个表中是否存在记录,就用 1 来代替。
2024-03-04 23:56:51
994
原创 zipkin
前言:ZIPKIN作为当前“跟踪”问题的流行解决方案之一,正在被越来越多的公司和个人学习使用。其中很重要的一块,就是上报链路数据。那么知道服务端如何接收数据,以及我们该怎样上报数据到服务端就显得十分重要。虽然ZIPKIN官方也开源了一个客户端Brave,但是本文却并不想直接介绍Brave,而是想站在一个从零开发ZIPKIN客户端的角度,一层层分析解决如何自己写一个ZIPKIN客户端,直到最后引出Brave。本文最终想达到的效果,就是希望通过本文,能让大家对ZIPKIN的链路上报有一个详尽的理解和认识。
2024-01-15 14:15:08
1133
原创 分布式ID
分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。那么这个全局唯一ID就叫分布式ID。
2023-03-13 09:44:28
230
原创 分库分表原理
分库分表,首先要知道瓶颈在哪里,然后才能合理地拆分(分库还是分表?水平还是垂直?分几个)。选key很重要,既要考虑到拆分均匀,也要考虑到非partition key地查询。只要能满足需求,拆分规则越简单越好。
2023-03-10 17:21:19
416
原创 流行架构对比
作为一套专门用于事件流处理的分布式计算框架,Storm的诞生可以追溯到当初由BackType公司开发的项目——这家市场营销情报企业于2011年被Twitter所收购。Twitter旋即将该项目转为开源并推向GitHub平台,不过Storm最终还是加入了Apache孵化器计划并于2014年9月正式成为Apache旗下的顶级项目之一。Storm有时候也被人们称为实时处理领域的Hadoop。
2023-03-10 17:06:52
970
原创 Redis部署
命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效。如果提示/deps/hiredis/libhiredis.a:cd ./deps make lua hiredis linenoise。如果提示cc没有找到:yum -y install gcc gcc-c++ libstdc+±devel。
2023-03-10 16:38:46
431
原创 springboot的yml配置文件通过db2的方式整合mysql
springboot整合mysql很简单,多数据源就master,slave就行了,但是在整合db2就需要另起一行,以下是同一个yml文件。ok这样就能通过config获取到了,下面是config源码。先配置mysql,代码如下。
2023-03-10 16:27:14
1418
原创 Jenkins集成sonarQube
sonarqube是一款自动化代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查。其工作流程如下:如图如图sonarqube由以下4个组件组成:webserver:供开发人员,管理人员浏览高质量的快照并配置sonarqube实例searchserver:基于elasticsearch的searchserver从ui进行后退搜索(历史)computeengine:负责处理代码分析报告并将其保存在sonarqube数据库中。
2023-03-10 16:19:41
1119
原创 DevOps工具集合
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
2023-03-09 17:39:08
1771
1
原创 mysql笔记
like ‘%m%’ ESCAPE ‘m’:告诉DBMS将第二个百分号作为实际值,而不是通配符。like ‘AB&_%’ ESCAPE ‘&’ : 查询条件为以AB_开头的字符串。尽量使用内连接替换IN等相关子查询。聚集函数比all效率高。
2023-02-16 11:06:04
601
原创 数据仓库笔记
数据仓库(DataWarehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策(Decision-Making Support)。数据库与数据仓库的区别实际讲的是 OLTP 与 OLAP
2022-10-31 11:25:12
4750
1
原创 Nginx笔记大全
简而言之就是正向代理代理的对象是客户端,反向代理代理的是服务端。应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理并返回响应的数据。负载均衡器:将用户访问的请求根据对应的负载均衡算法,分发到集群中的一台服务器进行处理。1、解决服务器的高并发压力,提高应用程序的处理性能。2、提供故障转移,实现高可用。3、通过添加或减少服务器数量,增强网站的可扩展性。4、在负载均衡器上进行过滤,可以提高系统的安全性。
2022-09-01 17:51:49
1152
原创 RabbitMQ安装
RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。...
2022-07-27 16:32:00
822
转载 Java 重构设计模式,厉害
重要提示什么时候该用lambda,什么时候不用,这是要看情况的,如果处理逻辑相对比较简单,可以用lamdba来重构,以便让代码更简洁易读,如果处理逻辑很复杂,应该还是用“类”。思路基于某个Subject主题,然后一堆观察者Observer注册到主题上,有事件发生时,subject根据注册列表,去通知所有的observer。比如会员系统中,每个商家都会有一些营销活动,需要推送某种信息给会员,但是不同的商家推送的内容可能不同,有些需要推送优惠券,有些需要积分通知。显然如果模板的实现方式越多,子类就越多。...
2022-07-26 17:40:33
314
原创 Java线程池
我们是否可以将线程池的参数从代码中迁移到分布式配置中心上,实现线程池参数可动态配置和即时生效,线程池参数动态化前后的参数修改流程对比如下:动态化线程池的核心设计包括以下三个方面:动态化线程池提供如下功能:动态调参:支持线程池参数动态调整、界面化操作;包括修改线程池核心大小、最大核心大小、队列长度等;参数修改后及时生效。 任务监控:支持应用粒度、线程池粒度、任务粒度的 Transaction 监控;可以看到线程池的任务执行情况、最大任务执行时间、平均任务执行时间、95/99 线等。 负载告警:线程池队列任
2022-07-08 09:19:21
168
原创 如何优雅地记录操作日志
操作日志几乎存在于每个系统中。操作日志和系统日志不一样,操作日志必须要做到简单易懂。操作日志:主要是对某个对象进行新增操作或者修改操作后记录下这个新增或者修改,操作日志要求可读性比较强,因为它主要是给用户看的,比如订单的物流信息,用户需要知道在什么时间发生了什么事情。再比如,客服对工单的处理记录信息。操作日志的记录格式大概分为下面几种: * 单纯的文字记录,比如:2021-09-1610:00 订单创建。 * 简单的动态的文本记录,比如:2021-09-16 10:00 订单创建,订单号:NO.11089
2022-07-01 09:25:20
1631
原创 IT系统缩写
缩写全拼说明SCMSupply chain management供应链管理CADComputer Aided Design计算机辅助设计FMSFlexible Manufacture System柔性制造系统JITJust In time准时制生产MRPMaterial Requirement Planning物料需求计划MRP IIManufacturing Resource Planning制造资源计划ERPEnterp...
2022-01-05 17:13:36
747
原创 Lambda
之前List会创建iterator(迭代器),通过对象依次访问list种元素。这个设计理念是在单核机器上产生的。之前集合操作,或多或少会出现中间存储,增加垃圾回收的成本。代码冗长,以后维护非常耗时间,并且极易出错。从集合到流流与集合不同,因为它提供了一个可选的有序值序列而无须为这些值提供任何存储;它们是“移动种的数据”,这是一种表示批量数据操作的方式。流的目的是处理值。图中的矩形表示称为map的操作,通过系统规则转换每一个流元素。intList.stream().map(i -> new
2021-12-15 11:27:51
505
原创 算法心笔记
排序算法时间复杂度n²的排序算法冒泡排序(升级版-鸡尾酒排序[钟摆式])选择排序插入排序希尔排序时间复杂度n㏒n的排序算法快速排序:分治法(数列在每一轮都拆分两部分,直到不可再分为止)。选一个基准元素,大的放一边,小的放另一边。归并排序堆排序时间复杂度n的排序算法计数排序桶排序基数排序...
2021-10-27 17:46:55
301
原创 中国上古神仙
创始元灵有4个徒弟,鸿钧老祖、混鲲祖师、女娲娘娘和陆压道君。宇宙诞生之初,有一先天混元之元灵,灵窍初开,渐具神智。这元灵无意中于西昆仑得到宇宙之初的造化神器,经过不知几世修行,元灵功德圆满,道法得成。在漫长难耐的混沌宇宙中,创始元灵成为宇宙间唯一的一个“清醒者”,忍受着难以想象的孤独寂寞。仿佛,为了完成某种约定而神秘的使命,创始元灵利用造化神器的无上灵力,分别传授给四个徒弟一门修行的法门。老大鸿钧,修“玄清气”,老二混鲲,修“玄灵气”,老三女娲,修“玄空气”,老四陆压,修“玄明气”,合之则为 “清灵空明”
2021-10-20 13:53:08
510
原创 系统并发设计思路
概念TPS(Transaction Per Second)每秒处理的事务数。从客户端发起请求开始计时,等到收到服务器端响应结果后结束计时,在计算这个时间段内总共完成的事务个数QPS(Queries Per Second)每秒查询数,表示服务器端每秒能够响应的查询次数。这里的查询是指用户发出请求到服务器做出响应成功的次数,可以简单认为每秒钟的Request数量。RT(Response Time),表示客户端发起请求到服务端返回的时间间隔,一般表示平均响应时间。并发数是指系统同时能处理的请求数量。如果
2021-10-19 14:00:29
318
原创 java面试大全
MybatisMapper接口方法不能重载。因为使用“全限名+方法名”寻找策略。Mybaits默认分页是结果集内存分页,非物理分页。可以自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。mapper传递多个参数:(String name,String area)–>#{0},#{1};(@param(“username”) String name)–>#{username}。Mybaits 9种动态sql标签
2021-09-01 15:03:42
160
原创 Lambda
// 交集List intersection = numberList.stream().filter(item -> letterList.contains(item)).collect(Collectors.toList()); // 差集 (list1 - list2) List<String> reduce1 = numberList.stream().filter(item -> !letterList.contains(item)).collect(to
2021-08-11 18:19:57
115
原创 ZooKeeper
官网概要应用场景分布式通知/协调:用于分布式系统的任务分发与任务执行结果反馈 集群管理:可以监控节点的存活状态 Master选举 分布式锁:独占/控制时序 分布式队列数据结构类似于文件系统,每一个节点称为ZNode(二叉树) 可以存放数据 节点类型:临时节点/持久化节点架构节点:2N+1个server组成,N+1个节点可用时,整个系统保持可用 server角色类型:server存放数据(in-memory);Leader不接受client的请求,负责进行投票的发起和决议
2021-05-26 10:25:40
287
1
原创 Innodb性能监控
mysql > show engine innodb status\G;*************************** 1. row *************************** Type: InnoDB Name:Status:=====================================2021-05-10 10:41:58 0x7febcc273700 INNODB MONITOR OUTPUT=========================...
2021-05-10 10:45:23
370
原创 数据库部署
mysql57rpm -qa|grep mariadbyum remove mariadb-libs-5.5.60-1.el7.x86_64rpm -qa|grep mariadbcd /tmp/wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmyum -y localinstall mysql57-community-release-el7-11.noarch.rpmyum -y i...
2021-04-26 10:20:58
130
原创 nginx 配置
1. location的语法:location [ = | ~ | ~* | ^~ ] uri { … }| 指令 | | 匹配标识 | | 匹配的网站网址 | | 匹配URI之后要执行的配置段|精确匹配(=) > 字符串打头匹配(^~) > 正则匹配(或) > 否定式正则匹配(!或!) > 通用匹配(/)。两种正则当中,区分大小写的优先级高,也就是不带*的优先级高(范围从小到大)2. 匹配模式:a. 精确匹配: 1 2 3 .
2021-04-26 10:16:56
881
转载 Android实现后台连续静默拍照
简单的背景(一堆废话)前段时间在做一个Android项目,其中涉及到需要实现“后台”静默打开前置摄像头连续拍照进行人脸检测。尝试过网上各种方法,主要做法就是将预览透明+变小(0.1x0.1),但是这种做法并不能实现所谓的“后台”效果,你只能在一个透明界面啥也干不了,不能进行交互,或者出现闪退等问题。这个问题基本困扰了我一个多月,在此感谢https://blog.csdn.net/qq_31530015/article/details/52015170,让我一下有了新思路,一天就搞定了这个问题...
2020-05-28 17:41:48
1371
转载 mysql8配置
innodb_buffer_pool # 注:缓冲池位于主内存中,InnoDB用它来缓存被访问过的表和索引文件,使常用数据可以直接在内存中被处理,从而提升处理速度;innodb_buffer_pool_instance# 注:MySQL5.6.6之后可以调整为多个。表示InnoDB缓冲区可以被划分为多个区域,也可以理解为把innodb_buffer_pool划分为多个实例,可以提高并发...
2020-03-12 16:57:12
248
原创 centos-linux mysql卸载
卸载mysql组件【 查看MySQL组件 】[root@localhost ~]# rpm -qa | grep -i mysqlmysql-server-8.0.17-3.module_el8.0.0+181+899d6349.x86_64mysql-errmsg-8.0.17-3.module_el8.0.0+181+899d6349.x86_64mysql-common-8.0....
2020-03-12 14:51:35
301
原创 主流行架构
nexus,gitlab, svn, jenkins , sonar, docker,apollo,catteambition,axure,蓝湖,禅道, WCP;redis,kafka,es,zookeeper,dubbo,shardingjdbc,mysql,InfluxDB,Telegraf,Grafana,Nginx,xxl-job,以上技术都是目前我平台......
2019-12-24 17:44:32
193
原创 ES安装
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz#curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz# ...
2019-12-13 15:30:45
105
转载 Redis的内存优化
声明:本文内容来自《Redis开发与运维》一书第八章,如转载请声明。Redis所有的数据都在内存中,而内存又是非常宝贵的资源。对于如何优化内存使用一直是Redis用户非常关注的问题。本文让我们深入到Redis细节中,学习内存优化的技巧。分为如下几个部分:一. redisObject对象二. 缩减键值对象三. 共享对象池四. 字符串优化五. 编码优化六. 控制key的数量一......
2019-12-13 15:26:54
367
Kubernetes权威指南第2版
2018-01-23
Kubernetes权威指南第一版(part2)
2017-08-25
Kubernetes权威指南 第一版 part1
2017-08-25
Pencil Project
2016-09-01
智能交互设备框架设计
2016-03-10
apache-mima-2.0.7-src.zip
2014-04-25
annogen-0.1.0.jar
2010-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人