- 博客(64)
- 资源 (3)
- 收藏
- 关注
转载 字符编码的由来
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大
2022-01-04 14:12:14 346
原创 ES入门之CURD-总述
DSL搜索 > 查询所有文档——matchAllQuery > 分页查询 > 提取结果集中的文档 > 词项匹配——termQuery > 根据id精确匹配——termsQuery > 全文检索—— matchQuery > operator > minimum_should_match > 多域检索——multiMatchQuery > boost权重 > 布尔查询——boolQuery &g.
2021-10-11 15:36:42 186
原创 ES入门之CURD-2
1. 为什么ES不将数据存储为二进制文件,而使用JSON格式存储答:ES不仅要存储文档数据,还做对其创建索引2. 三个基本概念 > mapping: 映射,处理数据中每个字段如何存储 > analysis:分析,全文如何被索引到 > Query DSL:ES提供的灵活强大的检索语言 > 提醒:倒排索引检索中间件,匹配规则都是:模糊匹配+source。与Mysql等结构化匹配都不同3. select * > GET /_search : 查询所有的.
2021-10-11 15:34:41 228
原创 ES入门之CURD-1
基本名词解释:> Index 相似于mysql数据库中的database> Type 相似于mysql数据库中的table表,es中能够在Index中创建type(table),经过mapping进行映射。> Document 因为es存储的数据是文档型的,一条数据对应一篇文档即至关于mysql数据库中的一行数据row,一个文档中能够有多个字段也就是mysql数据库一行能够有多列。> Field es中一个文档中对应的多个列与mysql数据库中每一列对应&.
2021-10-11 15:33:43 263
原创 Netty总述
1. Netty的基础组件:Channel、ChannelHandler、ChannelHandlerContext、ChannelInitializer、ChannelFauture、ChannelOption、EventLoop、EventLoopGroup、ChannelPipeline、ServerBootStrap、BootStrap2. 运行原理3. 解码、编码器:4. 应用之Http服务器:HttpRequestEncoder、HttpResponseDecoder5. .
2021-09-30 10:51:21 91
原创 Excel导出小工具
excel导出一直是一个很枯燥的工作。今天分享一个自己编写的小model,如果大家也觉得方便好用。点个赞呗 >->1. 定义标签@Documented@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface TableFieldName { String value() default "";}@Documented@Target(ElementType.FIEL
2021-09-24 16:42:52 476
原创 ProtoBuf3.0-1
syntax="proto3";option java_outer_classname="MonitorDataPojo";option java_package="com.rhb.rpc.protobuf.pojo";import public "google/protobuf/timestamp.proto";message MonitorData{ google.protobuf.Timestamp option = 1; int64 longValue = 2; strin.
2021-09-06 15:27:15 207
原创 ES集群搭建
1.设置内核参数:/etc/sysctl.confvm.max_map_count=6553602.设置文件描述符限制: /etc/security/limits.conf* soft nofile 65536* hard nofile 131072* soft nproc 2048* hard nproc 4096&&1和2的配置,可以等到启动时候报错,再修改(可以清晰地知道1、2在处理什么问题)3.es不允许root用户启动,修改用户和分组chown user1.
2021-07-27 15:48:17 3813
原创 ShardingJDBC之分片策略、数据脱敏(4.x)
具体简介就不多逼逼,直接上代码。 private ShardingRuleConfiguration buildShardingRuleConfiguration(){ /** * 配置表规则 */ TableRuleConfiguration orderTableRuleConfiguration = new TableRuleConfiguration("t_order","db${0..2}.t_order_${1..2}"); // 配置分库策略(
2021-07-24 17:09:38 1492
原创 spring cloud alibaba之sentinel
好久没写,老规矩,直接上代码。这里不详细讲解整合过程,相信大家根据官网可以很快的上手。重点说下遇到的坑!yml文件:server: port: 1006spring: application: name: order-server cloud: sentinel: datasource: ds: nacos: username: nacos password: xxx
2021-07-06 18:48:26 226
原创 Mysql常用命令
#查询字段名和注释 select COLUMN_NAME,COLUMN_COMMENT from information_schema.COLUMNS where table_name = '表名' and table_schema = '库名' order by ordinal_position#查询整个内容select * from information_schema.COLUMNS where table_name = '表名' and table_schema = '库名' order ..
2020-12-24 13:46:09 353
转载 lucene之倒排索引【ES】
问题:1.都说倒排索引提升了搜索的速度,那么具体采用了哪些架构或者数据结构来达成这一目标2. ES为什么比Mysql快 Lucene中实际的索引结构图举例详解:ID是文档id,那么建立的索引如下:>name>age>sexPosting List可见为每个 field 都建立了一个倒排索引。Posting list就是一个int的数组,存储了所有符合某个term的文档id。实际上,除此之外还包含:...
2020-10-31 11:00:43 916 1
原创 分布式调度之Quartz
/** * @Author: rhb * @Date: 2020/9/29 19:22 * @Description: quartz核心配置类 */@Configurationpublic class QuartzConfig { @Value("${quartz.driverClassName}") private String driverClassName; @Value("${quartz.url}") private String url; .
2020-09-30 16:14:37 562
原创 Mysql事务:释放当前锁
查看当前运行事务:SELECT a.trx_id, a.trx_state, a.trx_started, a.trx_query, b.ID, b.USER, b.DB, b.COMMAND, b.TIME, b.STATE, b.INFO, c.PROCESSLIST_USER, c.PROCESSLIST_HOST, c.PROCESSLIST_DB, .
2020-09-14 09:30:58 1051
原创 Mysql事故:Lock wait timeout exceeded; try restarting transaction
错误描述:[Err] 1205 - Lock wait timeout exceeded; try restarting transaction场景描述:多线程场景下,先删除再更新操作引发的事务锁超时。解决思路:下述是排查所需SQLmysql排查:>查询当前事务select * from information_schema.innodb_trx>查询当前锁SELECT * FROM information_schema.INNODB_LOCKS;>查询当前执行
2020-08-20 20:04:22 1801
原创 Redis之Key值遍历
话不多说,先上码 @Test public void test12(){ Jedis jedis = new Jedis("x.x.x.x", 6379); jedis.auth("xxx"); long start = System.currentTimeMillis(); String cursor = "0"; do { ScanParams scanParams = new
2020-08-06 20:50:13 1258
原创 git提交错误
问题描述:代码拉取报下述错误error: inflate: data stream error (incorrect header check)error: unable to unpack b20beb19fa94654cadb04921063235a4414fec08 headerfatal: cannot read existing object info b20beb19fa94654cadb04921063235a4414fec08fatal: index-pack failed解决
2020-07-21 15:58:42 1589 1
原创 SpringCloud之Zipkin搭建
这几天搭建zipkin,发现自己搭建服务文档都不是全面,官网也推荐使用提供jar包直接启动部署,很多博客也都是jar包启动,或者配合docker搭建,本着自己搭建的想法,立马上手。项目环境:SpringCloud Greewich.SR5版本、JDK1.8、Maven3.6。(其他相关组件也已经搭建投入使用)maven项目主要是pom文件和yml文件的配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http:/
2020-07-17 10:47:29 496
原创 JAVA的SPI
Java SPI 思想分析:1. 当我们的系统里面抽象的各个模块,往往有很多不同的实现方案,比如日志处理模块、xml解析模块、过滤器的模块等,一般我们模块之间是基于接口编程的,模块之间不会对具体实现类进行硬编码。一旦代码里涉及到具体实现类时,就违反了可插拔的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。Java SPI 就是提供了这样一种机制:为某个接口寻找服务实现的机制。2. spi规范约定:当服务的提供者,提供了服务接口的
2020-06-19 13:37:29 99
原创 Zk之Curator
基础API:@Slf4jpublic class CuratorBase { //zk服务地址 static final String zk_path = "x.x.x.x:2181"; //会话超时 static final int session_timeout=5000; /** * 创建客户端 * @return */ private static CuratorFramework createClient()
2020-05-11 16:51:58 248
原创 分布式文件存储:FastDFS安装与配置
FastDFS的安装与配置 环境: ubuntu13、nginx12、FastDFS5 相关准备:nginx.tar.gz、FastDFS.tar.gz、fastdfs-nginx-module.tar.gz、libfastcommon.tar.gz 安装常用依赖包 sudo apt install build-essential 安装libfastcommon tar -zxvf libfastcommonV1.0.7.tar.gz
2020-05-09 01:01:45 266
转载 Maven依赖
一:依赖范围Maven在编译项目主代码的时候需要使用一套classpath。其次,在编译和执行测试的时候会使用另外一套classpath。最后,实际运行Maven项目的时候,又会使用一套classpath。所谓的依赖范围就是用来控制依赖与这三种classpath(编译、测试、运行)的关系,Maven有以下几种依赖范围:compile:编译依赖范围。如果没有指定,默认使用该依赖范围。使用...
2020-04-09 23:32:43 435
转载 B-Tree与Hash索引
B-Tree:(数据区+指针区+二分查找)B-tree索引能够加快访问数据的速度,因为存储引擎不再需要经行全表扫描来获取需要的数据,取而代之的是从根节点开始搜索。根节点的槽中存放了指向子节点的指针,存储引擎根据这些指针向下查找。通常比较节点页的值和要查找的值可以找到合适的指针进入下层子节点。B-tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。如上图,是一...
2020-04-01 16:20:28 430
原创 权限管理:shiro
图一: shiro整体架构功能图二: shiro架构API实现方式@DependsOn(value="springUtils")@Configurationpublic class ShiroCoreConfig { @Autowired private RedisProperties redisParam; public static final String...
2020-03-17 15:45:56 193
原创 SpringCloud之Hystrix
功能点阐述(编程式、Annotation)创建请求命令(同步执行、异步执行、响应式执行)。 callback回调,也称服务降级(大概率场景:写数据不需要降级,读数据降级处理-指引用户重新请求) 异常处理(异常传播-ignoreException,异常捕获-callback(Param p,Throwable e)) 命令名称、分组以及线程池划分(commandKey、groupKey、t...
2020-03-11 22:30:18 103
原创 @ControllerAdvice深入浅析
最终目的:@ControllerAdvice的使用场景 源码解析-mvc请求中何时触发 源码解析-mvc请求中如何触发,如何调用到@ControllerAdvice定义的处理器。 最主要的: mvc中HandlerInterceptor(拦截器)、RequestparamResolver(请求参数解析器)、ResponseParamConverters(响应参数转换器)、Glob...
2020-03-05 20:33:26 220
原创 Pgsql之触发器使用
使用示例: 需求描述: 当读者状态更新的时候,保存状态更新的时间。 需求场景: 系统开发基本完成,处于维护阶段 思路: 由于系统已经完成,代码层面很难兼顾找寻所有状态修改的地方,即便找到,修改起来也是一件繁琐的事。首先,思考AOP编程(很难进行拦截处理),其次数据库DB层面(决定使用触发器处理)。-- hb.rselect * from lt_dzheinfo orde...
2020-02-27 13:40:03 2414
原创 MVC源码解析之doDispatch执行流程
之前也已经总述过:AOP执行原理、SpringMvc执行流程,但总觉的有些点说的含糊不清,后续就把含糊不清的点,细致的讲解一下。现在先说请求核心处理doDispatch()方法。上图是默认容器启动后IOC装载的:HandlerAdapters和HandlerMapping(有印象,后续用)。protected void doDispatch(HttpServletReq...
2020-01-15 10:25:06 432
原创 HttpClient代理
@Test public void test18(){ CloseableHttpClient client = HttpClients.createDefault(); //*.*.*.*:代理ip HttpHost proxy = new HttpHost("*.*.*.*",9999); RequestConfig config ...
2020-01-14 16:14:34 235
原创 Solr之Facet、Group的使用和区别
facet和group都是用于分组的,facet倾向于统计,group倾向于SQL中group by(有详细的组内数据)。下面两张表是常用的属性列表:Group参数 参数 类型 说明 start 整数 对分组的组进行分页 rows 整数 对分组的组进行分页 sort 排序算法 group on(代码层面是boole...
2020-01-02 15:45:55 580
原创 SolrJ的使用
@Service@Transactionalpublic class SearchServiceImpl implements SearchService { private SolrClient solr_jdbook; @PostConstruct public void init(){ solr_jdbook = new HttpSolrClient.Builder(...
2019-12-30 19:42:23 196
转载 事务之四种隔离级别
数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工...
2019-12-26 22:47:03 306
原创 事务总述
事务引入缘由: 并发情况下对数据库的连续操作进行管理。重点目录:事务特性(ACID): 原子性、一致性、隔离型、持久性 事务的隔离级别 事务的传播机制。 @Transactional标签的使用 @Transactional标签不作用@Transaction不起作用解决方法 事务嵌套,项目示例异常: Transaction silently rolled back because...
2019-12-26 17:46:15 207 1
原创 solr7.4-log4j、中文分词
> log4j错误 FileNotFoundException: 修改启动文件: solr-7.4.0\bin\solr.cmd: "file:"替换为"file:///"> 配置中文解析器: 1. 下载添加依赖包至:solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib下。 2. 创建并存放相关配置文件至: solr-7.4.0...
2019-11-29 17:57:41 214
原创 solr7.4-DIH
常用命令:>命令终止、增量、全量、重新加载DIH配置、查询状态,返回文档创建数,文档删除数等状态信息http://localhost:8389/solr/book/dataimport?command=aborthttp://localhost:8389/solr/book/dataimport?command=delta-importhttp://localhost:8389/s...
2019-11-29 16:24:30 119
原创 Solr基础
1.1 目录结构 /bin 运行文件 /contrib 插件 /dist 相关运行jar包 /docs 相关API文档 /example 配置样例 /licenses 相关证书 /server Solr运行核心文件1.2 常用命令(单节点) solr start -p 8983 启动端口8983的solr服务 solr restart -p 8983 重启...
2019-11-27 17:20:38 209
solr7.4-ik.rar
2019-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人