自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 python基础语法

【代码】python基础语法。

2024-06-19 22:22:27 997

原创 4、springboot多环境配置

DEV:开发环境TEST:测试环境UAT\PROD:生产环境。

2022-12-16 17:27:42 443 1

原创 3、网关和BFF

网关与无线BFF的区别与理解;如果搭建简单网关;faraday网关的理念设计与实现;主流网关对比

2022-11-27 13:43:09 634

原创 2、云原生微服务实践-服务开发框架设计和实践

每个服务由两个模块组成,接口模块和服务模块,例如account-aip、account-svc,一般api接口模块上传到maven仓库进行管理,api为强类型客户端,其他服务调用相关服务的api即可。除了服务外还有config目录进行对私密文件的存储,使用spring的本地私密配置方式,config里面的私密控制不会被监听到版本控制。注意:返回类型如果根据泛型进行包装的,springfeign是无法解析的,因为编译之后的泛型会被擦除!注意:调用方与被调用方不能在同一个bean中。

2022-11-13 17:46:26 1474 1

原创 数组与链表

数组、链表的基本概念和存储结构以及区别,数组与链表使用时的注意细节

2022-11-10 13:00:13 609

原创 一、数据结构简介

数据结构与算法的关系、时间复杂度分析

2022-11-09 14:22:27 70

原创 1、云原生微服务实践-服务结构选型

早期建议使用单块优先,需要考虑企业业务和团队的发展,视情况进行解耦拆分。如果团队耦合性大影响团队效应,此时需要进行微服务的拆分。

2022-11-05 14:25:14 818

原创 SpringBoot基于AOP实现RocketMQ发送与消费

任何带有该注解的方法都会将发送mq。/*** @description: 带有该注解的方法将发送活动mq* @date 2022/9/1 下午2:10*/@Target({ElementType.PARAMETER, ElementType.METHOD}) //注解作用域@Retention(RetentionPolicy.RUNTIME)//注解运行时期}

2022-09-01 19:13:41 2961

原创 阿里云内容审核(企业项目全部使用流程)+全部代码流程+对返回内容封装

开通阿里安全内容管理账号,获取AccessKey_ID、AccessKey_Secret。

2022-08-13 22:26:57 3341

原创 k8s-核心实战

Deployment:更新无状态应用部署,比如微服务,提供多副本等功能;StatefulSet:更新有状态应用部署,例如redis,使得每次部署使用挂载技术保证数据一致,提供稳定的网络和内存,ip不会改变,在KubeSphere中提供可视化部署方式;DaemonSet:守护型应用部署,例如日志收集组件,保证个机器中有且只有一个;Job/CronJob:定时任务部署,比如定时清理垃圾,可以在指定时间内部署。...

2022-08-05 23:00:22 1144

原创 MySQL-多版本并发控制

mvcc在MySQLInnoDB中实现主要是为了提高数据库的并发性能,更好的去处理读-写冲突,做到即使有读写冲突也可以不加锁,非阻塞性并发读,这个读是指快照读,不是当前读。读取的是快照数据,不加锁的简单的select都属于快照读,可能并不是最新的数据,可能是历史版本,前提是隔离级别不是串行级别的,串行级别下的快照读可能会退化成当前读。事务用来查询存在undolog里的历史快照,提供行的可见性,innodb为每个事务构造一个数组,用来记录并维护系统当前活跃事务的ID(启动但还未提交)...

2022-08-01 23:16:37 302

原创 MySQL-锁机制

MySQL锁机制:协调并发访问某一资源的机制。

2022-08-01 23:15:42 103

原创 MySQL-数据库事务详解

一、事务的ACID特性二、事务的状态三、使用事务3.1、事务完成的过程3.2、显示事务3.3、隐式事务3.4、事务隔离级别3.4.1、事务问题3.4.2 SQL的隔离级别四、事务日志4.1、redo 日志4.2、undo日志...

2022-08-01 23:13:32 666

原创 MySQL-数据库设计规范

在规范化和性能可能会出现对立,可以通过表中添加冗余字段来减少搜索时间,或者插入计算列,方便查询。有些数据看似冗余,但是适合业务,需要优先业务,这时需要反范式化。3、ER模型图转换成数据表。...

2022-08-01 23:09:00 176

原创 MySQL-索引优化和查询优化

mysq查询优化、索引优化大全;mysq索引失效案例详解、汇总,mysql覆盖索引、索引下推原理

2022-08-01 23:07:26 346

原创 MySQL-慢查询日志

mysql慢查询日志处理流程以及原理;性能分析工具的使用。explain参数详解

2022-08-01 23:03:39 346

原创 MySQL-索引详解

mysql底层原理;mysql索引优化大全;mysql索引原理、数据页等详解;

2022-08-01 22:47:38 1618 1

原创 MySQL-执行流程+缓存+存储引擎

mysql最全执行流程,简单易懂;mysq存储方式以及底层数据结构;mysq存储引擎原理

2022-08-01 22:31:52 461

原创 MySQL-底层设置

mysql字符集设置、大小写设置、mysql服务器存储目录结构、mysql用户与权限管理、mysql角色管理

