自定义博客皮肤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)
  • 资源 (2)
  • 收藏
  • 关注

原创 利用多线程实现多任务量高效计算

1.背景介绍1.1.问题场景基于MinIO做二次开发,统计各个bucket的存储情况,文件类型个数。由于MinIO没有提供现成的API来获取以上的信息,因此只能先通过现有的API获取到桶及桶里的文件。将这些桶里的文件,存入集合,遍历判断每个文件是哪个类型,遍历累加每个文件的大小。1.2.传统手段的瓶颈bucket里面的文件如果比较少,利用传统的集合遍历的方式计算,也能得出结果,不会有太多瓶颈。但是如果bucket里面的文件非常多,几百甚至上千个文件,而且随着系统的使用,存入到bucket的文件会越

2021-11-25 13:30:01 999 1

原创 基于Sentinel实现微服务API限流

基于Sentinel实现微服务API限流1.Sentinel介绍1.1. 简介随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供

2021-08-26 15:18:18 824

原创 SpringBoot2.0整合Sharding-Jdbc实现分库分表

文章目录1.Sharding-Jdbc介绍1.1. 简介1.2.水平分割2.利用SpringBoot实现分库分表2.1.数据源设定2.2.pom.xml添加相关依赖2.3.配置数据源及分库分表策略2.4.代码实现2.4.1.项目整体结构2.4.2.pojo层2.4.3.dao层2.4.4.service层2.4.5.controller层2.4.6.启动类3.测试分库分表3.1.添加数据3.2.查询数据3.3.总结当业务发展到一定程度,分库分表是一种必然的要求,分库可以实现资源隔离,分表则可以降低单表数据

2020-11-07 13:34:26 1961 4

原创 Docker安装Canal与RocketMQ

一、修改MySQL配置1.1 修改my.cnf配置对于自建 MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下log-bin=mysql-bin # 开启 binlogbinlog-format=ROW # 选择 ROW 模式server_id=1 # 配置 MySQL replaction 需要定义,...

2020-04-14 18:25:26 1247 2

原创 Spring源码解读

前提摘要:关于IDEA如何导入Spring源码,请参考如下链接。笔者使用的Spring版本:5.1.x。Windows系统参考:https://blog.csdn.net/hqbootstrap1/article/details/85942897Mac系统参考:https://www.jianshu.com/p/766580eb8df9一、Spring Bean的加载过程(1)实例化S...

2020-04-12 09:58:29 189

原创 UML学习笔记

