自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (86)
  • 收藏
  • 关注

原创 基于 OpenRestry 部署 nginx+lua 实现流量定向分发

在上一篇中,我们在linux上部署了OpenRestry单个节点简单实现了hello word功能,使用OpenRestry的强大之处在于使用它和其他模块比如http等,使用它的lua脚本实现一些接口的转发,利用这个特性我们可以设想一下,假如我们使用OpenRestry来实现nginx集群的负载均衡该如何做呢?可以分两步,假如有多台机器,每台机器上都部署了nginx,那么只需要其中的一台作为转发...

2019-04-27 23:56:44 2510

原创 centos6.5 安装 OpenResty

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关比如说,流量分发,什么意思呢?在一些大型的电商系统架构中,对于有些访问特别频繁的接口,我们常常会通过多级缓存区实现,从而提高系统抗住并发的能力,也就是系统的高可...

2019-04-27 20:15:48 1058

原创 mybatis框架执行原理简单实现

mybatis实现数据库交互的原理反射+jdk动态代理我们在使用传统的JDBC做数据库交互的时候,要想对返回的结果进行处理,需要通过反射和结果集的游标进行层层解析,是不是觉得很麻烦,确实尤其当我们需要查询的结果变成我们自定义的对象的时候发现比较难做,这是因为jdbc查出来的结果并没有做orm的映射转化,需要我们手动进行封装,所以mybatis的使用,可以让框架帮我们解决这个事情,但mybati...

2019-04-27 09:45:41 2976

原创 java简单模拟实现数据库连接池

为什么要使用数据库连接池这个问题在一开始学习线程池或者整合ssm框架的时候经常会问自己这个问题,只知道这样使用可以在一定程度上优化程序的性能,提升系统的资源利用率,至于为什么这样使用一直没有搞明白。从原理上讲,池化是一种思想,设想把所有的资源集中在一个池子里,那样对于使用资源的人来说就很容易也很方便的取用了,而且池化另外一个好处就是一开始就把资源价加载好,而不是需要的时候再去创建,对于调用者来...

2019-04-23 23:58:46 2831 2

原创 zookeeper使用及模拟注册中心原理