2022-08-01 22:24:13 195

原创 MySQL-基础

mysql命令大全,数据结构、视图、函数等应用

2022-08-01 22:10:23 650

原创 redis-高级篇

redis.conf配置详解,rdb和aof持久化操作,redis发布和订阅,redis的集群部署,redis集群,redis缓存穿透、缓存击穿、缓存雪崩

2022-07-31 23:15:06 720

原创 redis-企业级使用

redis企业级应用和配置,整合了jedis、springboot以及redis工具类

2022-07-30 20:41:48 412

原创 Redis-基础

redis常见基本数据类型和地理位置、基数、位存储类型的详解和使用案例,以及redis平时使用的基本命令的详解。

2022-07-30 13:09:55 140

原创 Redis-NoSql

Memcached(缓存)+MySQL+垂直拆分(读写分离)网站大多数的情况都是在读,甚至有很多是在读重复的内容,如果每次都去读取数据库,会存在IO瓶颈,所以这个时候加一层缓存来存储每次读取一致的那些内容,当第一个人读时写入缓存,其他人再读只需要从缓存中读取数据即可。发展过程优化MySQL底层数据结构和索引->文件缓存(IO)->Memcached(当时最热门的技术)分库分表+水平拆分(集群)如今年代的结构。...

2022-07-28 21:44:30 558

原创 k8s-dashboard

k8s-dashboard

2022-07-21 17:54:30 124

原创 一、Kubernetes基础概念+环境安装(跨服务器公网环境搭建)

k8s集群环境部署,不同运营商

2022-07-17 18:43:57 329

原创 docker常用软件安装+集群部署

2、端口暴露的概念官方使用: 该写法用完就删,测试时可以这么用。推荐使用:问题:linux命令少了,没有webapp。镜像原因,默认是最小镜像,不必要的都剔除掉。保证最小可运行的环境。我们以后要部署项目,如果每次都要进入容器十分麻烦,可以在容器外部提供一个映射路径,webapps,我们在外部放置项目,就自动同步到内部就好了。问题:暴露的端口很多!十分的耗内存,数据一般需要防止在安全目录!挂载!注意:启动之后服务器直接卡了,需要增加内存限制docker 图形化界面管理工具,提供后台面板供我们操作。浏

2022-07-07 15:22:14 561

原创 Nginx实战

正常情况下客户端直接访问服务器,但是当客户端不断增加时,仅仅一台服务器支撑不了大量的客户端请求,此时选择横向扩展服务器,但是当客户端依次请求每台服务器时,服务器没办法全部获取该用户的session等信息,所以这时候需要一个中间代理进行处理客户的请求然后转发给服务器,这就是nginx的反向代理。...

2022-07-06 15:46:40 1201

原创 七、线程并发高级部分之JDK7新增的Fork/Join

