自定义博客皮肤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 Farmer的博客

我们的独立站点为:https://www.cmsblogs.cn

  • 博客(131)
  • 资源 (1)
  • 收藏
  • 关注

原创 Redis数据结构-简单动态字符串

一、前言Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示,这样的好处是:获取存储的字符串长度时间复杂度从O(N)变为O(1)SDS的free属性就可以杜绝缓存溢出和 减少修改字符串时带来的内存重分配次数SDS的buf,len属性可以保证二进制安全兼容部分C字符串函数在Redis里面,C字符串只会作为字符串字面量

2021-08-06 20:30:48 268

原创 面试官:三年工作经验,你连序列化都说不明白?

什么是序列化、反序列化序列化:把Java对象转换为字节序列的过程。反序列化:把字节序列恢复为Java对象的过程。序列化的作用1、可以把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;(持久化对象)2、也可以在网络上传输对象的字节序列;(网络传输对象)序列化在Java中的用法在Java中序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,实现该接口只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来

2021-02-26 17:47:13 514

转载 你可能没用过这种方式的集合!new HashMap<K,V>(){{put(K,V);}};

一、HashMap的初始化1、HashMap 初始化的文艺写法HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器。普通青年一般会这么初始化:HashMap<String, String> map = new HashMap<String, String>();map.put("Name", "June");map.put("QQ", "2572073701");看完这段代码,很多人都会觉得这么写太啰嗦了,对此,文

2020-09-16 12:12:10 582

转载 MySQL百万级数据分页查询优化

前言当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。准备工作为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明。1、表名:order_history2、描述:某个业务的订单历史表3、主要字段:unsigned int id,tinyint(4) int type4、字段情况:该表一共37个字段,不包含text等大型数据,最大为v

2020-08-11 09:43:55 476

原创 恕我直言,你可能真没用过这些 IDEA 插件!

一、前言IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具。不是我说的喔,百度百科说的... IDEA 如此好用,插件库也是很强大的,俗话说:“工欲善其事必先利其器”,不安排几个插件都不好意思说你开发工具用的是 IDEA ,接下来将介绍插件的安装方式。二、IDEA 插件安装在使用插件之前,你需要了解 IDEA 的插件安装方式,安装 IDEA 插件是非常方便的,你只要知道插件的名字就可以直接安装, IDEA 插

2020-08-10 09:40:52 604

转载 用过好几个注册中心,你竟然不知道他们的区别?

前言服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。CAP理论CAP理论是分布式架构中重要理论 一致性(Consistency) (所有节点在同一时间具有相同的数据)

2020-08-07 09:26:11 1053

原创 Redis 的 KEYS 命令不能乱用啊

KESY 命令时间复杂度: O(N) , 假设Redis中的键名和给定的模式的长度有限的情况下,N为数据库中key的个数。Redis Keys 命令用于查找所有符合给定模式 pattern 的 key尽管这个操作的时间复杂度是 O(N), 但是常量时间相当低。例如,在一个普通笔记本上跑Redis,扫描100万个key只要40毫秒。命令格式 KEYS patternWarning: 生产环境使用 KEYS 命令需要非常小心。在大的数据库上执行命令会影响性能。这个命令适合用来调试和特殊操作,像

2020-07-29 14:13:15 3199

转载 概念解释:对称加密、非对称加密、公钥、私钥、签名、证书

楔子现在网络的安全性已经变得越来越重要,各位程序员在开发过程中或多或少都会遇到公钥、私钥、加密、签名等一些相关名词。这些概念比较杂乱,容易混淆,下面就来梳理一下这部分的内容。对称加密在重要的信息的传递过程中,人们总是希望信息不会被偷看、不会被篡改,伪造等。为了达到这个要求人们一直在不断努力着。电报加密使用的密码本,就是初代网络安全所使用的加密方式,用法为:发信时将内容翻译为密文发出,收到电报的一方,使用相同的密码本才能解密出正确的信息,否则看到的就是一堆乱码。这种传统的加密方式就叫做对称

2020-06-28 09:10:17 1215

原创 XStream学习手册

​一、前言1、XStream官网http://x-stream.github.io2、XStream是什么 XStream是一个简单的基于Java的类库,用来将Java对象序列化成XML(JSON)或反序列化为对象(即:可以轻易的将Java对象和XML文档相互转换)3、XSteam能干什么 XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字...

2020-06-04 10:20:07 3671

转载 你连微服务的网关都说不清楚,还天天鼓捣着要把项目拆分微服务?

​一、API网关的用处API网关我的分析中会用到以下三种场景。1、Open API企业需要将自身数据、能力等作为开发平台向外开放,通常会以rest的方式向外提供。最好的例子就是淘宝开放平台、腾讯公司的QQ开发平台、微信开放平台。Open API开放平台必然涉及到客户应用的接入、API权限的管理、调用次数管理等,必然会有一个统一的入口进行管理,这正是API网关可以发挥作用的时候。...