什么是ZookeeperZookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(DistributedSynchronization)、命名服务(Naming Service)、集群维护(GroupMaintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不...

2019-04-21 14:02:58 1559

原创 SpringIoc 实现原理

什么是SpringIOCspring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring容器统一进行管理,从而实现松耦合“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,...

2019-04-20 16:44:33 209297 63

原创 spring编程式事务

事务是spring框架中一个核心的模块,事务的ACID特性想必对于学习java的同学来说都不陌生,对于spring,实现事务的底层原理其实很简单,就是通过AOP代理进行实现,而实现spring的AOP更底层的,就是使用反射机制完成的;举例来说,当你的方法上标注了@Service之后,spring怎么知道你这个类会被纳入到整个bean的容器中进行管理呢?如果在这个类下面的某个方法上面加了@Tran...

2019-04-20 12:18:06 17976 2

原创 Hystrix 线程池隔离与接口限流

认识HystrixHystrix是Netflix开源的一款容错框架,包含常用的容错方法:线程隔离、信号量隔离、降级策略、熔断技术。在高并发访问下,系统所依赖的服务的稳定性对系统的影响非常大,依赖有很多不可控的因素,比如网络连接变慢,资源突然繁忙,暂时不可用,服务脱机等。我们要构建稳定、可靠的分布式系统,就必须要有这样一套容错方法。本文主要讨论线程隔离技术。为什么要做线程隔离比如我们现在有...

2019-04-14 21:26:57 45010

原创 springboot整合Apollo

传统配置文件的问题在分布式应用中,比如像springcloud的微服务应用,随着业务模块的拆分越来越细,必然会导致配置文件越来越多,而且越来越复杂,一方面是带来了对于配置文件的集中管理不方便,而且对于开发人员来说,某个服务需要新增、修改自己的配置文件需要绕很大的圈子,修改完毕后,还需要审核,校验,权限,发布等一些列环节才能完成配置文件的操作,总体来说是比较麻烦的,Apollo带来的方便个人总...

2019-04-14 11:11:22 6089

原创 携程Apollo分布式配置中心搭建指南

Apollo配置中心介绍Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。Apollo支持4个维度管理Key-Value格式的配置:1、application (应用)2、environment (环境)3、cluster (集群)4、namespace (命名空间...

2019-04-13 19:19:23 1516

原创 架构初识之 —— 使用kafka进行商品维度化缓存解决方案

随着分布式,微服务越来越普遍,对开发的要求也在不断的增加,对架构的要求也提出了越来越多的要求,在那些分布式项目中,经常面临的一个问题就是,高效,解耦,举例来说,当一个小型电商网站越来越大的时候,单体架构必然满足不了日益增长的业务需求,就说当众多的流量一起涌入,你的下单接口怎么能够抗住成千上万的QPS呢?很显然,需要从架构上不断优化我们的项目结构,使用消息中间件对业务进行合理的拆分,使之模块化,不...

2019-04-13 14:56:39 10051

原创 Jwt简单使用

在分布式项目中,经常需要处理session共享的问题,解决的方式有很多,比如采用session或者cookie,或者redis进行存储都是解决方案,今天给大家介绍另一种比较轻量级的解决方式,就是使用jwt生成token,服务端进行加解密来处理;首先要了解一下jwt的三个基本术语,HeaderHeader是由以下这个格式的Json通过Base64编码(编码不是加密,是可以通过反编码的方式获取到...

2019-04-11 23:00:35 9568 1

原创 nginx配置访问本地静态资源

nginx作为一款高性能的服务器,用途很多,除了可以做后端服务器的代理,负载均衡之外你,还有一个用途就是做静态资源的缓存服务器,比如在前后端分离的项目中,为了加速前端页面的响应速度,我们可以将前端的相关资源,例如html,js,css或者图片等放到nginx指定的目录下,访问的时候只需要通过IP加路径就可以实现高效快速的访问,下面说说如何在windows下使用nginx作为静态资源服务器,1、......

2019-04-11 18:07:39 128930 10

原创 windows安装mysql 5.7

下面记载一下自己在本地安装mysql5.7的过程以及其中遇到的一点二坑爹的问题,希望对看到的小伙伴有所帮助,1、官网下载mysql,选择对应的版本,我这里选择的是5.7版,2、下载到本地的某个目录后进行解压,解压完毕,进入到这个目录中,二进制安装需要创建一个配置文件,即my.ini,3、下面是my.ini的配置文件信息,[mysql]# 设置mysql客户端默认字符集default...

2019-04-11 12:31:34 7127

原创 spingboot整合netty实现单聊整合实现

在前几篇中,我们完成了netty和springboot的整合,大致领略了一下netty作为web通讯服务器的魅力,据我所知,netty在不少做聊天应用型的公司里面使用很广泛,主要还是得益于netty底层的实现原理对于高并发性能的良好支持和扩展,以及netty可定制化的API组件和其成熟的使用场景,当然,你也可以选择使用诸如socketJS或者原生的socket来实现聊天的功能,但总体来说都不如ne...

2019-04-08 22:44:03 3969 6

原创 mybais逆向工程快速生成实体和基本xml

在ssm或者使用mybatis的项目中,如果有大量的表需要建设实体到数据库的表映射关系,在程序中一个个手动创建对象是很费时间的事情,mybatis提供了一个很好用的插件可以帮助我们快速生成基本的实体对象到数据库的表映射以及xml文件,下面就看看具体的配置,1、pom依赖文件,<properties> <project.build.sourceEncoding>UTF...

2019-04-07 22:40:12 7003

原创 Keepalived + Nginx 实现高可用 Web 负载均衡

在实际项目中,为了保证服务的高可用性,nginx单点是不行的,因为一旦nginx挂了,没有后备节点顶上去,web服务将会处于不可用状态,因此为了确保服务的高可用性,我们需要把nginx也做成类似于集群的部署;而nginx做集群化部署的比较好也是比较成熟的方案就是使用keepalived,先简单说说keepalived,Keepalived是一个免费开源的,用C编写的类似于layer3, 4 ...

2019-04-07 21:53:47 8118

原创 linux下安装nginx

nginx作为一款高性能的服务器,可以用作反向代理、负载均衡的服务器,也可以单独作为服务器使用,在windows下安装nginx非常简单,只需要进入包双击一下exe文件即可,在linux下相对麻烦点,但实际生产中基本上都是在linux下使用的,下面来说说linux下如何安装nginx,我这里的环境是 centos6.5,其他的版本例如centos7也是可以的,1、首先上传nginx需要的组件包...

2019-04-07 16:01:43 6959

原创 java垃圾回收理解与算法

垃圾回收机制概述Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。ps:内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂数据结构的一般情况...

2019-04-06 21:45:34 6886

原创 深入理解jvm和jvm基本调优参数

Java虚拟机原理所谓虚拟机,就是一台虚拟的机器。他是一款软件,用来执行一系列虚拟计算指令,大体上虚拟机可以分为:系统虚拟机和程序虚拟机, 大名鼎鼎的Visual Box、Vmare就属于系统虚拟机,他们完全是对物理计算的仿真,提供了一个可以运行完整操作系统的软件平台。程序虚拟机典型代码就是Java虚拟机,它专门为执行单个计算程序而计算,在Java虚拟机中执行的指令我们成为Java自己码指令。...

2019-04-06 21:33:13 26028

原创 高并发场景下的缓存 + 数据库双写不一致问题分析与解决方案设计

在实际业务中,经常碰见数据库和缓存中数据不一致的问题,缓存作为抵挡前端访问洪峰的工具,用的好的话可以大大减轻服务端压力,但是在一些场景下,如果没有控制好很容易造成数据库和缓存的数据不一致性,尤其是在并发环境下,这种情况出现的概率会大大的增加,为什么会出现这个问题呢?我们来简单分析一下。1、页面发起一个请求,请求更新某个商品的库存,正常的流程是,如果没有缓存,直接更新数据库即可,如果有缓存,先删除...

2019-04-06 20:41:04 4508 13

原创 解决 mysql 树形结构插入数据查询死循环问题

在项目中,大家可能会遇到这样一个问题,就是当你操作那些具有上下级的树的表的时候,如果是单纯的父子级关系,可能不会碰见这个问题,但是如果这个看起来具有树形结构的表形成闭环的时候,问题就来了,我遇到的结果就是,一旦碰到这样的情况,就是页面一直卡在那里,对应着后台就是,要么程序死循环,要么数据库死循环,直到系统卡死崩溃。这个问题很是头疼,在网上找了不少资料没有发现真正能够解决我的问题的,究其原因,还是...

2019-04-06 19:08:58 2916 1

spring aop实现接口参数变更前后对比和日志记录

spring aop实现接口参数变更前后对比和日志记录完整代码,拿到项目代码,只需要做数据库连接的修改即可运行起来使用,代码案例详细,真是可靠,代码原文地址:https://blog.csdn.net/zhangcongyi420/article/details/138748857?spm=1001.2014.3001.5501

2024-05-12

接口幂等性解决方案完整代码

接口幂等性解决方案完整代码,基于token的方式解决幂等性问题,代码可以直接运行,只需要修改下数据库配置连接即可

2024-03-23

springcloud集成skywalking实现全链路追踪的完整代码

springcloud集成skywalking实现全链路追踪的完整代码,源码下载后简单修改下连接参数之后即可运行

2024-01-07

springboot对接skywalking详解

springboot对接skywalking详解,从skywalking的安装部署,到基本使用,包括如何将springboot接入skywalking,dubbo微服务如何接入skywalking都有详细的案例,拿到代码看看而已直接运行

2023-12-31

mysql+es实现双写方案代码

mysql+es实现双写方案代码,通过此代码,可以直接运行并测试完整的流程,里面包括非常多的测试用例,拿来可以简单调整下配置参数即可使用

2023-11-04

spring webflux使用的详细代码

spring webflux使用的详细代码,包含了webflux的使用,内含详细的代码,以及与springboot的整合,并赋有完整的操作案例

2023-10-26

springboot多模块打包源码

springboot多模块打包源码,可以直接导入到本地进行打包验证,包含单工程构建打包以及多模块打包的过程,可放心使用

2023-08-03

springboot整合jetcache完整代码

springboot整合jetcache完整代码,包括本地缓存、redis缓存,以及多缓存同时使用

2023-07-22

springboot适配多数据源,多类型数据库代码

springboot适配多数据源,多类型数据库代码,内含有基于springboot适配多种类型的数据库解决方案,比如同时适配mysql,pg等,拿到之后简单修改一下配置可以直接运行即可;

2023-07-01

springboot通用限流代码

springboot通用限流代码,详细总结了基于springboot的常用的限流解决方案,比如集成guava,sentinel等,最后以插件化的方式引入,代码拿到后可以直接使用。

2023-07-01

springboot插件化开发源码包

springboot插件化开发源码包文件,导入到本地之后,按照文章的操作步骤,可以直接本地运行即可

2023-06-25

springcloud同时整合dubbo与openfeign

案例代码为springcloud-libaba整合dubbo同时也整合了openfeign,消费方可以通过两种方式调用服务提供方的接口,代码下载后简单修改下数据库链接可以直接运行起来,如果运行时有任何问题可以私信我;

2023-05-20

springboot整合sharding-jdbc完整代码

springboot整合sharding-jdbc完整代码,基本上涵盖了sharding-jdbc所有技术点,代码只需要简单修改下配置即可运行起来

2023-05-14

springboot整合lucence完整代码

springboot整合lucence完整代码

2023-04-15

sentinel 控制台安装包

sentinel 控制台安装包,可以直接运行

2023-04-15

nacos 1.4.2 安装包

nacos 1.4.2 安装包,包括linux和windows的两个

2023-04-15

springcloud整合openfeign完整代码

springcloud整合openfeign完整代码,可以直接运行

2023-04-15

springboot整合代码

springboot整合代码,可以直接运行

2023-04-15

springboot整合nacos完整代码

springboot整合nacos完整代码,可以直接运行

2023-04-15

springboot整合dubbo

springboot整合dubbo

2022-11-26

springboot 整合grpc

springboot 整合grpc

2022-09-04

springboot缓存一致性解决

springboot缓存一致性解决

2022-09-03

java 使用grpc的完整代码

java 使用grpc的完整代码

2022-08-21

springboot整合canal

在springboot中整合与使用canal

2022-02-23

springboot整合mongodb changestream代码

1、java客户端使用mongodb changestream代码 2、springboot整合mongodb changestream代码

2022-02-23

springboot整合clickhouse代码

springboot整合clickhouse代码

2022-02-23

sso单点登录代码.zip

掌握了授权码模式,再基于springsecurity 做单点登录的集成就是一件非常容易的事情

2021-11-21

code-dubbo.zip

灰度发布这个词对很多同学来说并不陌生,灰度的概念其实是非常广泛的,不能仅仅停留在服务器层面

2021-09-25

elas-job.zip

elastic-job动态任务配置

2021-09-12

SSO案例源码.zip

如今,互联网项目对于安全的要求越来越严格,这就是对后端开发提出了更多的要求,目前比较成熟的几种大家比较熟悉的模式,像RBAC 基于角色权限的验证,shiro框架专门用于处理权限方面的,另一个比较流行的后端框架是Spring-Security,该框架提供了一整套比较成熟,也很完整的机制用于处理各类场景下的可以基于权限,资源路径,以及授权方面的解决方案,部分模块支持定制化,而且在和oauth2.0进行了很好的无缝连接,在移动互联网的授权认证方面有很强的优势,具体的使用大家可以结合自己的业务场景进行选取和使用

2021-06-16

fastjson与springboot整合.zip

在项目开发中经常会碰到做文件上传的功能,一般来说,文件上传的步骤就那么几步,前台通过提交一个选中的文件,后端对文件做处理然后将文件上传至指定的地址,这个地址是一个真实的物理存储路径,可以是本地,也可以是fastdfs等其他的linux文件服务器

2021-06-16

spring-IOC代码

spring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring容器统一进行管理,从而实现松耦合

2021-06-16

wx-shiro.zip

以上为本篇要实现的一个基础认证与授权的业务模型,即完成一个用户从注册,登录到调用服务端一个接口的完整过程

2021-05-30

redis-dinners.zip

微服务安全框架整合代码,基于springcloud + spring-security

2021-05-23

积分排行榜代码.zip

redis实现的好友关注,共同好友,积分排行榜功能

2021-02-28

shardingJdbc功能代码

shardingJdbc

2021-02-21

zipkin_rabbitmq链路追踪.zip

zipkin_rabbitmq链路追踪

2021-02-21

rabbitmq代码.zip

rabbitmq相关代码,死信队列,延迟消息等

2021-02-21

rocketmq使用.zip

rocketmq使用,事务消息等

2021-02-21

springboot整合redis.zip

springboot整合redis

2021-02-21

空空如也

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

TA关注的人

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