自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (1)
  • 收藏
  • 关注

原创 查看内存使用率

Java内存使用率

2022-11-25 23:53:13 302 1

原创 物联网系统开发:快速实现一个智能充电柜(智能锁)

协议是什么天猫,开灯->开灯->

2022-01-14 16:41:17 983 1

原创 ClickHouse入门到精通

一 clickhouse-简介​ ClickHouse是俄罗斯的Yandex于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System) , 主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse​ ClickHouse是一

2022-01-10 21:51:52 1087

prometheus+grafana监控(一)

1.exporterexporter是什么广义上向prometheus提供监控数据的程序都可以成为一个exporter的,一个exporter的实例称为target, exporter来源主要2个方面,一个是社区提供的,一种是用户自定义的。常用exporter官方和一些社区提供好多exproter, 我们可以直接拿过来采集我们的数据。 官方的exporter地址: https://prometheus.io/docs/instrumenting/exporters/安装node-exporter示

2020-12-31 10:30:17 285

原创 SDK开发:RabbitMQ延时队列,分级重试队列流程图

2020-12-28 16:04:43 405

原创 优雅的Builder模式代码

优雅的Builder模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。@Datapublic class SearchColumn { private List<Column> columns; public SearchColumn(List<Column&gt

2020-12-08 16:14:20 259

原创 elasticJob无法注入Bean引发的思考:获取bean的6种方法(ApplicationContext)

遇到的问题:使用elasticJob定时任务时无法注入bean解决方法:@Slf4jpublic class JavaSimpleJob implements SimpleJob, ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext cont

2020-12-03 11:00:49 859

原创 maven 本地install 项目A(SDK)后,其他项目B 引入项目A(SDK)没问题,但是将项目项目A(SDK)depoly到私服之后,其他项目B 引入项目A(SDK)后报错,拉取不到Jar包

在项目B执行 mvn clean install -DskipTests=true -X项目A(SDK)存在父依赖,即使本地install成功没问题,但是私服可能并没有父依赖,所以会导致报错需要先将父项目发布

2020-11-17 12:34:23 231

原创 DDD领域模型浅显易懂的示例实战

可能是我大脑不是很聪明的缘故,网上讲的DDD领域模型看的不太明白。下面的代码与总结应该很生动易懂。钱包业务示例1,基于贫血模型的传统开发模式这是一个典型的 Web 后端项目的三层结构。实体类Controller层Service层2,基于充血模型的 DDD 开发模式领域模型层(可以大致理解为实体类加上封装的指令)Service层(将入参转为领域模型层,执行)总结基于充血模型的 DDD 开发模式跟基于贫血模型的传统开发模式相比,主要区别在 Service层。

2020-11-16 16:43:33 3855

原创 分布式任务调度Elastic-Job保证RabbitMQ 消息投递可靠性

一种可靠性方案数据库设计-- 表 broker_message_log 消息记录结构DROP TABLE IF EXISTS `broker_message_log`;CREATE TABLE `broker_message_log` ( `message_id` varchar(128) NOT NULL, -- 消息唯一ID `message` varchar(4000) DEFAULT NULL, -- 消息内容 `try_count` int(4) DEFAULT '0', -

2020-11-11 14:43:45 425

原创 词频统计hadoop与spark实现

词频统计待处理文件:hello world hello java输出:(hello,2)(world,1)(java,1)方法一:Hadoop MrMr过程代码public class WordCountRunner { public static void main(String[] args) throws IllegalArgumentException, IOException, ClassNotFoundException, InterruptedExceptio

2020-09-09 10:21:17 560

原创 RocketMQ事务消息思路

通过消息队列 RocketMQ 事务消息,能达到分布式事务的最终一致。​模拟A账户转账给B账户操作,这个分布式事务有两个子事务子事务A:AReduceTransaction()代表A账户扣款子事务B:BIncreaseTransaction() 代表B账户收款业务服务器实例一一:向消息队列服务器发送半消息(半消息无法被消费),如果收到消息队列服务器的ACK代表发送成功,则执行本地事务,(AReduceTransaction),若本地事务执行成功,会通知消息队列服务器将半消息转为正常消息(可以

2020-09-04 13:00:53 400

原创 JVM线上问题排查内存溢出 CPU过高 死锁

jps查看进程ID:20832jinfo查看运行时参数查看最大堆大小$ jinfo -flag MaxHeapSize 20832-XX:MaxHeapSize=8575254528查看用的啥垃圾回收器$ jinfo -flag UseConcMarkSweepGC 20832-XX:-UseConcMarkSweepGC$ jinfo -flag UseG1GC 20832-XX:-UseG1GC$ jinfo -flag UseParallelGC 20832-XX:

2020-08-21 10:52:30 481

原创 Java版本 我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径

我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优

2020-07-28 23:18:23 1960 1

原创 数据结构-树(二叉树,二分搜索树,堆,线段树,并查集,平衡二叉树,二三树,红黑树)原理与代码实战

树一:基本介绍定义根节点:一棵树最上面的节点称为根节点。父节点、子节点:如果一个节点下面连接多个节点,那么该节点称为父节点,它下面的节点称为子 节点。叶子节点:没有任何子节点的节点称为叶子节点。兄弟节点:具有相同父节点的节点互称为兄弟节点。节点度:节点拥有的子树数。上图中,13的度为2,46的度为1,28的度为0。树的深度:从根节点开始(其深度为0)自顶向下逐层累加的。上图中,13的深度是1,30的深度是2,28的深度是3。树的高度:从叶子节点开始(其高度为0)自底向上逐层累加的。54

2020-07-09 00:30:14 591

原创 Faas无服务器架构杂谈

之前技术中台部署分享一下faas,后来看了看,整理了一下,给大家分享一下。搭建好的单机openwhisk在39.102.74.224(root,/ C@rnerst0ne),目前在/tmp下面大家感兴趣可以体验一下~~概述Openwhisk是属于Apache基金会的开源Faas计算平台,由IBM在2016年公布并贡献给开源社区。IBM Cloud本身也提供完全托管的OpenWhisk Faas服务IBM Cloud Function。从业务逻辑来看,OpenWhisk同AWS Lambda一样,为

2020-07-03 21:45:17 500

原创 SpringCloud二次开发-消息队列(第一篇)

序我们知道不同中间件之间存在很多差异,如RocketMQ支持定时重试,每次重试间隔逐渐增加。Kafka,RabbitMq不支持重试。我们要做一个统一的Spring Cloud Starter实现效果:(1)让Kafka,RabbitMq支持消息重试。(2)使用不同的消息中间件时,我们不需要在maven引入不同的Jar包。开发好后的使用效果对于不同的中间件,我们仅需在application.yaml中改一下配置信息// 如果想使用 rocketMqpaas: mq: rocket

2020-07-03 21:27:39 530

原创 Spring事务传播机制示例代码与详解

Spring事务传播机制示例代码与详解最直观例子 :下单买书业务两个事务方法(checkout,purchase)username代表用户名isbns代表购买多本书的集合@Transactional@Overridepublic void checkout(String username, List<String> isbns) { for(String isbn: isbns){ bookShopService.purchase(username, isb

2020-06-30 10:32:58 426

原创 RocketMQ安装与入门介绍

1. MQ介绍1.1 为什么要用MQ消息队列是一种“先进先出”的数据结构其应用场景主要包含以下3个方面应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。使用消息队列解耦合,系统的耦合性就会提高了。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。当物流系统回复后,

2020-06-29 18:03:02 364

原创 RocketMQ Java消息发送样例(基本消息,顺序消息,延时消息,批量消息,过滤消息,事务消息)

消息发送样例导入MQ客户端依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.4.0</version></dependency>消息发送者步骤分析r1.创建消息生产者producer,并制定生产者组名2.指定

2020-06-29 18:02:08 788

原创 RocketMQ业务场景实战(电商购物场景中的【下单】和【支付】业务)

1. 案例介绍1.1 业务分析模拟电商网站购物场景中的【下单】和【支付】业务1)下单用户请求订单系统下单订单系统通过RPC调用订单服务下单订单服务调用优惠券服务,扣减优惠券订单服务调用调用库存服务,校验并扣减库存订单服务调用用户服务,扣减用户余额订单服务完成确认订单2)支付用户请求支付系统支付系统调用第三方支付平台API进行发起支付流程用户通过第三方支付平台支付成功后,第三方支付平台回调通知支付系统支付系统调用订单服务修改订单状态支付系统调用积分服务添加积分支付系

2020-06-29 18:01:19 3333 2

原创 RocketMQ高级功能与源码分析

1. 高级功能1.1 消息存储分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。消息生成者发送消息MQ收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者MQ push 消息给对应的消费者,然后等待消费者返回ACK如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新push消息,重复执行4、5、6步骤MQ删除消息1.1.1 存储介质关系型数据库D

2020-06-29 18:00:28 605 1

原创 利用Java+机器学习开发一套推荐系统 ALS,LR算法原理与实战

本篇文章会通过 推荐系统介绍 算法原理讲解 推荐系统架构 Java代码实战四部分,让您对推荐系统有一定了解。1 推荐系统介绍一个基本的推荐系统需要包含召回,排序,根据业务规则重排三个部分。召回召回指在海量的待推荐数据中过滤出较为符合对应用户及场景的推荐数据候选集。在线召回:实时运行召回算法,从海量数据中拿出对应的候选数据集离线召回:离线运行召回算法,从海量数据中拿出对应的候选数据集并预存入某种存储中,供在线系统直接拿取对应场景的召回数据由于召回是从海量数据中过滤出一部分数

2020-05-30 02:25:40 1355 1

原创 通过内存布局带你掌握锁升级过程

markword工具:JOL = Java Object Layout<dependencies> <!-- https://mvnrepository.com/artifact/org.openjdk.jol/jol-core --> <dependency> <groupId>org.o...

2020-04-21 22:57:06 374

原创 彻底掌握Java CAS自旋锁原理 汇编底层源码

如果多个处理器同时对共享变量进行读改写(i++就是经典的读改写操作)操作,那么共享变量就会被多个处理器同时进行操作,这样读改写操作就不是原子的,操作完之后共享变量的值会和期望的不一致,举个例子:如果i=0,我们进行两次i++操作,我们期望的结果是2,但是有可能结果是1。如下图原因是有可能多个处理器同时从各自的缓存中读取变量i,分别进行加一操作,然后分别写入系统内存当中。那么想要保证读改写共享变...

2020-04-16 14:06:41 1302

原创 黑技术:python开发ansible自定义模块

Ansible有很多常用模块1、ping模块2、raw模块3、yum模块4、apt模块5、pip模块6、synchronize模块7、template模块8、copy模块9、user 模块与group模块10、service 模块11、get_url 模块12、fetch模块13、file模块14、unarchive模块15、command 模块和shell我们...

2020-04-08 18:56:08 402

原创 Ansible自动部署kubernetes应用服务,并设置自定义启动参数

需求,在多台服务器一键部署kubernetes应用服务,并完成依赖的数据库/中间件的初始化。同时支持自定义启动参数。思路:1)将application.yml中的配置文件(如spring.application.datasource.url)变量作为ansible的变量暴露出来。2)k8s中ConfigMap中使用ansible暴露出来的参数3)k8s中Deployment设置启动参数ar...

2020-04-08 15:12:12 900

原创 如何应对 618、双11高并发场景-kubernetes弹性伸缩

1 弹性伸缩场景在业务场景中,常常会碰到对服务器资源需求大幅波动的情况。如电商在双十一等促销活动时,百万甚至千万级用户同时进行着搜索商品、下单等操作,要求电商后台具备集中时间段内应对大请求量的处理能力;此外如游戏业务,每天10:00-14:00和19:00-22:00为游戏在线高峰期,和其他时间段相比,高低峰数值最多可相差近十倍,对于这些起伏比较大的业务,弹性易伸缩的云服务必不可少。弹性伸缩作...

2020-04-01 11:13:41 1298

原创 开发自己的Spring Boot Starter(元注解,AOP,Spring Boot Starter实战)

前言我们都知道可以使用SpringBoot快速的开发基于Spring框架的项目。由于围绕SpringBoot存在很多开箱即用的Starter依赖,使得我们在开发业务代码时能够非常方便的、不需要过多关注框架的配置,而只需要关注业务即可。例如我想要在SpringBoot项目中集成web,那么我只需如下两步:第一步 要加入spring-boot-starter-web的依赖并简单配置一下信息&l...

2020-03-25 01:00:47 326

原创 amazon S3 API 对minio对象存储服务器进行签名直传 (vue+java签名直传)

普通上传:1:前端上传到后端(后端服务器带宽限制,极大影响性能)2:后端保存到文件服务器(同步/异步)3:后端保存到数据库签名直传:1:前端从后端获取签名2:前端根据签名上传到文件服务器(不走后端)3:前端返回后端URL保存到数据库首先保障文件上传服务可以使用可以搭建一个Minio服务器docker run -p 9000:9000 --name minio1 \> ...

2020-02-19 23:22:20 4227

原创 kubernetes pv pvc nfs nginx实战 持久化存储卷,持久化存储卷声明实战

PV 的使用有状态的应用和对数据有持久化的应用,我们有通过 hostPath 或者 emptyDir 的方式来持久化我们的数据,但是显然我们还需要更加可靠的存储来保存应用的持久化数据,这样容器在重建后,依然可以使用之前的数据。但是显然存储资源和 CPU 资源以及内存资源有很大不同,为了屏蔽底层的技术实现细节,让用户更加方便的使用,Kubernetes 便引入了 PV 和 PVC 两个重要的资源对...

2020-01-20 09:28:39 789

原创 kubernetes labels控制调度节点

为node 添加labels disktype=ssd[root@k8s-master /]# kubectl label node k8s-node01 disktype=ssdnode/k8s-node01 labeled[root@k8s-master /]# kubectl get node --show-labelsNAME STATUS ROLES A...

2020-01-02 15:24:13 190

原创 kubernetes ConfigMap实战demo

首先开发一个简单的SpringBoot demo项目。application.ymlmysql: host: 106.14.13.61 ...如果想动态改变mysql中的连接地址,目前有很多种方法,比如java -jar 启动命令传值,DockerFile镜像文件传值。今天演示的是利用kubernetes的configMap动态配置mysql的url为了方便效果,我们可以在Sp...

2020-01-02 15:01:40 244

原创 kubernetes helm部署集群环境实战

本文用到的所有文件,公众号“云计算平台技术”内回复“helm实战”即可获取镜像准备1:编写一个简单的spring boot程序并打包(demo.jar),指定运行端口为8088运行后即可通过浏览器访问http://localhost:80882:制作镜像:编写Dockerfile文件FROM hub.c.163.com/library/java:8-alpineADD target/...

2019-11-27 22:50:46 923

原创 基于git+httpd搭建http协议的git仓库

说明:此处为仅仅为通过shell进行安装部署。微信公众号 “云计算平台技术”最终效果:使用:1.客户端采用http方式clone命令(密码:123456):uri: http://10.127.26.91/git/cloudt-config-local.gitusername: testuserpassword: ******2.客户端采用ssh协议(密码:rootr...

2019-11-17 23:17:44 1343

原创 kubernetes PV、PVC、StorageClass

眼下,你我可能已经错过了互联网技术大爆炸的时代,也没有在数字货币早期的狂热里分到一杯羹。可就在此时此刻,在沉寂了多年的云计算与基础设施领域,一次以“容器”为名的历史变革,正呼之欲出。这一次,我们又有什么理由作壁上观呢?今天我和你分享的主题是kubernetes专题之:PV、PVC、StorageClass,这些到底在说啥?首先,希望大家对Persistent Volume(PV)和 Persi...

2019-11-17 22:52:35 904

原创 计算机软件毕设论文-微服务架构2019.06

查重率不足1%计算机软件工程毕业设计论文,希望大家一块学习,若有错误请及时指正百度云下载:关注微信公众号“云计算平台技术”,回复“毕业论文”即可获取下载链接查重率不足1%计算机软件工程毕业设计论文,希望大家一块学习,若有错误请及时指正目录摘 要 IAbstract(英文摘要) II第1章 引言 11.1 课题目的和意义 11.1.1 目的 11.1.2 意...

2019-08-18 17:12:03 2400 3

原创 RESTful API开发规范

API规范REST API规范基本规则除特殊说明外,Web API遵循如下基本原则:l BIM工作平台以RESTful Web Service的形式提供API。l 基于安全性考虑,BIM工作平台API需要使用SSL加密传输协议(HTTPS)进行访问。l BIM工作平台使用OAuth 2.0协议进行API访问授权控制。l 业务系统在访问BIM工...

2019-08-09 14:00:07 360

原创 Nginx教程+Keepalived高可用

Nginx教程 课程目标 了解反向代理和负载均衡的概念 掌握Nginx的安装和使用 利用Nginx实现负载均衡 Nginx相关概念 反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务...

2019-05-31 11:29:12 279

原创 京东集团-大数据培训第二阶段(Oracle(中国)讲师)

第一部分:Scala语言 一、Scala语言基础 1、Scala语言简介 2、下载和安装Scala 3、Scala的运行环境 4、Scala的常用数据类型 5、Scala变量的申明和使用 6、Scala的函数和方法的使用 7、Scala的条件表达式 8、Scala的循环 9、Scala函数的参数...

2018-12-11 10:34:51 549

kafkatool_64bit.zip

kafka可视化客户端工具(Kafka Tool)

2020-07-15

空空如也

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

TA关注的人

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