化繁为简,分而治之。利用递归的分解和合并,直到任务小到可以接受的程度。1. Future任务机制和FutureTaskFuture类对具体的Runnable或者Callable任务的执行结果进行取消、查询是否完成、获取结果。boolean cancel(boolean mayInterruptIfRunning):取消任务,参数表示是否允许取消正在执行却没有执行完毕的任务。boolean isCancelled() :任务是否取消成功,如果在完成之前取消则为true。boolean isDone(

2021-12-29 18:04:30 775

原创 六、线程并发高级部分之线程池

1. 单线程线程池 newSingleThreadExecutor线程池只有一个线程在工作,单线程串行执行所有任务,如果异常,按照提交顺序选择新线程继续执行。2. 可缓存的线程池 newCachedThreadPool调用execute将重用以前构造的线程,线程不可用才创建新线程,60s未使用会被移除。3. 固定大小的线程池 newFixedThreadPool可以指定同时访问的线程数量,源码创建了指定大小的LinkedBlockingQueue的线程池4. 线程池的好处降低资源消耗,提高响应

2021-12-29 17:55:57 1646

原创 五、线程并发高级部分之多线程之间交互:线程阀

概念:线程与线程之间相互制约和相互交互的机制。1. 阻塞队列BlockingQueue。1.1 Queue(队列):保存一组元素,先进先出的线性表,队头删除,队尾插入。1.2 Deque(双端队列\栈):两端都可以进出的队列。先进后出。阻塞队列:存储和删除操作会等待队列可用时进行操作。常用于生产者和消费者情景,生产者存放元素的容器,消费者读取元素的容器。2. 数组阻塞队列ArrayBlockingQueue概念:由数组支持的有界的阻塞队列,(FIFO)先进先出对元素进行排序存储。有界缓存,一旦创

2021-12-29 17:50:20 1032

原创 四、线程并发基础之线程安全的集合类

1. Hashtable:继承于Dictionary,散列表,键值对,实现Map、Cloneable、Serializable接口,key和value都不能为空。影响参数:初始容量:哈希表创建时的容量;加载因子:哈希表容量增加的尺度。通常是0.75。线程安全原因:每个方法中都实现了Serializable接口。2. ConcurrentHashMap:hashMap安全版,比hashtable效率高,使用锁分离技术,内部使用段(Segment)3. CopyOnWriteArrayList:使.

2021-12-29 17:46:15 1030

原创 三、线程并发基础之Thread安全

1. Java内存模型与多线程数据读取顺序优先级:寄存器->高速缓存->内存。统一内存管理模型:JMM(Java Memory Model),屏蔽底层平台内存管理细节,在多线程环境中必须解决可见性和有序性。主内存:Java堆内存,存放所有类实例、静态数据等变量,多个线程共享。工作内存:该线程从主内存拷贝过来的变量以及访问方法所获得的局部变量,线程私有。可见性问题:多个线程之间不能通信,只能通过共享变量,每new一个对象会被分配到主内存中,每个线程会在工作内存中存储自己的对象副本,工作

2021-12-29 17:42:35 978

原创 二、线程并发基础之Java里的Thread

1. 线程简单实现的三种方法1.1 直接extendsThread覆盖run()方法即可,/** * @Author KanLina * @Description 创建线程方式(一) * @Date 10/22/21 2:43 PM **/public class ThreadA extends Thread { @Override public void run() { super.run(); try { //模拟.

2021-12-29 17:26:02 1152

原创 一、线程并发基础之概念部分

1. CPU核心数、线程数cpu位宽越大,处理数据运算范围更大,支持更大容量内存。多核心(CMP):单芯片多处理器。多线程(SMT):多个线程同步执行共享处理器上的执行资源。提高运算部件利用率、缓和由于数据或缓存带来的延迟。核心数、线程数:增加核心数就是增加线程数,一般是1:1对应,Intel超线程是1:2。linux查看CPU型号:cat /proc/cpuinfo |grep name | cut -f2 -d: | uniq -cLinux查看CPU有几核几个线程:grep 'pro

2021-12-29 17:03:20 720

原创 12.RocketMQ之消息重试机制+死信队列

一、消息的消费重试机制Producer对发送失败的消息进行重新发送的机制。采用同步或异步会重试,oneway消息发送方式发送失败没有重试机制。消息发送重试三种策略:同步发送失败策略对于普通消息,消息发送默认采用round-robin策略来选择所发送到的队列。如果发送失败,默认重试2次,但在重试时是不会选择上次发送失败的Broker,而是选择其他的Broker。同时,Broker还具有失败隔离功能,使Producer尽量选择未发生过发送失败的Broker作为目标Broker。如果超过重试次数,

2021-10-20 14:25:13 3020 1

原创 11.RocketMQ之事务消息+批量消息+消息过滤

一、事务消息如果扣款失败,取款依旧可能会成功,需要利用事务处理。事务管理器TM 向事物协调器TC发送指令,开启事务。工行系统发送一个给B赠款1万元的事物消息给TC。TC向Broker发送半事务消息prepareHalf,将消息M预提交到broker。此时建行系统看不到broker中的消息。Broker将预提交结果上报给TC。预提交失败,则TC会向TM发送消息M预提交失败响应,全局事务结束;预提交成功,TC会调用工行系统回调操作,去完成工行用户A的预扣款1万元的操作。工行系统会向TC发送预扣

2021-10-20 14:19:33 923

原创 10.RocketMQ之消息发送分类+消息的堆积与延迟+消息清理

一、消息发送分类同步消息:异步消息:单向发送消息:不等待Broker返回ACK,效率高,可靠性低。代码示例:同步生产者: https://gitee.com/anilnak/rocket-mq/tree/dev/1.0.0异步生产者: https://gitee.com/anilnak/rocket-mq/tree/dev/2.0.0单向发送消息: https://gitee.com/anilnak/rocket-mq/tree/dev%2F3.0.0/消费者消费消息实例代码: h

2021-10-20 13:06:14 445

原创 9.RocketMQ之消息的幂等+消息的堆积与延迟+消息清理

一、消息的幂等RocketMQ可以保证消息不丢失但是无法保证消息不重复。当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务系统产生任何负面影响,那么这个消费过程就是消费幂等的。消费一次和消费多次对系统产生影响相同。重复的消息可能会影响业务处理,需要做幂等处理。消息重复的场景1)发送消息时消息重复:生产者向broker发送消息,broker网络闪断没有向生产者发送应答失败,生产者默认发送失败,将重复发送消息。2)消费时消息重复:消费成功时向b

2021-10-20 12:53:31 734

原创 08.RocketMQ之消息的订阅关系+offset管理

一、订阅关系的一致性同一个消费者组(GroupId相同)下所有Consumer实例所订阅的Topic与Tag及对消息的处理逻辑必须完全一致。否则消息逻辑混乱会导致消息丢失。错误:二、offset管理Consumer的消费进度offset。消费进度offset记录每个Queue的不同消费组的消费进度,根据消费进度器不同,可以分为本地模式、远程模式。本地管理模式消费模式为广播消费,每条消息被所有消费者消费,每个消费者记录自己的消费进度,不存在交集。以json模式持久化到consumer本地磁盘文

2021-10-20 12:35:52 830

空空如也

空空如也

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

TA关注的人

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