- 博客(98)
- 收藏
- 关注
原创 一、Nginx的安装
链接:https://pan.baidu.com/s/16R0MV13gN5mxu2lpY72y1w。选择稳定版本中的最新的版本 nginx-1.24.0。--来自百度网盘超级会员V7的分享。
2023-10-08 10:01:16
184
原创 redis 分布式锁,过期时间一分钟
// 分布式锁,过期时间一分钟 boolean lock = redisUtil.setNX(CommonConstants.KEY , "1", 60); if (!lock) { throw new ErrorCodeException("您的操作过于频繁,请稍后再试"); } public boolean setNX(String key, String value, Long expire) { ...
2022-04-25 14:40:14
1513
1
原创 RedisUtil
import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Component;import javax.annotation.Resource;import java.util.List;import java.util.Map;import java.util.Set;import java.util.concurrent.TimeUnit;/** * .
2022-04-25 11:42:25
500
原创 redis-从100000开始生成自增id
/** * 生成自增id * * @return */ private Long getIncrementId() { try { Long redisIncrementId = redisManager.increment("key", 1); return 100000L + redisIncrementId; } catch (Exception e) { ...
2022-04-25 10:35:53
1369
原创 四、JAVA使用企业微信机器人发送群消息
1.如何在企业微信群中创建一个机器人2.企业微信机器人发送群消息2.1相关的api文档2.2java需要引入的jar包2.3相关代码实现2.4测试
2022-03-08 17:26:21
2686
2
原创 三、操作数据库遇到的问题
1.1场景介绍一般的系统都有这么几张表,用户表(sys_user)、角色表(sys_role)、权限表(sys_permission),并且存在用户角色关联表(sys_user_role),角色权限关联表(sys_user_permission)。当建立一个角色的时候,往往需要绑定好几个权限,这个时候前端使用的是下拉框,绑定的关系一般放在中间关联表中。并且该关联表一般会设置唯一键,通常是两个表的id组成,并且对应的关系会有一个字段表示是否删除。有这么一个场景:新建角色...
2022-02-22 19:22:04
1060
原创 一、Jdk常用lambda
import java.math.BigDecimal;public class Product { private Long id; private Integer num; private BigDecimal price; private String name; private String category; public Product(Long id, Integer num, BigDecimal price, String name.
2022-02-16 15:21:45
200
原创 零、一些常用的英文名称
十二星座英语英文名字: 白羊座(Aries) 金牛座(Taurus) 双子座(Gemini) 巨蟹座(Cancer) 狮子座(Leo) 处女座(Virgo) 天秤座(Libra) 天蝎座(Scorpio) 射手座(Sagittarius) 摩羯座(Capricorn) 水瓶座(Aquarius) 双鱼座(Pisces)...
2022-02-01 22:32:51
8660
原创 一、Sharding-JDBC 分库分表入门(上)
1.概述1.1分库分表是什么小明是一家初创电商平台的开发人员,他负责卖家模块的功能开发,其中涉及了店铺、商品的相关业务,设计如下数据库: 通过以下SQL能够获取到商品相关的店铺信息、地理区域信息: SELECT p.*,r.[地理区域名称],s.[店铺名称],s.[信誉] FROM [商品信息] p LEFT JOIN [地理区域] r ON p.[产地] = r.[地理区域编码] LEFT JOIN [店铺信息] s ON p.id = s.[...
2021-10-11 22:46:36
304
原创 一、RabbitMQ入门
1.MQ的基本概念2.RabbitMQ的安装和配置3.RabbitMQ快速入门4.RabbitMQ的工作模式5.Spring整合RabbitMQ
2021-10-06 19:05:04
919
原创 Zookeeper
1.概述Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务。Zookeeper 翻译过来就是 动物园管理员,他是用来管 Hadoop(大象)、Hive(蜜蜂)、Pig(小 猪)的管理员,简称zk。Zookeeper 是一个分布式的、开源的分布式应用程序的协调服务。 Zookeeper 提供的主要功能包括:配置管理 分布式锁 集群管理2.Zookeeper安装与配置2.1下载安装2.1.1环境准备...
2021-10-06 18:54:16
459
原创 八、SpringCloud--配置中心
1.SpringCloud Config1.1什么是配置中心1.2SpringCloud Config 简介1.3SpringCloud Config入门1.3.1准备工作1.3.2搭建服务端程序1.3.3修改客户端程序1.3.4手动刷新1.4配置中心高可用1.4.1服务端改造1.4.2服务端改造1.4.3高可用1.5消息总线bus1.6消息总线整合配置中心2.开源配置中心Apollo2.1Apollo概述2.2Apollo的实现方式2
2021-10-05 15:36:54
600
原创 七、SpringCloud--链路追踪及Stream
1.微服务的链路追踪1.1微服务架构下的问题1.2Sleuth概述1.2.1简介1.2.2相关概念1.3链路追中Sleuth入门1.4Zipkin概述1.5Zipkin Server的部署和配置1.6客户端Zipkin + Sleuth整合1.7基于消息中间收集数据1.7.1RabbitMQ的安装和启动1.7.2服务端启动1.7.3客户端配置1.8存储跟中数据1.8.1准备数据库1.8.2配置启动服务端2.SpringCloud Stream
2021-10-05 14:38:08
131
原创 六、SpringCloud --网关GateWay
1.微服务网关GateWay1.1GateWay简介1.1.1简介1.1.2核心概念1.2入门案例1.2.1入门案例1.2.2路由规则1.2.3动态路由1.2.4重写转发路径1.3过滤器1.3.1过滤器基础1.3.2局部过滤器1.3.3全局过滤器1.4统一鉴权1.4.1鉴权逻辑1.4.2代码实线1.5网关限流1.5.1常见的限流算法1.5.2基于Filter的限流1.5.3基于Sentinel的限流(省)3.6网关高可用
2021-10-05 13:01:42
328
原创 五、SpringCloud -- 网关Zuul
1.微服务网关概念1.1微服务网关的概念1.2常见的API网关实现方式1.3基于Nginx的网关实现1.3.1Nginx介绍1.3.2正向/反向代理1.3.3准备工作1.3.4配置Nginx的请求转发2.微服务网关zuul2.1Zuul简介2.2搭建Zuul网关服务器2.3Zuul中的路由转发2.3.1面向服务的路由2.3.2简化的路由配置2.3.3默认的路由规则2.3.4Zuul加入后的架构2.4Zuul中的过滤器2.4.1ZuulF
2021-10-05 12:57:19
299
原创 三、SpringCloud--Feign
1.服务调用Feign入门1.1 Feign简介1.2基于Feign的服务调用1.3Feign和Ribbon的联系1.4负载均衡2.服务调回Feigh高级2.1Feign的配置2.2请求压缩2.3日志级别2.4源码分析3.服务注册与发现总结3.1注册中心3.2服务调用4.微服务架构的高并发问题4.1性能工具Jmetter4.1.1安装Jmetter4.1.2配置Jmetter4.2系统负载过高存在的问题4.2.1问题分析4.2.2线
2021-10-04 14:52:51
342
原创 二、SpringCloud--Eureka
1.服务注册Eureka基础1.1微服务的注册中心注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就这里找到服务的地址,进行调用。1.1.1注册中心的主要作用服务注册中心(下称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者的一个作用。注册中心一般包含如下几个功能: 1. 服务发现: 服务注册/反注册:保存服务提...
2021-10-04 14:43:54
276
原创 一、SpringCloud简介及快速入门
1.微服务基础知识1.1系统架构的演变随着互联网的发展,网站应用的规模不断扩大,常规的应用架构已无法应对,分布式服务架构以及微服 务架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 1.1.1单体应用架构Web应用程序发展的早期,大部分web工程(包含前端页面,web层代码,service层代码,dao层代码)是将所有的功能模块,打包到一起并放在一个web容器中运行。比如搭建一个电商系统:客户下订单,商品展示,用户管理。这种将所有功能都部署在一个web容...
2021-10-04 13:25:39
210
原创 二、NIO基础下
1.网络编程1.1非阻塞VS阻塞1.2Selector1.3处理accept事件1.4处理read事件1.5处理write事件1.6更进一步1.7UDP2.NIO vs BIO2.1stream vs channel2.2IO模型2.3零拷贝2.4AIO
2021-10-01 00:49:41
69
原创 一、NIO基础上
Non-Blocking IO 非阻塞IO1.三大组件1.1 Channel & Bufferchannel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入,要么是输出,channel 比 stream 更为底层。常见的 Channel 有:FileChannel DatagramChannel Socke...
2021-10-01 00:42:19
122
原创 二十三、解释器模式
1.概述如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。//用于两个整数相加public static int add(int a,int b){ return a + b;}//用于两个整数相加public static int add(int a,int b,int c){ return a + b + c;}//用于n个整数相加public static int add(Integer ...
2021-09-30 22:29:20
83
原创 二十二、备忘录模式
1.概述备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,很多软件都提供了撤销(Undo)操作,如 Word、记事本、Photoshop、IDEA等软件在编辑时按 Ctrl+Z 组合键时能撤销当前操作,使文档恢复到之前的状态;还有在 浏览器 中的后退键、数据库事务管理中的回滚操作、玩游戏时的中间结果存档功能、数据库与操作系统的备份操作、棋类游戏中的悔棋功能等都属于这类。 ...
2021-09-30 22:17:29
153
原创 二十一、访问者模式
1.概述 定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。2.结构 访问者模式包含以下主要角色:抽象访问者(Visitor)角色:定义了对每一个元素(Element)访问的行为,它的参数就是可以访问的元素,它的方法个数理论上来讲与元素类个数(Element的实现类个数)是一样的,从这点不难看出,访问者模式要求元素类的个数不能改变。具体访问者(ConcreteVisi...
2021-09-30 22:02:39
83
原创 二十、迭代器模式
1.概述 定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。2.结构迭代器模式主要包含以下角色:抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口。具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代器的实例。抽象迭代器(Iterator)角色:定义访问和遍历聚合元素的接口,通常包含 hasNext()、ne...
2021-09-30 21:44:06
104
原创 十九、中介者模式
1.概述一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定。例如在下左图中,有六个同事类对象,假如对象1发生变化,那么将会有4个对象受到影响。如果对象2发生变化,那么将会有5个对象受到影响。也就是说,同事类之间直接关联的设计是不好的。如果引入中介者模式,那么同事类之间的关系将变为星型结构,从下右图中可以看到,任何一个类的变动,只会影响的类本身,以及中介者,这样就减小...
2021-09-30 21:32:52
92
原创 十八、观察者模式
1.概述 定义:又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。2.结构 在观察着模式中有如下角色:Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象。Co...
2021-09-30 21:23:14
111
原创 十七、状态模式
1.概述通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果电梯门现在处于运行时状态,就不能进行开门操作,而如果电梯门是停止状态,就可以执行开门操作。 类图如下:代码如下:public interface ILift { //电梯的4个状态 //开门状态 public final static int OPENING_STATE = 1; ...
2021-09-30 20:11:24
93
原创 十五、命令模式
1.概述日常生活中,我们出去吃饭都会遇到下面的场景。定义: 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。2.结构命令模式包含以下主要角色:抽象命令类(Command)角色: 定义命令的接口,声明执行的方法。具体命令(Concrete Command)角色:具体的命令,实现命令接口;通常会持有接...
2021-09-30 15:51:36
109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人