自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (6)
  • 收藏
  • 关注

转载 SpringBoot2.0集成WebSocket,实现后台向前端推送信息

SpringBoot2.0集成WebSocket,实现后台向前端推送信息什么是WebSocket?WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。为什么需要 WebSocket?初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起,H..

2021-03-10 15:53:04 141

原创 Spring Boot 支持 HTTPS 如此简单,So easy!

这里讲的是 Spring Boot 内嵌式 Server 打 jar 包运行的方式,打 WAR 包部署的就不存在要 Spring Boot 支持 HTTPS 了,需要去外部对应的 Server 配置。支持 HTTPSSpring Boot 配置 SSL 很简单,只需要通过一系列的server.ssl.*参数即可完成配置,如下所示。application.propertie...

2019-07-29 17:49:11 289

原创 为什么分布式一定要有Redis?

考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。所以我斗胆以 Redis 为题材,对Redis常见问题做一个总结,希望能够弥补大家的知识盲点。本文围绕以下几点进行阐述: 为什么使用Redis 使用Redis有什么缺点 单线程的Redis为什么...

2019-07-12 18:25:41 148

原创 教你用 3 台机器搞定一个 Redis 高可用架构

基于内存的 Redis 应该是目前各种 Web 开发业务中最为常用的 key-value 数据库了。我们经常在业务中用其存储用户登陆态(Session 存储),加速一些热数据的查询(相比较 MySQL 而言,速度有数量级的提升),做简单的消息队列(LPUSH 和 BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将 Redis 存储以基础服务的...

2019-07-12 18:15:41 173

原创 编写自己的SpringBoot-starter

前言我们都知道可以使用SpringBoot快速的开发基于Spring框架的项目。由于围绕SpringBoot存在很多开箱即用的Starter依赖,使得我们在开发业务代码时能够非常方便的、不需要过多关注框架的配置,而只需要关注业务即可。例如我想要在SpringBoot项目中集成Redis,那么我只需要加入spring-data-redis-starter的依赖,并简单配置一下连接信息以及Je...

2019-06-28 14:51:57 95

原创 各大互联网公司技术博客汇总

1. 美团技术团队博客: 地址:http://tech.meituan.com/ 2.腾讯社交用户体验设计(ISUX) 地址:http://isux.tencent.com/ 3.京东设计中心 地址:http://jdc.jd.com 4.QQ游戏设计中心 地址:http://gdc.qq.com 5.百度搜索用户体验中心 地址:http:...

2019-05-13 15:33:56 717

原创 一道算法题(回溯+剪枝)

1.题目假设集合A有n个子集,每个子集有m个元素,元素都为正负数。找出任意相加为0的元素,将他们消掉,要求每次消掉的都是最大正数,且尽可能多的负元素。2.分析穷举行不通,因为穷举的时间复杂度将达到,不可能跑完。而贪心算法可以简化问题,但不具备完整的说服力,不过可借鉴它的思想。所以,最终可选择回溯并结合剪枝,这样平均时间复杂度下降很多,但实际计算与真实数据有很大关系。此外,为进一步解...

2019-04-19 15:51:16 334

原创 Redis里一个简单请求如何被处理

set text “hello world” 从进入服务器到输出结果,整个流程是怎样的?带着这个问题来看看源码。1、在命令进入服务之前,服务器需要先初始化好自己与这个场景相关的,两件事比较重要:先注册好所有支持的Redis命令 初始化并启动事件循环器所有的Redis命令先是被组织成一个table,里面包含每个命令的名称、对应处理函数、flag、调用次数等信息。// src/s...

2019-04-19 15:44:02 800

原创 白痴式搞懂什么是同步/异步/阻塞/非阻塞

前言在最近的一些面试中,跟应聘者聊了比较多关于“同步/异步,阻塞/非阻塞”相关的话题,发现大家对于这些概念的理解都比较模糊,甚至有的同学会反问“他们不就是同一个东西吗?”。所以借着这么一个机会,我想用一些尽量简单的例子,尽量简洁的语言来聊聊自己对于这些概念的看法。正文这篇文章想通过一个老王“候车”的案例来解释这些概念。同步阻塞放假了,老王回到了...

2019-04-19 15:32:17 171

原创 BIO和NIO的区别

BIO(同步阻塞):每一个IO请求都会有一个线程去处理,如果数据没有准备就绪,线程会一直等待。直到数据读取完毕线程才会释放,在此期间,进程不回去做任何其他任务,这种模式会浪费一定的线程资源。NIO(同步非阻塞):NIO的优点在于首先基于缓存读写文件,能够批量操作,然后用channel双向读写数据,减少每次打开断开流的资源消耗。引入selecore的概念,用一个线程管理多个通道,大大减少线程开销...

2019-04-16 11:58:17 7632

原创 微服务的理解

微服务的定义微服务是一种架构风格,其理念是把一个系统定义成多个微服务组成,每个服务都只关心自己的业务,而且很好的完成一件事情,微服务与微服务之间相互独立,互相不影响。这种思想延续了java高类聚的原则,每个类只负责完成自己的业务。微服务的演变单体架构传统的项目是以一个整体的方式呈现,整个系统打成一个jar包部署,这样的结构会毋庸置疑会存在一些问题。一是开发,所有的开...

2019-04-16 11:56:33 306

原创 分布式Session一致性入门简介

Session简介是什么?Session在网络中表示“会话控制”,用于存储特定用户所需的属性和其他的配置信息; Session表示一个特定的时间间隔,可以指用户从登陆系统到注销退出系统之家的时间。为什么出现?因为http 是一种无状态协议,如果没有Session的话,服务器无法识别请求是否来自同一个用户! 在一些业务场景中需要知道前面的操作和后台的操作是不是同一个用户的行为,即业务...

2019-04-16 11:44:26 82

原创 50道让你以后面试再也不怕被问到Redis的问题

1、什么是Redis?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结...

2019-04-16 11:22:48 280

原创 使用 Redis 有序集合实现 IP 归属地查询

工作中经常遇到一类需求,根据 IP 地址段来查找 IP 对应的归属地信息。如果把查询过程放到关系型数据库中,会带来很大的 IO 消耗,速度也不能满足,显然是不合适的。那有哪些更好的办法呢?为此做了一些尝试,下面来详细说明。构建索引文件在 GitHub 上看到一个 ip2region项目,作者通过生成一个包含有二级索引的文件来实现快速查询,查询速度足够快,毫秒级别。但如果想更新地址段或归...

2019-04-16 11:19:38 362

原创 Java性能优化:教你提高代码运行的效率

我认为,代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。然而为了解决这个错误,我们需要先自验证、再打包出待替换的class文件、暂停业务并重启,对于一个成熟的项目而言,最后一条其实影响是非常大的,这意味着这段时间用户无法访问应用。因此,在写代码的时候,从源头开始注意...

2019-04-16 11:12:30 320

原创 你真的了解String吗?

一、抛砖引玉​ 不知道大家在做面试题时是否会遇到关于String的题,记得校招时,楼主经常遇到String的题,有时候会很懵逼。先来看一个例子:public class StringTest { public static void main(String[] args) { String str1 = "hello"; String str2 =...

2019-04-11 10:49:47 285

原创 Java内存模型

sad

2019-04-11 10:43:43 84

原创 JVM调优的总结

JVM调优的总结堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置: java-Xmx3550m ...

2019-04-11 10:25:39 96

原创 JAVA常用注解

JAVA常用注解摘要:java引入注解后,编码节省了很多需要写代码的时间,而且精简了代码,本文主要罗列项目中常用注解。1 main方法前注解  @SpringBootApplication  @EnableDiscoveryClient  @EnableFeignClient  @EnableAsync2 Spring MVC相关  @RestController ...

2019-04-11 10:22:06 98

原创 JAVA匿名内部类使用

1.前言匿名内部类在我们JAVA程序员的日常工作中经常要用到,但是很多时候也只是照本宣科地用,虽然也在用,但往往忽略了以下几点:为什么能这么用?匿名内部类的语法是怎样的?有哪些限制?因此,最近,我在完成了手头的开发任务后,查阅了一下JAVA官方文档,将匿名内部类的使用进行了一下总结,案例也摘自官方文档。感兴趣的可以查阅官方文档(https://docs.oracle.com/javase/tu...

2019-04-11 10:12:53 251 2

原创 TCP“三次握手”

第一次握手做什么?请求端(客户端)会向服务端(被请求端)发送一个tcp报文,申请打开某一个端口。因为没有数据,所以这个报文仅包含一个tcp头。其中:SYN=1;当建立一个新的连接时, SYN标志变1。序号;序号用来标识从客户端向服务端发送的数据字节流。 此时客户端进入SYN_SENT状态。 第二次握手做什么?服务端收到客户端的SYN包,也会发一个只包含tcp头的报文给客户端。...

2016-10-14 15:28:02 166

unity3D api

Unity3D中文Api全

2016-10-21

ssi框架搭建demo

ssi框架demo,做好了基本的增删改查。

2016-07-22

mysql最全省市区

包含四级,省,市,区,街道,包含拼音注释,非常全,录入四万多条记录。

2016-07-22

Keil中文版

Keil中文版.rar 轻松编译C语句与汇编语句。

2014-09-17

物联网之传感器基础知

介绍了物联网中传感器的基础应用知识,有助于物联网初学者认知,使用。

2014-07-06

软件设计师知识点汇总(作弊版)

软件设计师知识点汇总,让你一次性通过软件设计师,很好

2014-06-20

空空如也

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

TA关注的人

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