2019-12-30 14:34:38 207

转载 IDEA 解决 Maven 依赖冲突的高能神器,这一篇够不够?

​1、何为依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Maven的依赖机制会导致Jar包的冲突。举个例子,现在你的项目中,使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。但是A依赖的C的版本是1.0,B依赖的C的版本是2.0。这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本...

2019-12-28 22:50:04 649

原创 Centos7编译安装kafka-manager-2.0.0.2

一、kafka-manager简介项目地址为:https://github.com/yahoo/kafka-manager 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管...

2019-12-26 10:22:42 837

原创 Spring Cloud快速开发入门第十四篇---Api网关Zuul

本文是Spring Cloud专栏的第十四篇文章,了解前十三篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇—SpringCloud前言及其常用组件介绍概览Spring Cloud快速开发入门第二篇—使用并认识Eureka注册中心Spring Cloud快速开发入门第三篇—搭建高可用Eureka注册中心Spring Cloud快速开发入门第四篇—客户端负载均衡R...

2019-11-27 17:02:38 276

原创 SpringBoot2.x整合RabbitMQ实现回调确认、备份队列、死信

SpringBoot整合RabbitMQ官方地址:https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-amqp一、添加依赖 <dependency> <groupId>org.springframewor...

2019-11-15 16:58:07 6837 1

原创 RabbitMQ之消息追踪

一、前言在使用任何消息中间件的过程中,难免会出现某条消息异常丢失的情况。对于RabbitMQ而言,可能是因为生产者或消费者与RabbitMQ断开了连接,而它们与RabbitMQ又采用了不同的确认机制;也有可能是因为交换器与队列之间不同的转发策略;甚至是交换器并没有与任何队列进行绑定,生产者又不感知或者没有采取相应的措施;另外RabbitMQ本身的集群策略也可能导致消息的丢失。这个时候就需要有一...

2019-10-30 15:00:49 2839 1

原创 RabbitMQ的Federation和Shovel的使用

一、跨越集群的界限RabbitMQ可以通过3种方式实现分布式部署:集群、Federation、Shovel。Federation和Shovel可以为RabbitMQ的分布式部署提供更高的灵活性,但也提高了部署的复杂性二、Federation介绍与使用2-1、Federation的目标Federation插件的设计目标是使RbbitMQ在不同的 Broker 节点之间进行消息传递而...

2019-10-29 16:52:54 3809 1

原创 Centos7、Erlang-21.3、RabbitMQ-3.8.0 集群版安装

接上一篇:Centos7、Erlang-21.3、RabbitMQ-3.8.0 单机版安装一、集群的目的允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行 通过增加更多的节点来扩展消息通信的吞吐量二、Cluster集群搭建2-1、第一步将各个节点安装完毕参考:Centos7、Erlang-21.3、RabbitMQ-3.8.0 单机版安装2-2、第二步修改Li...

2019-10-24 17:37:05 4237 2

原创 Centos7、Erlang-21.3、RabbitMQ-3.8.0 单机版安装

一、前言首先安装了RabbitMQ,才能了解RabbitMQ以前了解过ActiveMQ,想着ActiveMQ和RabbitMQ差不多,看来是too young,安装RabbitMQ前提是需要有Erlang环境Erlang和RabbitMQ的对应关系:http://www.rabbitmq.com/which-erlang.html我所用的环境为Centos7,Erlang-21.3...

2019-10-24 17:14:06 4141 6

转载 花了一个星期,我终于把RPC框架整明白了!

RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。 远程通信协议:RMI、Socket、SOAP(H...

2019-09-11 11:07:54 4204

原创 Spring Cloud快速开发入门第十三篇---Spring Boot Admin服务监控

本文是Spring Cloud专栏的第十三篇文章,了解前十二篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心 Spring Cloud快速开发入门第四篇...

2019-08-19 11:46:48 409

原创 Spring Cloud快速开发入门第十二篇---消息总线Bus

本文是Spring Cloud专栏的第十二篇文章,了解前十一篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心 Spring Cloud快速开发入门第四篇...

2019-08-16 20:18:35 253

原创 Spring Cloud快速开发入门第十一篇---分布式配置中心高可用

本文是Spring Cloud专栏的第十一篇文章,了解前十篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心 Spring Cloud快速开发入门第四篇-...

2019-08-16 11:02:40 529

原创 Spring Cloud快速开发入门第十篇---分布式配置中心Config

本文是Spring Cloud专栏的第十篇文章,了解前九篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心 Spring Cloud快速开发入门第四篇--...

2019-08-15 16:32:22 364

原创 使用IDEA同时启动多个服务---Run Dashboard

在工程的.idea中找到workspace.xml,并找到RunDashboard在workspace.xml添加<option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set&g...

2019-08-14 11:57:42 1460

原创 Spring Cloud快速开发入门第九篇---分布式服务跟踪Sleuth

本文是Spring Cloud专栏的第九篇文章,了解前八篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心 Spring Cloud快速开发入门第四篇--...

2019-08-12 16:10:44 297

原创 Spring Cloud快速开发入门第八篇---Hystrix集群监控Turbine

本文是Spring Cloud专栏的第八篇文章,了解前七篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心 Spring Cloud快速开发入门第四篇--...

2019-08-08 18:05:46 397

原创 Spring Cloud快速开发入门第七篇---声明式服务调用Feign

本文是Spring Cloud专栏的第七篇文章,了解前六篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心 Spring Cloud快速开发入门第四篇--...

2019-08-07 16:52:11 263

原创 Spring Cloud快速开发入门第六篇---Hystrix仪表盘监控Hystrix Dashboard

本文是Spring Cloud专栏的第六篇文章,了解前五篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心 Spring Cloud快速开发入门第四篇--...

2019-08-07 16:12:25 424

原创 Spring Cloud快速开发入门第五篇---服务熔断Hystrix

本文是Spring Cloud专栏的第五篇文章,了解前四篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心 Spring Cloud快速开发入门第四篇...

2019-08-02 20:03:35 283

原创 Spring Cloud快速开发入门第四篇---客户端负载均衡Ribbon

本文是Spring Cloud专栏的第四篇文章,了解前三篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心一、Ribbon是什么Ribbon是一个...

2019-08-02 19:57:10 283

原创 Spring Cloud快速开发入门第三篇---搭建高可用Eureka注册中心

本文是Spring Cloud专栏的第三篇文章,了解前二篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心一、Eureka注册中心高可用集群概述在微服务架构的这种分布式系统中,我们要充分考虑各个微服务组件的高可用性问题,不能有单...

2019-08-01 18:05:11 539

原创 Spring Cloud快速开发入门第二篇---使用并认识Eureka注册中心

本文是Spring Cloud专栏的第二篇文章,了解前一篇文章内容有助于更好的理解本文:Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览一、SpringCloud快速开发入门SpringCloud是构建在SpringBoot基础之上的,首先我们创键一个服务提供者springcloud-service-provider1-1、创键提供者...

2019-08-01 17:18:02 337

原创 Spring Cloud快速开发入门第一篇---SpringCloud前言及其常用组件介绍概览

本文是Spring Cloud专栏的第一篇文章,了解本篇文章内容有助于更好的理解后面文章一、网站架构演变过程1-1、传统架构传统的SSH架构,分为三层架构 web控制层、业务逻辑层、数据库访问层。传统架构也就是单点应用,就是大家在刚开始初学JavaEE技术的时候SSH架构或者SSM架构,业务没有进行拆分,都写同一个项目工程里面,一般是适合于个人或者是小团队开发。...

2019-07-31 15:11:50 832 2

原创 使用Apache Commons FileUpload组件上传文件

引入依赖: <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</versi...

2019-07-17 13:55:51 924

原创 Java中使用POI导入导出工具类

依赖:<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency>...

2019-07-16 18:54:46 1295 4

原创 Spring MVC简介以及基本应用

一、Spring MVC前言介绍Spring MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活、松散耦合的 web 应用程序的组件。MVC 模式导致了应用程序的不同方面(输入逻辑、业务逻辑和 UI 逻辑)的分离,同时提供了在这些元素之间的松散耦合。 模型封装了应用程序数据,并且通常它们由 POJO 组成。 视图主要用于呈现模型数据,并且通常它生成客户端的浏览器可以...

2019-07-09 17:12:47 404

原创 SpringIOC和AOP简介以及基本使用

一、Spring 体系结构Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。1、核心容器核心容器由spring-core,spring-beans,...

2019-07-05 11:29:53 1494

转载 Mybatis Generator最完整配置详解

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-confi...

2019-07-04 09:16:51 122

原创 Mybatis Generator逆向工程的使用

MyBatis Generator简介MyBatis Generator(MBG)是MyBatisMyBatis和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG寻求对简单CRUD(创建,检索,更新,删除)的大部分数...

2019-07-02 19:27:21 349

原创 JDK静态代理、JDK动态代理、Cglib动态代理区别

一、代理模式介绍什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀。说白了经纪人懂吧,整不好就绿你的那种。二、JDK静态代理场景:比如西门庆找潘金莲,那潘金莲不好意思答复呀,咋办,找那个王婆做代理呀,然后就绿了大郎。。。第一步:定义一种类...

2019-07-02 11:42:37 1334 1

redis-desktop-manager-0.9.3.817.exe

redis-desktop-manager-0.9.3.817.exe

2019-03-06

空空如也

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

TA关注的人

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