自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

转载 Big Endian 和 Little Endian 详解

一、Endian的起源在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。1980年,Danny Cohen在其著名的论文”On Holy Wars and a Plea for Peace”中为了平息一场关于在消息中字节该以什么样的顺序进行传送的争论而引用了该词。该文中,Cohen非常形象贴切地把支

2020-12-14 19:56:45 24

原创 netty中handler的理解

前言在写netty服务端代码时,我们一般会定义handler如下:或者定义成这样看到这你能说出两者的区别吗?还是没有区别?正题我们先看下initChannel的调用时机:当客户端建立连接时,会调用initChannel方法,所以每建立一个连接,就会调用pipeline.addLast("netmsg", new MessageHandler());那区别也就出来了,假如是new MessageHandler()这种写法,就代...

2020-11-22 13:34:59 273 1

转载 Mars长连接管理

对长连的管理有两个方面,一个是心跳(HeartBeat),一个是重连(Reconnect)。这两个动作都是有策略性的。一般心跳会间隔性的发出一个很小的心跳包,通过服务端返回来判断连接是否健康。在网络断开会,会自动重连,一般遵循逐渐递增的方法,递增的策略有所不同。在Mars中,对这两个策略有更精细化的管理,在Mars中对App运行的状态分了两种1.前台活动状态(forground-active),前台状态10分钟以上,可以认为是App正常运行状态2. 后台活动状态(background-a

2020-11-13 17:12:10 43

转载 Protobuf3语法详解

定义一个消息类型先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。可以采用如下的方式来定义消息类型的.proto文件了: 1 2 3 4 5 6 7 syntax ="proto3"; message SearchRequest { string query =1; int32...

2020-11-11 11:19:18 158

原创 部署私有的turn/stun服务器

前言笔者在几年前就搞过webrtc,对于turn服务器这块没有做过记录,最近又要搞这个。做个记录。网上有搭建turn服务器的问题,期间遇到很多问题,我写下自己的成功案例吧。以下的搭建过程是经过测试,可以使用的。环境搭建环境是centos服务器。下载源码可以去github上下载,https://github.com/coturn/coturn在centos的opt目录操作wget https://github.com/coturn/coturn/archive/master.

2020-11-04 19:37:55 211 2

原创 mysql修改字段卡住问题总结

前言线上环境如何修改表字段才能保证服务的稳定运行呢?大概方法罗列:方案1:业务低峰期进行alter table操作。方案2:创建临时表、加字段、插入旧数据,增量数据插入和重命名表名。方案3:用第三方开源工具实现,具体实现步骤看链接:方案4:在从库进行添加字段操作,然后进行mysql主从切换注意事项:主从复制日志格式如果为row格式,添加的新列必须是在表的最后。参考文章:http://blog.itpub.net/15498/viewspace-2153012/笔者就是采用方案1

2020-10-29 21:07:24 634 2

原创 IM技术调研

协议选型选用什么网络传输协议(TCP/UDP/HTTP) ?udp协议虽然实时性更好,但是如何处理安全可靠的传输并且处理不同客户端之间的消息交互是个难题,实现起来过于复杂. 目前大部分IM架构都不采用UDP来实现。 HTTP http可以用来实现状态协议,离线消息用拉模式,避免 tcp 通道压力过大,影响即时消息下发效率。 IM进行图片聊天的时候: http能够很方便的处理 断点续传和分片上传等功能。 TCP: 维护长连接,保证消息的实时性, 对应数据传输协议.目的: 及时收发消息。综合考

2020-10-21 15:59:45 88 2

原创 ES常用操作笔记

创建索引模板以下参数配置定义官网都有介绍,这块就直接记录官网的地址,方便查阅。索引模板的具体参数参考官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/indices-templates-v1.html索引setting具体参数参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/index-modules.html#index-modules-set

2020-10-12 19:41:17 42

转载 MySQL-没有必要的varchar(255)长度及存储汉字问题汇总

起因最近在整理代码规范,按照之前oracle的习惯,定了以下的字段长度设定规范:名称字段:varchar(200) 较长的名称字段/简介字段:varchar(500) 特别长的描述字段: varchar(2000) 超过2000中文字的字段:text 为什么是200长度,而不是100或300,也是拍脑袋想的,类似DND里的房规。 但在被问起为什么不设置为经常见到的varchar(...

2020-05-08 13:42:15 1475 2

原创 使用Navicat将Excel数据导入mysql

前言其实这个功能挺简单,但是网上没有搜索到比较准确的文字,遂自己写一篇总结下,也方便别人。环境先叙述下我的环境,以免由于版本等问题,出现不成功,说我的文章不起作用。Navicat版本如下:mysql版本:5.7操作准备一份excel文件。准备一个待导入数据的表。首先在excel的头行加上数据库对应的字段。由于我的表是自增id,这块就去掉了id列。然后将exc...

2020-05-08 09:42:27 3039 9

原创 ElasticSearch安装及使用

前言网上关于ES的文章非常多,为什么还要去重复的写一篇呢?别的人终归是别人的,自己总结出来的看起来最方便。由于javaweb的框架非常之多,你冷落其中几个,过段时间就忘记了,只记得个大概,然后再搜索资料。何不自己总结好方便日后使用查看呢?简单介绍ES是一个强大的搜索引擎,它是基于lucene实现的,lucene被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。而且ES是开源...

2020-04-05 22:03:26 148

原创 Linux基础复习总结

前言对于linux,因为日常开发使用的不是太频繁,有些东西总是会忘记,遂写一篇总结。加深记忆,便于使用时查看。系统选用linux系统作为服务器的话,一般选用centos系列,为什么呢,首先是因为它是redhat旗下的开源版本,是商用免费的,其次它是没有界面的,直接命令行,所以性能和稳定性相比ubantu会好一些。一般选择稳定的7点几版本,如7.2.我使用的是centos7.7版...

2020-03-22 16:42:08 197

原创 MybatisPlus分页查询【如何使用自定义sql语句】

前言MybatisPlus结合了Mybatis和JPA的精华,让我们操作数据库非常的方便。具体的使用方式参考官网。在使用MybatisPlus时,对于分页传搜索条件这块甚是苦恼。因为分页方法MybatisPlus提供了两个。如下: /** * 根据 entity 条件,查询全部记录(并翻页) * * @param page 分页查询...

2020-03-04 20:51:42 3606 1

原创 【二】做一个秒杀系统【tomcat的并发】

前言第一篇文章介绍了高并发减库存的方法,接下来,我们分析下,自己服务器的并发到底能达到多少。搜索相关资料发现,很多都是一个固定的数量。显然不准确,今天就撸起袖子大干一场。构建一个服务想要测试就先准备一个tomcat秒杀服务,话不多说,直接通过springboot来快速构建一个服务。通过idea自动构建springboot的web工程,初始化完毕后,新建SecKillControll...

2020-02-18 16:02:39 326

原创 【一】做一个秒杀系统【高并发减库存】

前言疫情期间,闲来无事,空闲时间利用起来,秒杀系统走起。秒杀业务流程要做秒杀系统,先弄明白具体业务流程。用户点击秒杀按钮、跳转到订单页面、填写好订单信息后(地址、数量等信息)、点击提交订单按钮、生成订单。以上就是一个成功下单的基本流程。这里我们不关心前端的控制,只实现java后台。所以直接从用户点击提交按钮开始。概括为:用户点击提交订单按钮向后台发送请求。请求内容包括秒杀i...

2020-02-17 21:29:50 779 1

原创 AQS源码分析

前言最近非常着迷阅读源码,周末闲来无事,又把AQS【AbstractQueuedSynchronizer】过了一遍。网上有很多这方面的文章,为什么还要自己去写呢?一是为了加深记忆,二是为了方便日后查看,三是锻炼归纳总结的能力。有缘的读者可以大致看一下。或许有些帮助。对于初学者来说可能并不熟悉AQS,它是java.util.concurrent包下的工具类,日常开发中,很少有人去使用它,...

2020-01-11 22:01:09 72

原创 web項目打包后依賴module是如何存在的

为什么写这个问题今天在做架构设计时,出现了一个疑问,参考项目结构这是一个工程下的两个module,其中common-model是公共model类,device-manage是一个业务模块,可以单独发布,后续还会有order-manage业务模块。他们都会共用common-model模块中的类。这块产生一个疑问,当我发布device-manage模块时,common-model中的...

2020-01-06 16:01:23 57

原创 Docker安装及入门

环境说明本文使用centos7.7构建docker。Docker要求操作系统必须为64位,且centos内核版本为3.1及以上。安装docker安装依赖软件包yum install -y yum-utils device-mapper-persistent-data lvm2# 安装前可查看device-mapper-persistent-data 和 lvm2 是否已经安...

2019-12-02 21:41:09 43

原创 利用mycat搭建mysql集群

说明我的环境是centos7.7+mysql8,在不同版本主机及不同版本mysql命令不一样,如果想参考我的文章,尽量选择跟我一样的配置,这样可以省去一些麻烦,如果不一样,尽量理解思想,对于某个步骤的命令执行总是报错,或者找不到对应的文件,那就需要自己去网上搜索下对应版本的命令,不要死磕,会很浪费时间。如果对于centos的安装和配置不熟悉的话,参考我的另外一篇文章:https://blo...

2019-11-30 13:32:51 90

原创 使用centos7搭建zookeeper集群

下载安装vmware去官网下载的话需要注册才能下载,随便在网上找了一个15的版本,发现安装失败。网上的解决办法也是千奇百怪没有尝试。然后下载了14的版本,安装成功。安装centos7首先去阿里的镜像官网找到centos7相应版本下载,地址:https://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/下载镜像成功后。使用vmware打...

2019-11-27 09:59:16 92

原创 mysql事务隔离级别的研究

四种隔离级别概述1.未提交读(read-uncommitted)在一个事务中,可以读取到其他事务未提交的数据变化,这种读取其他会话还没提交的事务,叫做脏读现象,在生产环境中切勿使用。2.已提交读(read-committed)在一个事务中,可以读取到其他事务已经提交的数据变化,这种读取也就叫做不可重复读,因为两次同样的查询可能会得到不一样的结果。3.可重复读(repetable...

2019-11-19 17:03:19 53

原创 Mybatis源码分析

前言本文通过debug形式,来一步步分析mybatis源码。在开始分析前,我插入了入门demo,以便回忆下mybatis的基本使用。在此基础上,进行源码的分析。工具:IDEA入门demo新建maven工程打开IDEA,新建project,新建一个maven工程,填写项目名称等信息一直下一步即可。导入坐标打开pom.xml文件,依次导入mybatis、mysql驱动、ju...

2019-11-03 22:25:22 126

原创 关于医保你可能不了解的

前言今年年初,身边亲人得了大病,治病花了很多钱。前几天医保的报销款下来了,结合最近一年发生的事,说一下关于医保你可能不知道的,了解了这些知识,可能对你以后有帮助。医保分类以前医保分为:城镇职工医保:在正规公司就业的人员,单位都会给缴纳的医疗保险。 居民医保:适用于没有参加职工医保但是有当地户籍,包括在校学生、婴幼儿等,没有职工医保的老人也可参保。 新农合医保:是以大病统筹为主的...

2019-10-31 21:09:40 231

原创 redis知识整理

前言日常开发中经常使用redis,但每次项目基本只配置过一次,或者复制粘贴,对于从零搭建redis,其中的原理流程模糊不清,所以在这里做个梳理,日后回顾也很方便。Redis的官网打开比较慢,而且全英文对英文不好的同学看起来不方便,这块推荐去redis中文网查看官方文档,官网地址:http://www.redis.cn/。其实大部分内容官网都介绍的很清楚了,在这里只是对知识做一个梳理,方...

2019-10-22 11:11:10 687

原创 springmvc整理

前言日常开发中经常使用springmvc,但每次项目基本只配置过一次,或者复制粘贴,对于从零搭建springmvc,其中的原理流程模糊不清,所以在这里做个梳理,日后回顾也很方便。入门demo创建项目使用Idea工具,新建maven工程,选择maven模板webapp模板,写好工程名,一直下一步到finish。导入pom依赖工程初始化完毕后,打开pom.xml,导入需要的依赖...

2019-10-10 21:39:17 67

原创 SpringDataJpa使用详解

概述这里就不引用冠冕堂皇的介绍了。用我概括的话说。他就是一个类似hibernate,mybatis数据访问层的框架。官网有详细的介绍,戳这里Jpa是什么?他是一套规范,类似restful风格一样,都是一套规范。使用Jpa必须按照它的规范来操作数据访问。SpringDataJpa==Jpa规范+Hibernate底层为什么要用jpa笔者其实很喜欢用mybatis写sql...

2019-08-23 13:21:32 1788 5

原创 搭建spring框架时遇到的错误

Load balancer does not have available server for client这个错误一般是在使用feign调用服务时遇到,其实很简单,就是调用的服务不满足负载均衡需求,具体报错信息如下:Whitelabel Error PageThis application has no explicit mapping for /error, so you are...

2019-08-17 17:21:54 3740 3

转载 非常不错一片介绍auth2的文章

转载地址:https://www.cnblogs.com/bigben0123/p/8334824.html1美好的旧时光我经常怀念三十年前那美好的旧时光, 工作很轻松, 生活很悠闲。上班的时候偶尔有些HTTP的请求发到我这里, 我简单的看一下, 取出相对应的html文档,图片,发回去就可以了, 然后就可以继续喝茶聊天。我的创造者们对我很好, 他们制定的一个简...

2019-07-05 13:26:46 628

原创 Jwt的使用场景

什么是JwtJwt是JSON Web Tokens的简称,从单词可以看出它也是一种token,其实可以理解为一种生成token的框架或规范。既然也是token那我们可以换一种问法,token是什么?为什么要使用token?token是什么Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需...

2019-07-02 09:48:22 6806 8

原创 最简单的SpringBoot+Mybatis配置及简单测试

开发工具本文使用当下比较流行的IntelliJ IDEA开发工具。新建工程打开IntelliJ IDEA工具选择new project,弹出如下窗口:我们选择左侧的Spring Initializr,jdk要求1.8及以上。选择默认的Default下一步:写demo其实我们可以不改这些信息直接下一步,如果想改名字可以自己修改Group及Artifact,和最下边的pack...

2019-06-24 10:33:09 2199

原创 安装nodejs以及webpack

下载nodejs下载地址:这里。拿win10安装为例,直接运行下载好的msi文件。一直下一步安装即可。期间选择对应的安装盘符。最后点击finish。安装完成后,可以cmd打开命令行,输入node -v 来查看node的版本,同时可以通过npm -v 查看npm的版本。配置npm通过输入npm config ls会显示npm的默认配置如下:; cl...

2019-06-20 10:48:43 990

原创 String、new String()的知识点梳理

前言String str="1"和new String("1")的区别,其实是个老生常谈的问题,理解起来也挺简单,但是许多人还是很模糊。今天跟新人交流时发现他们对这块的认识也存在偏差,遂在这里系统整理一下String的相关问题。在叙述问题先,我们要先明白赋值和引用。因为这点对我们理解下边的代码很重要,不然很容易晕。参考这篇文章:https://blog.csdn.net/yz930618/...

2019-05-12 14:58:34 175

原创 使用5个线程计算数组之和

前言之前写过多线程累加计数,原理跟本篇类似,传送门累加计数比计算数组之和逻辑稍微简单一点,如果对于这块不熟悉的,可以先看下累加计数。基本思想已经在之前那篇文章里写过了,这里就直接贴代码了。这里分别通过自己创建线程来实现功能,还有通过线程池来实现功能。思想都差不多。只是代码写法略有不同。仅供参考。代码一:五个线程交替累加计算数组之和,这种方法其实不如单线程直接累加快,因为交替...

2019-05-08 11:13:38 1544

原创 从源码角度详细分析View的绘制流程

前言源码分析基于api27即android8.1版本。网上翻阅了很多篇view的绘制流程文章,基本全流程介绍的很少,或者中间有很大的断档不好衔接。本文从源码角度,每个方法的调用和跳转说的比较详细。文章比较长,因为是看源码,比较枯燥,可以分几次阅读。文章的意义:帮助自己和他人,从源码的角度梳理流程。读者可以跟着文章的流程,自己也走一遍源码。看源码的作用我觉得主要是帮助我们更加深入的理解a...

2019-04-26 17:31:03 137

原创 Windows Process Activation Service (WAS) 服务无法启动相关解决方案

起因:笔者在做.NET开发时,需要用到IIS(win10系统),但是点击启动就会弹出报错,无法启动WWW万维网服务。于是笔者去服务列表里找发现确实启动不起来,去网上搜索,多数人都说需要先启动这个服务。当我启动Windows Process Activation Service服务时,就会报错,大致错误描述是:系统找不到文件路径(The system cannot find ...

2019-03-08 09:37:32 11572 1

转载 SQLSERVER数据库性能优化【转载】

出处:https://blog.51cto.com/jimshu/1250066前言  我1998年第一次接触SQL Server 6.5 for Windows NT 4.0,当时的感觉就认为SQL Server只是一个功能强大的Excel文件。现在回想起来,当年抱着这样一种态度,我开发的那些应用程序应该是非常幼稚的,其性能可想而知。记得那时候随便查询一笔记录就要花费十几秒,已是司空见惯...

2019-02-27 13:25:48 171

原创 # SQLServer 复制数据库

SQLServer 复制数据库有时候我们要在一个数据库连接中,复制一个数据库到另外一个连接地址,或者复制一个数据库改一个名字。如何实现呢?复制表新建数据库在我们的目标地址,新建一个数据库。如图在弹出的窗口输入数据库,点击确定即可。导入表数据在新建的数据库中,右键,任务,导入数据在弹出的窗体中,选择好数据源和目标。选择需要复制的表。这里要注意,不要勾选视图,如果勾选了视图,复...

2018-11-30 10:48:54 216

原创 小程序入门(一)

前言:最近有需求,要用到小程序,在官网注册了一个个人小程序应用。下载了开发者工具。打开开发者工具后,新建一个普通的微信小程序,不要选择默认的云程序,代码会增加很多,不容易读代码。我们入门,还是选择普通小程序应用,然后输入你申请的小程序appid点击确定后就会新建一个小程序。读代码:目录结构:目录结构很简单:pages文件夹,utils文件夹,然后就是app相关文件。pages...

2018-11-05 14:59:30 89

原创 关于Excel导入SqlServer报错的解决

前言:近日,笔者用Excel向数据库导入大批数据时,报错,花了比较久的时间才找到解决办法。问题如下。问题:- 正在执行 (错误)消息错误 0xc020901c: 数据流任务 1: 源 - data1$.输出[Excel 源输出] 上的 源 - data1$.输出[Excel 源输出].列[Structure] 出错。返回的列状态是:“文本被截断,或者一个或多个字符在目标代码页中没有...

2018-10-26 17:07:43 3754 2

原创 找出两个字符串中相同的词语,返回一个分值

前言:由于笔者工作的需求,给定一个字符串,需要从一堆字符串中找出与其最相似的字符串,网络的一些算法发现跟自己的需求不匹配,于是自己写了一个,话不多说,请看下文。目标:给定两个字符串,能将两个字符串中相同词语的相似度返回一个分值。计分方式:分值跟次数的个数有关,具体举例如下:source="我有一个小毛驴,我从来都不骑"target="我哈一个哈哈哈,我从来哈哈哈"上...

2018-10-23 11:49:26 981 1

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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