自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

topdeveloperr的博客

总结与分享

  • 博客(168)
  • 收藏
  • 关注

转载 如何规划你的职业生涯

这篇文章最近在一个关注的公众里看到。文章的作者是孙振耀,惠普的一位前员工,博主不知道原文何时发表,但从转载来看文章发表已经过去了十几年。一份工作不仅仅是一份工作,职业生涯与工作与人生的各方面都有很大的关系。规划自己的职业生涯换一句话说就是规划自己的未来。这是非常难的问题,也很难给出答案。作者有非常深度的思考,非常值得一读,更值得反复思考,强烈推荐。以下开始为公众号原文内容:如果这篇文章...

2019-10-26 12:27:34 1218 4

原创 一个saas软件项目需要考虑的各种问题

博主从事了三年的saas产品开发,这三年的时间都在这一个saas产品上。该产品基本的架构是采取了微服务架构,后段采用java加Spring以及maven,前端使用的是jquery,UI5,数据库则各个模块各自使用自己需要的数据库,主要是postgresql,以及mongodb。中间件则是使用的rabbitmq。部署在aws云平台上面。后端后端主要处理项目的核心业务逻辑。后端需要考虑下面这些...

2019-09-11 14:55:28 4269

原创 java重要基础知识汇总

Table of Contents关于java语言设计理念抽象类与接口的区别是什么java为什么不支持多继承java里的枚举实现机制是什么java中的内部类关于类Collections,Arrays,Objectsjava里的方法重载关于java里的main方法JVM,JDK,JRE三者的关系是什么关于java语法continue关键字和break关键字...

2019-06-16 16:09:55 106991 23

原创 使用spring data Querydsl 实现动态查询功能

Table of Contents概述定义查询请求google-like查询特定字段的类sql查询使用Spring DataQuerydsl利用Spring Query DSL实现动态查询实现过程中的难题主表包含多个子表数据时的AND查询概述本篇博客主要将介绍的是利用spring query dsl框架实现的服务端查询解析和实现介绍。查询功能是在各种应...

2019-05-02 16:48:05 6260 1

原创 [思考] 难的问题到底难在哪儿

Table of Contents前言什么是问题规模?什么是抽象程度?解决困难问题的共通方法前言为什么会有动机写这样一篇文章,是因为在我们每个人每一天的开发工作,学习当中,总是会层出不穷,永无尽头的遇见各种各样的问题,从上学开始面对一道又一道考试题目,到后来工作中面临一个又一个bug或者功能需求,到生活当中需要处理一个又一个的事情。我们不停的解决问题,不停遇到新的问题,甚至...

2019-02-20 16:24:17 982

原创 [java] 关于main方法的一切

Table of Contents概述为什么main方法必须是static的?为什么main方法必须是void的?为什么main方法必须是public的?其他概述Java中的main方法,是一个java应用程序的入口,无论一个java的应用多么复杂庞大,或是多么的小,只要他是一个可以运行的java程序那么必然就要有一个main方法。main方法的定义格式通常固定如下:...

2018-11-12 15:18:09 6047 3

原创 常见开发相关问题收集

Table of Contents使用windows cmd 工具根据端口号关闭指定的运行中的项目?intellij idea 如何将一个普通项目转换为maven项目Chrome浏览器console不现实error logCould not read from remote repositorygit本地代码和github上的format不一样使用Intelij报错:Err...

2018-10-04 10:44:08 1557 1

原创 [java] 反射和多态实现原理详解以及对比

Table of Contents反射和多态多态什么是多态java里多态的具体用法多态的实现原理反射什么是反射反射的实现原理反射的应用反射的弊端反射相关类反射应用实例一些问题private修饰的方法可以通过反射访问,那么private意义何在?反射和多态的区别反射和多态事实上,反射和多态这两种技术并无直接联系,之所以把它们放在一起...

2018-08-22 21:39:49 6108 1

原创 [java] 关键字new是如何实现的

目录概述什么时候我们可以new一个类虚拟机处理new指令的流程一些问题1.两种new对象方式的区别2.变量初始化的默认值3.构造方法4.new一个对象时的内存空间担保?5. 关于局部变量6. 静态变量是在何时初始化的?与对象实例化有什么关系?7.使用Class类提供的newInstance和使用关键字new有哪些不同?概述在java里面创建一...

2018-07-24 23:53:37 24900 12

原创 [Java] Object 类深度解析

