- 博客(184)
- 资源 (46)
- 收藏
- 关注
原创 订单超时处理方案介绍
如果对于超时精度比较高,超时时间在24小时内,且不会有峰值压力的场景,推荐使用RocketMQ的定时消息解决方案。在电商业务下,许多订单超时场景都在24小时以上,对于超时精度没有那么敏感,并且有海量订单需要批处理,推荐使用基于定时任务的跑批解决方案。
2023-02-16 12:42:29 734
原创 MQ 消息丢失、重复、积压问题,如何解决?
引入 MQ 消息中间件最直接的目的是:做系统解耦合流量控制,追其根源还是为了解决互联网系统的高可用和高性能问题。
2023-01-31 13:55:50 1341
转载 什么是Web3.0
区块链:一种去中心化的数据结构,数据存储在分布式节点上,而节点就是提供算力的电脑,可以是个人电脑或服务器,皆同时具备服务端和客户端的性质,若要修改数据需有一半以上的节点,即大大增加数据修改的难度及安全性,借此解决人与人、人与平台间的不信任关系;Web 3.0:指的移动互联网后的下一个阶段的互联网生态,主要是通过区块链等技术手段,实现去中心化的网络形态,实现模拟真实世界感受、打破虚拟、现实边界的互联网;在可读的基础上,用户成为内容生产者,可以在平台上创造和传播自己的内容(文字、图片、视频)
2022-12-23 14:22:26 872
原创 实现关闭订单
在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内;那他们是怎么实现的呢?一般的做法有如下几种:定时任务关闭订单 rocketmq延迟队列 rabbitmq死信队列 时间轮算法 redis过期监听。
2022-12-23 14:16:16 195 1
原创 centos7安装java环境nginx等
jar包linux启动命令 nohup java -jar xxx.jar > nohup.out 2>&1 &查看:ps aux|grep xxx.jar在关闭防火墙到时候,出现:Failed to stop iptables.service: Unit iptables.service not loaded.解决方法:yum install iptables-services实际上,centos7后是使用的基于iptable的systemctl
2021-10-25 13:56:40 198
原创 Linux安装jdk8及环境变量配置
操作系统:CentOS下载jdk8这里可以使用Windows下载,然后传到虚拟机进入jdk下载页面https://www.oracle.com/technetwork/java/javase/downloads/index.html 下拉找到JavaSE8,点击右侧jdk下的download按钮3.点击同意协议 ○Accept License Agreement4.选择Linux的jdk,这里选择tar.gz方式,即源码安装5.等待下载完成jdk导进虚拟机这里选择使用
2021-09-24 13:39:43 1473
原创 Mysql慢SQL分析及优化
为何对慢SQL进行治理从数据库角度看:每个SQL执行都需要消耗一定I/O资源,SQL执行的快慢,决定资源被占用时间的长短。假设总资源是100,有一条慢SQL占用了30的资源共计1分钟。那么在这1分钟时间内,其他SQL能够分配的资源总量就是70,如此循环,当资源分配完的时候,所有新的SQL执行将会排队等待。 从应用的角度看:SQL执行时间长意味着等待,在OLTP应用当中,用户的体验较差治理的优先级上 master数据库->slave数据库 目前数据库基本上都是读写分离架构,读在从库
2021-09-08 10:13:08 1706
原创 Spring Boot 速记教程
SpringBoot 基础配置Spring Boot Starters引用自参考资料 1 描述:“starter的理念:starter 会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。需要注意的是不同的 starter 是为了解决不同的依赖,所以它们内部的实现可能会有很大的差异,例如 jpa 的 starter 和 Redis 的 starter 可能实现就不一样,这是因为 starter 的本质在于 synthesize,这是一层在逻辑层面的抽象,也许这种理念有点
2021-04-29 14:41:53 226
原创 基于Kubernetes的微服务项目设计与实现
本文会从设计开始,设计一个简单的前后端分离的项目,并将它部署在 kubernetes 集群上,期间我们将关注微服务和 kubernetes 配合的各个方面,并且从 系统的可用性,可靠性、强壮性、可扩展进行讨论,最终设计一个可以真正实用的系统。整体上我们从4个章节描述这个目标,分别是:第一章:微服务项目的设计第二章:微服务项目的具体实现第三章:kubernetes的部署第四章:微服务高可用部署及验证微服务是一种设计思想,它并不局限于任何开发语言,在本例中我们选择java的spring
2021-03-25 17:48:53 751 1
转载 浅谈Redis
Redis 为什么响应快①数据保存在内存中Redis 数据保存在内存中,读写操作只要访问内存,不需要磁盘 IO。②底层数据结构如下: Redis 的数据以 key:value 的格式存储在散列表中,时间复杂度 o(1)。 Redis 为 value 定义了丰富的数据结构,包括动态字符串、双向链表、压缩列表、hash、跳表和整数数组,可以根据 value 的特性选择选择最高效的数据结构。 ③单线程模型Redis 的网络 IO 和数据读...
2021-03-24 10:20:04 194
转载 分库分表
本文主要阐述在分库分表改造过程中需要考虑的因素以及对应的解法,还有踩过的那些坑。一 前言我们既然要做分库分表,那总要有个做事的动机。那么,在动手之前,首先就要弄明白下面两个问题。1 什么是分库分表?其实就是字面意思,很好理解: 分库:从单个数据库拆分成多个数据库的过程,将数据散落在多个数据库中。 分表:从单张表拆分成多张表的过程,将数据散落在多张表内。 2 为什么要分库分表?关键字:提升性能、增加可用性。从...
2021-03-22 11:27:08 247
原创 架构设计和代码开发中的一些常用原则
在日常的开发和设计过程中,大家对技术设计上的一些问题往往会面临很多的选择,不同的人会有不同的选择,每每如此,我都会尝试着问自己:我做出选择和判断背后的原则是什么?经过这么多年的发展,在软件设计过程,目前沉淀下来的原则有很多,但很多情况下,很多原则为了普适性,总结得会比较抽象,一旦太过抽象,对原则的解释和理解就会因人而异,譬如:高内聚低耦合原则,大家都懂,但是如何落地和执行却是很难说完全达成一致。因此,需要针对一些实际的场景中的问题去总结和补充,在大的原则下具化形成大家容易理解一致的相对明确原则。一
2021-03-19 15:18:37 381 1
原创 K8S概念与架构总结
什么是kubernetes?•是一个全新的基于容器技术的分布式架构领先方案•Google内部集群管理系统Borg的一个开源版本•是一个开放的开发平台,不局限于一种语言•是一个完备的分布式系统支撑平台,具备集群管理能力核心功能•自动装箱•自动恢复•在线扩容和弹性伸缩•滚动升级和一键回滚•服务发现与负载均衡Kubernetes带来的好处•运维效率提升•研发专注业务k8s的架构:...
2021-03-13 22:16:24 142
原创 Linux服务器支撑TCP连接个数说明
在网络开发中,一台服务器最大究竟能支持多少个网络连接?"TCP连接四元组是源IP地址、源端口、目的IP地址和目的端口。任意一个元素发生了改变,那么就代表的是一条完全不同的连接了。拿我的Nginx举例,它的端口是固定使用80。另外我的IP也是固定的,这样目的IP地址、目的端口都是固定的。剩下源IP地址、源端口是可变的。所以理论上我的Nginx上最多可以建立2的32次方(ip数)×2的16次方(port数)个连接。这是两百多万亿的一个大数字!!"能处理多少并发其实和每条并发上的数据处理工作量有关,逻辑简
2021-01-04 14:23:04 315
转载 Redis常见延迟问题定位与分析
Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右。但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头雾水。很多时候,Redis出现访问延迟变大,都与我们的使用不当或运维不合理导致的。这篇文章我们就来分析一下Redis在使用过程中,经常会遇到的延迟问题以及如何定位和分析。使用复杂度高的命令如果在使用Redis时,发现访问延迟突然增大,如何进行排查?首先,第一步,建议你去查看...
2020-12-30 16:21:12 171
原创 Loki的原理及使用
为什么做监控核心目标:保障站点可靠,从而保障业务稳定及保障业务迭代效率什么决定了站点“可靠”:系统可用度系统可用度取决于什么:多长时间坏一次;一旦坏了之后,多长时间可以恢复监控,即是服务于“可观察性”覆盖面:硬件/系统级监控、应用服务指标监控、程序运行日志监控、业务监控、链路监控关于日志监控核心目标:程序运行日志监控,关注程序运行状态如何做:日志的采集 -> 转换 -> 存储 ->可视化ELK Stack:ELK系统通常包含较多需求场景:“日志”(
2020-12-30 10:28:34 7625 3
原创 JAVA性能调优
JAVA性能调优程序设计优化tomcat优化JVM优化数据库优化操作系统优化程序设计优化减少MYSQL,REDIS访问异步,批量减少事务REDIS大对象tomcat优化pstree -p [pid] | wc -l参数:server.tomcat.accept-count:等待队列长度,默认100server.tomcat.max-connections:最大可被连接数,默认10000server.tomcat.max-threads:最大工作线程数,默认200server.tomc
2020-12-29 17:18:59 160
转载 Kafka相关知识
Kafka 是一个优秀的分布式消息中间件,许多系统中都会使用到 Kafka 来做消息通信。对分布式消息系统的了解和使用几乎成为一个后台开发人员必备的技能。今天就从常见的 Kafka 面试题入手和大家聊聊 Kafka 的那些事儿。思维导图讲一讲分布式消息中间件面试问题: 什么是分布式消息中间件? 消息中间件的作用是什么? 消息中间件的使用场景是什么? 消息中间件选型? 消息队列分布式消息是一种通信机制,和 RPC、HT...
2020-10-14 14:35:55 250
原创 将ISO-8859-1编码字符串转换UTF-8编码
/** * 字符串转换编码 * @author Administrator * */public class StringEncode { /** * 将ISO-8859-1编码字符串转换UTF-8编码 * @param param * @return */ public static String toUTF8(String param) { if (para
2020-09-21 14:46:22 22441 1
原创 Spring Cloud部分总结
什么是Spring cloud构建分布式系统不需要复杂和容易出错。Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快速应用于生产中。官方果然官方,介绍都这么有板有眼的。我所理解的Spring Cloud就是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如服务发现注册、配置中心、消息总线、负...
2020-09-21 14:23:47 181
转载 Java Mission Control
参考文档JMC官方用户操作指南:jmc 5.5 JFR官方用户操作指南:jfr 5.5 JDK Java Management Extensions JMX最佳实践(如何实现自己的JMX MBean) Java SE Monitoring and Management keytool官方文档 Enabling remote JMX with password authentication and SSL缩略语缩写 全称 含义 JDK Jav
2020-08-12 09:59:54 2874
转载 java list按照 对象 指定多个字段属性进行排序
package PjectUtils;import java.lang.reflect.Field;import java.text.NumberFormat;import java.util.Collections;import java.util.Comparator;import java.util.Date;import java.util.List;/** * ...
2019-11-27 16:11:48 1396
转载 高并发秒杀系统的设计思考!
前言秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。整体思考首先从高维度出发,整体思考问题。秒杀无外乎解决两个核心问...
2019-11-21 17:40:57 271
原创 kafka搭建入门
Zookeeper的功能以及工作原理ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Kafka简介Kafka是最初由Linkedin公司开发,是一个分布式、...
2019-10-16 09:22:50 202
原创 RocketMQ集群安装部署
一、环境:3台部署nameserver,每台至少2G内存 4台部署broker(两组),每台至少2G内存, Producer、Consumer随具体业务部署,不在文档中说明 Centos 7.x64bit JDK 1.8 +64bit RocketMQ-4.2.0 rocektmq-console-ng-1.0.0二、准备关闭防火墙systemctl stop f...
2019-10-12 09:58:26 803
原创 ElasticSearch集群安装部署
一、环境:三台ElasticSearch 机器,至少4G内存,硬盘容量可按线上标配配置 一台Kibanna可视化平台机器,至少2G内存,为节省线上资源,可共用 Centos 7.x64bit JDK 1.8 +64bit ElasticSearch 5.6.9 Kibana 5.6.9二、准备节点信息es01.5866.com 192.16...
2019-10-12 09:56:47 287
原创 Codis集群安装部署
一、环境:3台部署codis-proxy和codis-ha,每台至少2G内存,硬盘容量可按线上标配配置 3台部署zookeeper、其中1台codis-dashbord、1台codis-fe,每台至少2G内存 6台部署主从codis-server,每台至少4G内存 ...
2019-10-12 09:53:55 579
原创 postMan例子
var siteId="swyapp";var param="{\"goodsId\":\"1\",\"buyCnt\":\"1\",\"scene\":\"0\",\"account\":\"127.0.0.1\",\"clientIp\":\"127.0.0.1\"}";//var tt=new Date().getTime();var moment = requ...
2019-09-25 16:26:36 232
原创 CAP理论被应用在何方?
But:这个文章的重点并不是讨论 CAP 理论和细节,重点是说说 CAP 在微服务中的开发怎么起到一个指引作用,会通过几个微服务开发的例子说明,尽量的去贴近开发。CAP 定理又被称为布鲁尔定理,是加州大学计算机科学家埃里克·布鲁尔提出来的猜想,后来被证明成为分布式计算领域公认的定理。不过布鲁尔在出来 CAP 的时候并没有对 CAP 三者(Consistency,Availability,P...
2019-09-06 09:42:05 330
原创 springcloud:配置中心示例
git为例:随着线上项目变的日益庞大,每个项目都散落着各种配置文件,如果采用分布式的开发模式,需要的配置文件随着服务增加而不断增多。某一个基础服务信息变更,都会引起一系列的更新和重启,运维苦不堪言也容易出错。配置中心便是解决此类问题的灵丹妙药。Spring Cloud Config在我们了解spring cloud config之前,我可以想想一个配置中心提供的核心功能应该有什么提...
2019-07-30 15:35:51 175
转载 分布式锁用Redis还是Zookeeper?
为什么用分布式锁?系统 A 是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会给用户下单。由于系统有一定的并发,所以会预先将商品的库存保存在 Redis 中,用户下单的时候会更新 Redis 的库存。此时系统架构如下:但是这样一来会产生一个问题:假如某个时刻,Redis 里面的某个商品库...
2019-07-16 09:03:26 1870
原创 数据库性能优化 —慢SQL案例解析
慢SQL 优化思路1.检查 SQL 发现明显问题2.查看执行计划快速定位问题3.检查相关字段是否有索引、看表行数4.改写 SQL 提升性能回顾执行计划案例1:优化前:优化后:案例2:优化前:优化后:案例3:优化前:优化后:案例4:优化前:优化后:案例5:优化前:优化后:案例...
2019-06-12 09:08:27 222
转载 CopyOnWrite
读多写少的场景下引发的问题?大家可以设想一下现在我们的内存里有一个 ArrayList,这个 ArrayList 默认情况下肯定是线程不安全的,要是多个线程并发读和写这个 ArrayList 可能会有问题。好,问题来了,我们应该怎么让这个 ArrayList 变成线程安全的呢?有一个非常简单的办法,对这个 ArrayList 的访问都加上线程同步的控制。比如说一定要在...
2019-06-01 10:22:43 1008 1
转载 「IT人」职业生涯指南——附神级跳槽攻略图!
每个人的职业生涯无非以下几种情况:一、帮别人挣钱(打工)不管你是刚入职的小兵,还是管人的经理,甚至是唬人的总监,都属于这一阶段。通常程序员在这一阶段的职业发展分两条线,专家(技术)线和管理线。专家线主要跟机器打交道,搞搞性能调优,高并发处理等等高精尖的问题;管理线主要跟人打交道,了解下属的状态,控制资源和进度。这一阶段的特点是稳定,低风险也低门槛。缺点是有天...
2019-04-02 17:21:27 272
原创 nginx配置https
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections ...
2019-02-25 14:33:47 151
转载 redis到codis的数据迁移
目的本文档适用于redis到codis的数据迁移。文档附带迁移程序。迁移前请确保需要部署的业务程序(如商城)的缓存访问方式已从redis更新到codis。目前有两种方式来迁移缓存: 自动同步:适用于迁移程序可同时访问到redis和codis服务的情景,无需下线原有的redis业务程序,可等到同步程序部署完成后,逐台更新部署业务程序,并下线所有redis服务; 手动导入:适用于迁移...
2019-02-25 14:17:47 1149 1
原创 ElasticSearch和kibana安装文档
一、环境:三台ElasticSearch 机器,至少4G内存,硬盘容量可按线上标配配置 一台Kibanna可视化平台机器,至少2G内存,为节省线上资源,可共用 Centos 7.x 64bit JDK 1.8 + 64bit ElasticSearch 5.5.2 Kibana 5.5.2二、准备 节点信息 es01.xxx.com 192.168.103.87 es...
2019-02-25 14:13:21 196
原创 Spring Cloud Zuul中路由限流配置
spring cloud服务的注册与发现(Eureka) 使用见 https://blog.csdn.net/shiyuezhong/article/details/78845520 Zuul配置:pom.xml 新增<dependency> <groupId>org.springframework.cloud</groupId>...
2018-10-08 11:02:30 1875
原创 Windows下搭建ELK日志分析平台
ELK介绍需求背景:业务发展越来越庞大,服务器越来越多 各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志 开发人员排查问题,需要到服务器上查日志,不方便 运营人员需要一些数据,需要我们运维到服务器上分析日志为什么要用到ELK:一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大也就是日志量多而复杂的...
2018-09-28 16:08:38 4569
原创 spring boot druid mybatis 多数据源配置
1.application.propertiesspring.datasource.url = jdbc\:mysql\://192.168.1.1\:3306/business?autoRconnect\=true&useUnicode\=true&characterEncoding\=UTF8&zeroDateTimeBehavior\=convertToNull...
2018-08-15 12:59:54 494
jquery的搜索框输入提示
2012-10-11
ckeditor的使用
2012-09-27
py2exe-0.6.9.win32-py2.7
2012-09-22
spring-config.rar
2019-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人