logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Java(3)之BIO与NIO的区别详解

最近大概看了ZooKeeper和Mina的源码发现都是用Java NIO实现的,所以有必要搞清楚什么是NIO。下面是我结合网络资料自己总结的,为了节约时间图示随便画的,能达意就行。简介:BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。NIO...

设计模式(17)之组合模式

一、前言在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣服与衣柜、以及厨房中的锅碗瓢盆等。在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。例如我们要解决这样子的一个需求问题:学校院系展示需求,编写程序展示一个学校院系

#设计模式#java#组合模式
SpringCloud(9)之@EnableDiscoveryClient 注解如何实现服务注册与发现

一、前言在新的2020年,Eureka社区网站已经公布了对Eureka2.0版本的更新,但是Eureka1.0版本仍然可以使用,那现在主流的服务注册中心看下图:我们在每个引导类上都使用了@EnableDiscoveryClient这个注解,这个注解的作用是让该服务放注册中心注册和从注册中心获取其他服务。那它内部是如何实现的呢?今天我们就来聊聊@EnableDiscoveryClient注解是如何进

#eureka#consul
SpringCloud(18)之Sleuth +Zipkin链路追踪

Zipkin是一个开放源代码分布式的跟踪系统,它可以帮助收集服务的时间数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。每个服务向zipkin报告计时数据,zipkin会根据调用关系通过ZipkinUI生成依赖关系图,展示多少跟踪请求经过了哪些服务,该系统让开发者可通过一个web前端轻松地收集和分析数据,可非常方便的监测系统中存在的瓶颈。它可以帮助收集服务的时间数据,以解决微服

文章图片
#spring cloud#spring
SpringCloud(19)之Skywalking应用上篇

Skywalking是一个可观测性分析平台和应用性能管理系统,它也是基于规范、开源的AMP系统。Skywalking提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。支持JavaNetCorePHPNodeJSGolangLUA, c++代理。支持Istio特使服务网格SkyWalking核心功能:服务、服务实例、端点指标分析;服务拓扑图分析;服务、服务实例喝端点SLA分析;慢查询

文章图片
#skywalking
SpringCloud(15)之SpringCloud Gateway

主要介绍SpringCloud Gateway的工作原理以及过滤器、动态路由、限流、跨域等的使用

文章图片
#spring cloud#gateway
TortoiseGit的本地使用(图文详细介绍)

我上一篇的文章中已经介了什么是git以及git的安装,这一次我想介绍一下TortoiseGit的本地使用。一 ,什么是TortoiseGit?TortoiseGit是一个开放的,为git版本控制系统的源客户端。像一个普通的文件服务器,除了会记得您有史以来的文件和目录的每一个变化外,还可以恢复您的文件的旧版本,并研究如何以及何时改变了历史数据,谁改变了它。TortoiseGit其实就

#git#服务器
SpringCloud(5)之分布式锁实现

01为什么用分布式锁在讨论这个问题之前,我们先来看一个业务场景:系统A是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会给用户下单。由于系统有一定的并发,所以会预先将商品的库存保存在redis中,用户下单的时候会更新redis的库存。此时系统架构如下:但是这样一来会产生一个问题:假如某个时刻,redis ...

#分布式
Mybatis之TypeHandler使用教程

1.TypeHandler概念 TypeHandler,类型转换器,在mybatis中用于实现java类型和JDBC类型的相互转换.mybatis使用prepareStatement来进行参数设置的时候,需要通过typeHandler将传入的java参数设置成合适的jdbc类型参数,这个过程实际上是通过调用PrepareStatement不同的set方法实现的;在获取结果返回之后,也需要将返回的.

到底了