UML学习笔记类图(Class Diagram):描述类的信息(包括属性、方法),以及类和类之间的关系信息。生成代码,选择菜单栏Tools—>Extension Manager,搜索Java安装并重启StarUML。重启后,点击Tools—>Java—>Generate Code,放到指定的文件夹下即可。用例图(Use Case Diagram):站在系统用户(系统...

2020-04-06 17:17:39 168

原创 Synchronized底层原理解析

一、代码演示public class SyncTest { // 关键字在实例方法上,锁为当前实例 public synchronized void method1() { // code } // 关键字在代码块上,锁为括号里面的对象 public void method2() { Object o = new Object(); synchr...

2020-04-01 16:43:51 175

原创 基于数据库实现微服务动态路由

一、概述随着微服务在各个项目中使用越来越普遍,大多数公司选择使用Spring Cloud框架或者Dubbo来实现项目落地。因此,在说动态路由之前,笔者先带大家来对比下这两个框架。从性能效率上来看:dubbo 使用了 netty 比 spring cloud 的 http 快很多。大概是 2 倍的差距。从开发效率上来看:公司同学一般都会 spring,入门 spring cloud 的门槛...

2020-03-11 21:00:01 558

原创 Kafka学习笔记

zk启动bin/zkServer.sh start后台启动kafkabin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &测试生产者消费者创建主题bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic...

2020-03-07 18:24:33 507

原创 函数式接口@FunctionalInterface使用示例

通过JDK8 源码javadoc,可以知道@FunctionalInterface有以下特点:该注解只能标记在"有且仅有一个抽象方法"的接口上,表示函数式接口。JDK8接口中的静态方法和默认方法,都不算是抽象方法。接口默认继承java.lang.Object,所以如果接口显示声明覆盖了Object中的方法,那么也不算抽象方法。该注解不是必须的,如果一个接口符合"函数式编程"定义,那么加不...

2020-03-03 02:00:13 1398

原创 ThreadLocal的原理并结合线程池使用(内存泄露)

一、ThreadLocal的定义ThreadLocal顾名思义是线程私有的局部变量存储容器,可以理解成每个线程都有自己专属的存储容器,它用来存储线程私有变量,其实它只是一个外壳,内部真正存取是一个Map。每个线程可以通过set()和get()存取变量,多线程间无法访问各自的局部变量,相当于在每个线程间建立了一个隔板。只要线程处于活动状态,它所对应的ThreadLocal实例就是可访问的,线程被终...

2020-03-02 00:48:56 1484

原创 自定义线程池+自定义拒绝策略+异步获取线程执行结果(Future)

package com.calvin.currency.juc;import java.util.concurrent.BlockingQueue;import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;import java.util.concurrent....

2020-03-01 19:27:25 841

原创 Spring AOP与动态代理

AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。Spring AOP使用的动态代理,所谓的动态代理就是说AOP框架不会去修改字节码,而是在内存中临时为方法生成一个AOP对象,这个AOP对...

2020-02-23 20:48:14 502

原创 Java反射及示例代码

反射:将类的各个组成部分封装为其他对象,这就是反射机制。反射好处:(1)可以在程序运行过程中,操作这些对象。(2)可以解耦,提高程序的可扩展性。获取Class对象的方式:Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象。(多用于配置文件,将类名定义在配置文件中。读取文件,加载类)类名.class:通过类名的属性class获取。(多用于参数的传递)对象...

2020-02-09 23:17:52 226

原创 Java策略模式在电商项目中的使用

背景:随着电商网站业务的发展,会有越来越多的用户。我们会将用户分为新用户,老用户,VIP用户和MVP用户。对于不同的用户类型,商品的购买折扣和邮费也有所不同。那么如何避免在service中写大量的if/else来判断用户类型,这就是本篇笔者要介绍的,策略模式的落地使用。一、了解策略模式(1)定义定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。(2)类图(3)使用场景...

2020-01-02 17:58:18 776 1

原创 布隆过滤器及入门使用

一、什么是布隆过滤器?布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。二、布隆过滤器的使用场景网页爬虫对URL的去重,避免爬取相同的URL地址;反垃圾邮件,从数十亿个垃圾邮件...

2019-12-22 01:43:15 1962

原创 SpringBoot配置双数据源+Mycat实现分库分表

一、背景随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。MySQL单库数据量在5000万以内性能比较好,超过阈值后性能会随着数据量的增大而变弱。MySQL单表的数据量是500w-1000w之间性能比较好,超过1000w性能...

2019-11-27 19:44:52 1435

原创 使用SpringBoot2.0+DockerFile+Maven插件构建镜像并推送到阿里云仓库

一、创建SpringBoot工程首先我们创建一个SpringBoot工程,建议使用IDEA 商业版,搭建比较方便。选用SpringBoot 2.1.3.RELEASE + SpringCloud Finchley.RELEASE作为技术选型。本文笔者以微服务的注册中心Eureka为例,来做后面的演示。添加的依赖有:<dependencies> &amp

2019-03-07 21:54:11 4733 6

原创 负载均衡的概念与Nginx的安装配置

       大家都知道,每年双十一是各个电商平台疯狂“收割”的日子,同事各位顾客们也能在这一天网购获得很大的实惠。那么,同时有那么多人一起去“挤”网站,网站又是如何应对这么大的并发请求呢?通过负载均衡,可以使网站运营者在软件层面上应付“大流量”。当然,还需要硬件支持,在这

2019-03-07 09:24:06 148

原创 阿里云短信接口开发实践(Java)

       随着互联网的兴起,各行各业的需求都在不断的增加。随着业务的扩大,企业给用户发送短信验证码的业务,也是如火如荼。在这里,calvin给各位开发者推荐阿

2018-08-09 16:59:40 15283 13

原创 Linux常用命令总结

一、用户和用户组1.用户 新增用户:useradd 用户名 对用户设置密码:passwd 新建用户名,之后输入密码 用户是否存在:id 用户名 切换用户:su - 用户名 删除用户: (1)userdel 用户名 删除用户但保存用户主目录 (2)userdel -r 用户名 删除用户和用户主目录,都删除 修改用户:将用户加入用户组 usermod -g 用户组 用户名 ...

2018-08-09 14:36:33 235

原创 从博客、简书的学习者,到博客分享者,角色的转变

       大家好,我是calvin。这是我的第一篇CSDN博客。       做电商项目已经接近2年半的时间了。在开发的过程中,总是会遇到各种各样的问题,结果自然是少不了各种百度、google等等。通过在CSDN浏览前辈写的博客,或者在简书精美的排版下(排版风格,个人比较喜欢),总是能或多或少的找到解决问题的方法。       通过2年半的实际电商开发经验,我认为是时候去好好总结一下,通过...

2018-08-08 23:12:56 162

Java目录树控件

java 实现系统目录树结构,显示文件夹下的文件。树结构亲测可用, 谢谢支持。

2018-12-19

ABB的GSD文件

ABB变频器ACS800的DP通讯GSD文件亲测可用, 谢谢支持。

2018-12-19

空空如也

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

TA关注的人

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