Table of Contents(1) registerNatives(2) getClass(3) hashCodehash 的定义Java 中 hash 值的含义(4) equals(5) clone(6) toString(7) notify(8) notifyAll(9) wait(long timeout)(10) wait(long t...

2017-12-27 11:28:33 678

原创 锁-spring shedlock

背景spring shedlock用于在分布式服务的情况下执行定时任务,例如定时删除数据库中的一些数据,做数据迁移等等操作。这项技术在项目的分布式服务中大量使用。使用的主要原因有以下几点:定时任务的业务需要,要在服务service正常运行的过程当中同时在背后执行一些操作,满足我们的业务需要,定时任务也就是schedule task必不可少。 分布式服务的要求。试想下面一个场景: 随着业务增长,有一天单个服务service的压力过大,一个服务支撑不住了,我们要考虑部署多个服务来分散压力。这时问题就

2022-03-30 16:42:18 3131

原创 postgres dump备份和restore还原

1.将数据库备份成dump文件.首先进入cmd的postgres的bin目录下方,然后执行下面的命令:pg_dump -U 'username' -p 'port number' -d 'databse' < 'dump file name'例如:pg_dump -U postgres -p 5437 -d postgres < bills_with_5_tenants.dump2. 将dump文件导入到数据库当中:首先进入cmd的postgres的bin目录下方,然后执行

2022-02-23 22:34:43 2175

原创 postgres query plan

PostgreSQL数据库针对它收到的每一个sql查询都会设计一个query plan-查询计划。要想拥有良好的查询性能performance,选择正确的query计划来匹配查询的结构和数据本身的特性绝对是至关重要的,因此postgres数据库系统有一个复杂的计划器planner用来为sql查询选择好的query plan。 我们可以使用 EXPLAIN 命令查看规划器为任何查询创建的查询计划。query plan查询计划的结构是计划节点树plan node。 树底层的节点是表扫描节点:它们从表中返回.

2021-07-30 16:37:41 1864

原创 服务器performance优化总结

本文的总结经验大多基于postgres数据库避免使用lower函数todo查询时默认不返回counttodo创建正确得index1.order by后面跟的多个条件需要建立联合索引,否则不会进行index scan根据sql调整index:order by creation_date desc, id asc limit 10, you need to create index(creation_date desc, id asc).order by creation_.

2021-07-08 17:39:20 296

原创 intelij 报错Cannot resolve symbol ‘springframework‘

mvncleaninstall成功了,项目是从master拉出来的可以确定没有问题,但是就是有一些包找不到,报错:Cannot resolve symbol 'XXX',最后更新mavenhelper的plugin同时点击maven的刷新解决了这个问题:...

2021-05-13 14:01:11 1225

原创 连接postgres报错

Gitbash执行命令报错:Due to l10n of cf-cli, this script requires $LANG to be 'en_US.UTF-8', but is ''. Please change your system language to English!解决办法:export LANG=en_US.UTF-8

2021-05-07 17:22:37 332

原创 Mock bean失败一直为null

原来的代码如下:@Componentpublic class TargetChargeFinder { @Autowired ChargeRepository chargeRepository;mock beanchargeRepository一直失败,且其值一直为null。原因在于,测试的地方,对于TargetChargeFinder没有采取注入的方式加入测试类当中,而是new的 private TargetChargeFinder finder;..

2021-04-15 16:34:11 5130

原创 postgres for 循环

do $$declarea integer := 1;begin while a < 1000000 loop--循环体内容....--变量改变+1 a= a+1; end loop;end $$;

2021-02-11 17:10:53 2365

原创 微服务架构中的分布式事务

本编博客主要介绍分布式事务的概念以及行业解决方案。微服务架构越来越流行了。然而,微服务中一个普遍的问题是如何跨多个微服务管理分布式事务。 这篇文章将分享一些经验,并解释问题和可能解决该问题的模式分布式事务概念什么是分布式?什么是事务?什么是分布式事务当微服务架构将单体系统分解为多个服务时,它可能会打破之前的事务。微服务架构意味着单体系统中的本地事务现在被分配到多个服务中,这些服务将按顺序调用。首先我们来看一个单体系统当中使用localtransaction的客户订单示例:在上..

2020-11-13 17:41:39 683

原创 docker简介

Docker platformDocker提供了在松散隔离的环境(称为容器)中打包和运行应用程序的功能。隔离和安全性使您可以在给定主机上同时运行多个容器。容器轻巧,因为它们不需要管理程序的额外负担,而是直接在主机的内核中运行。这意味着与使用虚拟机相比,在给定的硬件组合上可以运行更多的容器。您甚至可以在实际上是虚拟机的主机中运行Docker容器!Docker提供了工具和平台来管理容器的生命周期:使用容器开发应用程序及其支持组件。 容器成为分发和测试应用程序的单元。 准备就绪后,可以将应用程序.

2020-10-27 18:12:55 342

原创 Junit5详解

Junit5是当前最新的测试框架。在junit5当中,一些之前使用的注解和测试方法被新的注解替换掉了。使用junit5的测试结构如下:import org.junit.jupiter.api.AfterAll;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.Assertions;import org.junit.jupiter.api.BeforeAll;import org.junit.jupiter..

2020-09-30 15:45:46 1137

原创 spring 相关问题收集

1.使用resttemplate发送请求,反序列返回的object时报错.代码如下:@Data@AllArgsConstructorpublic class UsageRecordId { private UUID id;}请求如下: UsageRecordId responseEntity = restTemplate.postForObject(HTTP_LOCALHOST + port + urmPath, requestBody,UsageRecor..

2020-09-29 17:17:19 278

原创 spring boot test 端口号一直为0

用springboot 2.2和junit5时,我需要完成一些integrationtest.在写integrationtest时我有如下的代码用于启动一个测试环境:import org.junit.Test;import org.junit.jupiter.api.extension.ExtendWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.boot....

2020-09-29 16:38:12 728

原创 Spring data jpa 删除效率及分析

代码如下: @Query("DELETE FROM UsageRecordEntity u where u.customerNumber = ?1") void deleteByCustomerNumber(String customerNumber);报错如下:Caused by: java.lang.IllegalStateException: You cannot call getSingleResult() on this query. It is the incorrect q

2020-09-22 13:38:45 1570

原创 postgres把int转换为string

intval::textSELECT * FROM table WHERE <some integer>::text = 'string of numbers'

2020-09-22 12:09:55 8544

原创 postgres 在sql语句中自动生成UUID

> create extension "uuid-ossp";CREATE EXTENSION> select uuid_generate_v4(); uuid_generate_v4-------------------------------------- a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11

2020-09-22 11:56:51 1518

原创 RestTemplate如何使用get请求获取一个list

假设我们有class定义如下:@JsonIgnoreProperties(ignoreUnknown = true)public class Rate { private String name; private String code; private Double rate; // add getters and setters}同时我们定义了一个api返回这个类型的object的list,例如:public ResponseEntity<Li.

2020-09-21 17:36:23 3094

原创 rabbitmq connection lost之后重发消息

在debug一个使用了rabbit的应用程序时,遇到这样一个问题。应用程序收到了rabbitmq的消息,正在处理,由于是debug,应用程序在编辑器里长时间的停留在某个节点,导致rabbitmq的连接丢失,随后继续执行程序时rabbitmq又重连,由于重连rabbitmq不确定之前的消息被成功的消费,所以又再次发送了之前的消息,然后service在处理完message之后,又重新收到了一样的event且再此处理。rabbit连接的配置为:10:50:59.233 [abc.abc-changed.

2020-06-04 12:10:47 1417

原创 spring boot项目启动报错

错误信息如下:Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource: Property: driverclassname Value: org.postgresql.Driver Origin: "driverClassName" from property source "source" Reason: Failed to load driver class org.post...

2020-05-27 11:56:10 4260

原创 spring boot post请求403,get请求成功

项目使用了springboot security.使用的springboot版本是springboot2.0.post请求403错误,表示资源不可用。服务器理解客户的请求,但拒绝处理它,通常由于服务器上文件或目录的权限设置导致的WEB访问错误。Spring SecurityCSRF 保护默认是开启的,那么在 POST 方式提交表单的时候就必须验证 Token,如果没有,那么自然也...

2020-05-07 09:38:40 7382 1

原创 关于maven Module[更新中]

使用mavenmodule建立一个springboot项目,项目启动之后,在module里面得bean找不到。原因是要在启动的module当中,将别的module作为dependency引入,例如,启动module为A,另外三个module为B,C,D,则在A的pom当中,需要下面这样的dependency. <dependencies> <depe...

2020-04-30 13:11:52 438

原创 编写kafka stream应用程序

关于kafkastream的介绍此处不再多做介绍,可以参考别的博客。直接看代码。第一个stream应用程序Pipe创建一个pipe类:public class Pipe { public static void main(String[] args) throws Exception { }}编写Streams应用程序的第一步是创建一个java.uti...

2020-04-23 20:47:21 952

原创 kafka stream介绍

Kafka Streams是用于构建应用程序和微服务的client library,其中输入和输出数据存储在Kafka集群中。 它结合了在客户端编写和部署标准Java和Scala应用程序的简便性以及Kafka服务器端集群技术的优势。Lineapp使用了kafka stream,除此之外,世界上很多著名的应用程序也使用了kafka.下面的代码示例实现了一个WordCount应用程序,该应用...

2020-04-23 17:25:41 1008

原创 Kafka基础知识汇总

Kafka简介Kafka用于构建实时数据管道和流应用程序。 它的特点是水平可伸缩性scalable,容错性,快速性,kafka在数千家公司中投入生产环境使用。比较知名的有Uber,netflix等等,都是利用kafka构建了其业务。流式应用程序有三个关键特性:发布和订阅流应用的记录,类似于消息队列或企业消息传递系统。 以可容错且持久的方式存储记录流。 按照流的顺序处理流。Kafk...

2020-04-22 12:14:13 532

原创 windows下kafka安装启动以及使用

在安装kafka之前首先需要安装zookeeper. kafka用到了zookeeper.zookeeper的下载地址为:https://zookeeper.apache.org/releases.html#download下载成功之后解压,j进入bin目录,然后通过下面的命令启动zookeeper.bin\windows\zookeeper-server-start.bat con...

2020-04-22 10:50:35 6131

原创 在Kubernetes上部署docker

Docker Desktop默认包括一个独立的Kubernetes服务器和客户端,以及Docker CLI集成。 Kubernetes服务器在Docker实例中本地运行,不可配置,并且是单节点集群。Kubernetes服务器在本地系统上的Docker容器中运行,并且仅用于本地测试。 启用Kubernetes支持后,您可以在Kubernetes,Swarm上以及作为独立容器并行部署工作负载。 启...

2020-04-17 16:39:42 1372

原创 windows下docker desktop的安装和使用

在windows使用docker根据官方文档安装的是Docker Desktop。Dockerdesktop是Microsoft Windows的Docker的社区版本。我们可以从Docker Hub下载适用于Windows的Dockerdesktop。地址是:Docker Desktop for Windows。系统要求Windows 10 64位:专业版,企业版或教育版。必须启...

2020-04-14 18:59:07 63561 1

原创 微服务的部署

部署单体应用程序的时候,我们往往需要运行单个的通常也是大型应用程序的多个相同副本。通常,您需要配置N台服务器(物理服务器或虚拟服务器),并在每台服务器上运行M个应用程序实例。单体应用程序的部署并非总是完全简单的,但比部署微服务应用程序要简单得多。微服务应用程序包含数十甚至数百个服务。服务以多种语言和框架编写。每个应用程序都是一个微型应用程序,具有自己的特定部署,资源,扩展和监视要求。例如,我们...

2020-04-10 13:22:41 2241

原创 单体应用的微服务转型

在博主工作的经历中曾经接受过一个历史超过15年的单体应用程序,其代码行数超过四百万,使用的技术五花八门。并且由于项目太大,也带来了很多问题:运行测试的时间非常之久,要实现CI/CD几乎是一件不可能的事情。 项目前后端耦合在一起 项目使用的框架尤其是前端五花八门,难以管理 项目启动耗时长,开发效率低项目的开发者管理人员当然也意识到了这个问题,但是由于项目已经有很多客户在使用,因此要进行微...

2020-04-09 17:24:21 701

原创 微服务里的事件驱动数据管理

微服务下的分布式数据管理问题单体应用程序通常具有单个关系数据库。 使用关系数据库的主要好处是应用程序可以使用ACID事务,这提供了一些重要的保证:原子性–原子地进行更改 一致性–数据库状态始终是一致的 隔离–即使事务是同时执行的,看起来它们还是串行执行的 持久性–事务一旦提交,便不会撤消有了这些,应用程序就可以可以很容易的地开启事务,执行更改(插入,更新和删除)多行的操作并提交事务...

2020-04-09 16:10:48 447

空空如也

空空如也

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

TA关注的人

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