自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

架构师修炼道路

while(true){coding...}

  • 博客(87)
  • 资源 (1)
  • 问答 (15)
  • 收藏
  • 关注

原创 基于Apollo动态日志级别配置

在实际使用Apollo配置中心的项目中,可以通过修改日志级别让应用即时生效,免去了重启应用的昂贵操作。

2023-04-10 15:20:36 487 1

原创 在Spring框架中实现属性配置动态刷新,不需要重启应用。

相当于增加一份配置文件,它可以来源于文件或网络,这取决于你如何拿到数据。下面是一个示例,这个属性源有一个名字:myPropertySource,里面只包含了一个属性:abc_123。/*** 自定义属性源} }事实上你可以从外部网络,比如某个HTTP接口获取一堆属性值,对于你来说无非是将它们映射成KV结构。当然你用其它结构也可以,但是要保证能将一堆属性存储下来,并且能够根据名字(键)快速查找出来。/*** 自定义属性源,从HTTP接口获取配置属性集。

2023-03-19 12:26:50 2139

原创 在Spring boot项目中实现多数据源的方案

定义一个拦截器,在请求时检查Controller类和方法上的注解,根据配置的值设置当前请求用什么数据源。在请求响应回去时清除当前线程绑定的数据,做一个资源的释放动作。在实际项目开发过程中,因为业务发展和技术实现的需要,我们会在项目中同时连接多个数据库,具体该怎么做呢?解决异步执行时上下文传递的问题。

2023-02-21 04:00:00 633

原创 ElasticSearch索引管理

ElasticSearch索引管理。

2023-02-20 20:43:16 497

原创 ElasticSearch基本使用

ElasticSearch基本使用。

2023-02-19 16:02:38 374

原创 在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件

在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件。

2023-02-18 11:54:26 752

原创 在Spring框架中创建Bean实例的几种方法

我们希望Spring框架帮忙管理Bean实例,以便得到框架所带来的种种功能,例如依赖注入等。将一个类纳入Spring容器管理的方式有几种,它们可以解决在不同场景下创建实例的需求。为了获取Spring容器,一般会创建一个工具类,方便开发者在代码任意位置就能拿到容器,下面代码可以拿走即用。获取ApplicationContext来构建。

2023-02-17 10:36:43 378

原创 Kafka配置推荐及最佳实践

Kafka配置推荐及最佳实践。

2023-02-16 22:04:59 668

原创 在Linux环境安装ElasticSearch8.3和Kibana8.3

在Linux环境安装ElasticSearch8.3和Kibana8.3。

2023-02-15 23:17:16 225

原创 在Linux环境安装ElasticSearch8.3和Kibana8.3

title: 在Linux环境安装ElasticSearch8.3和Kibana8.3。

2023-02-14 22:34:56 352

原创 Java虚拟机(JVM)调优思路

Java虚拟机(JVM)调优思路。

2023-02-13 20:48:39 411

原创 MySQL使用技巧整理

title: MySQL使用技巧整理

2023-02-12 16:10:31 323

原创 介绍架构分类、设计及架构师工作

本文从理论上分析、梳理架构相关知识,帮助自己更好的理解架构工作。关于架构的定义业界有太多不同的定义,但大同小异、本质趋同,只不过侧重各有不同,就以IEEE(电气和电子工程师协会)的定义来说:架构描述了一个系统的基本组织结构,包含了组成系统的组件、组件之间的关系、组件与环境之间的关系,以及指导上述内容进行设计和演化的原则。系统组织起来完成一系列功能的组件集组件组件是一个系统模块化的某部分,从设计角度来理解组件其实就是一系列功能集的封装体。环境。

2023-02-11 10:46:10 493

原创 介绍项目前期调研、需求分析阶段的工作

架构师需要做什么?介绍项目前期调研、需求分析阶段的工作。

2023-02-10 22:24:32 1865 3

原创 在工作中高频使用Git的几种命令行操作

在工作中高频使用Git的几种命令行操作

2023-02-10 22:24:09 57

原创 领域驱动设计统一过程交付物

对目标系统整体业务需求的描述,展开对整个问题空间的探索,划分核心子领域、通用子领域和支撑子领域,可附上子领域映射图。more绘制系统上下文图,明确解空间的系统边界。描述核心子领域提供的业务能力,并以列表方式给出每个应用组件的说明,为其绘制上下文映射图,体现该子领域内各个应用组件的协作关系。

2023-02-10 22:22:45 499

原创 Mac下安装minikube在拉取镜像时失败ImagePullBackOff

Mac下安装minikube在拉取镜像时失败ImagePullBackOff

2023-02-09 21:20:08 913

原创 Hystrix使用介绍

通常一个分布式系统是由许多相互依赖的服务所组成的,这些被依赖的服务极易出现故障或响应延迟的问题。如果其中某个服务失败则会影响其他服务并进一步降低整体性能,并导致应用程序其他功能无法正常访问,在最坏的情况下,整个应用程序将崩溃。Hystrix框架通过提供熔断和降级来控制服务之间的交互依赖,通过隔离故障服务并停止故障的级联效应以提高系统的总体弹性。当依赖的远程服务开始变慢时,应用程序仍然会继续调用该远程服务,该应用程序不知道远程服务是否正常,并且每次请求进入时都会产生新线程。

2023-02-08 21:15:55 221

原创 基于Apache Maven构建多模块项目

多模块项目由管理一组子模块的聚合器 POM 来构建。在大多数情况下聚合器位于项目的根目录中,并且必须是pom类型的项目。子模块是常规的 Maven 项目,它们可以单独构建,也可以通过聚合器 POM 构建。通过聚合器 POM 构建项目时会一并构建下属的所有子模块。

2023-02-08 21:15:10 285

原创 Apache Maven实现不同环境差异化编译和配置

Apache Maven实现不同环境差异化编译和配置。

2023-02-08 21:14:46 358

原创 在本地搭建spring-framework5环境

在本地搭建spring-framework5环境。

2023-02-08 21:14:22 263

原创 ApacheMaven插件开发

ApacheMaven插件开发Apache Maven本身实际上只是一个插件驱动引擎。换句话说,真正干活的是插件,例如:创建jar文件,创建war文件,编译代码,单元测试代码,创建项目文档等。

2023-02-08 21:14:00 303

原创 在maven中处理多环境配置问题

在maven中处理多环境配置问题实际工作中项目会依次部署到多套环境,例如测试、灰度和生产。一般来说每套环境的资源地址都是独立的,这意味着项目在构建时要动态决定启用哪套配置以适应当前的环境。下面介绍在maven中实现根据环境动态处理配置的两种方式。

2023-02-08 21:13:49 560

原创 完美破解StartUML软件

重新启动StartUML则发现已经完美破解。

2023-02-08 21:13:35 1887 3

原创 常用排序方式分析与比较

常用排序方式分析与比较下面选取在实际项目中应用较多的排序方式作一个性能比较,并会对各个方式作一个分析总结。

2023-02-08 21:13:22 70

原创 JDK源码分析之Hashtable

本类是接口的一个线程安全实现,自JDK1.0时就被添加进来。任何非空对象都可以用作键或值。为了保证从哈希表存储和检索对象,用作键的对象必须实现hashCode方法和equals方法。为什么说Hashtable是线程安全的呢?因为它里面的方法均加上了synchronized,在保证多线程并发修改时的安全性同时也降低了程序性能。建议构造Hashtable时明确指出初始容量和负载因子,如果触发扩容动作会增加程序无谓消耗,所以对于已知容量的情况下一定要指定这两个参数。

2023-02-08 21:13:10 84

原创 解决 IDEA 下载源码失败的问题maven-default-http-blocker (http://0.0.0.0/) Blocked mirror for repositories

解决 IDEA 下载源码失败的问题maven-default-http-blocker (http://0.0.0.0/) Blocked mirror for repositories。查到是 maven 3.8.1 版本带来的限制,详见。最后解决这个问题也比较简单,使用。

2023-02-08 21:12:53 546

原创 了解JVM架构

了解JVM架构。

2023-02-07 09:49:55 288

原创 JVM内存模型

JVM内存模型对于Java开发人员来说,了解Java内存模型是必不可少的知识。

2023-02-07 09:49:12 272

原创 JVM垃圾回收

跟踪所有仍在使用的对象并将其余对象标记为垃圾的这一过程就叫做垃圾回收。

2023-02-07 09:49:01 112

原创 介绍JVM中OOM的8种类型

title: 介绍JVM中OOM的8种类型。

2023-02-07 09:48:50 692

原创 在ElasticSearch6.8及以上版本开启安全认证功能

在ElasticSearch6.8及以上版本开启安全认证功能在6.8之前免费版本并不包含安全认证功能,之后版本有开放一些基础认证功能,对于普通用户来说是够用的。免费版本需要同时在ES和kibana端开启安全认证功能,下面介绍如何操作。

2023-02-07 09:48:33 984

原创 SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder

当项目启动时若出现SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder错误,可通过添加具体日志实现框架解决。

2023-02-07 09:48:24 1739

原创 利用redis实现分布式锁

Redis是一个理想的选择。作为轻量级内存数据库,它具有快速,事务性和一致性等特点,这是我们分布式锁所需的关键特性。锁本身很容易,因为它只是redis数据库中的一个key。那如何设置锁定状态呢?使用SET命令保存某个key。然后使用GET命令查询上步设置进去的key是否存在,如果存在则表示锁定了该资源。不过如果使用两条命令来达到目的,显然会因为网络延时造成假锁的问题,这在线程并发激烈时最容易出现。好在redis提供了SETNX命令,它可以直接满足我们的要求,也就是不需要像刚才那样再发一条GET。

2023-02-07 09:47:29 70

原创 使用MapStruct框架实现Bean之间属性映射

MapStruct是一个代码生成器,它基于约定优于配置的方法极大地简化了Java bean类型之间映射的实现。通过上面的介绍我们应该能够理解到这么几点,首先它是一个代码生成器,就是用来帮开发者自动生成代码的工具,只需要通过简单的代码就可以实现原来手工编写的样板代码,因为它采用约定大于配置的设计思想,所以开发者只需要掌握简单的代码编写就可以了。也就是说人家框架帮你自动生成了原先手工编写的代码,但实际上那些手工编写的代码还是存在的,只不过你没有编写,框架帮你自动生成了而已。

2023-02-07 09:47:26 335

原创 构建基于SpringBoot2和Dubbo2.7的微服务应用开发框架

简单点说就是一个完整的应用被拆分成了多个应用,每个拆出来的应用都可以单独部署,每个应用负责原来那个完整应用的一部分功能,只有当这些应用全部提供服务时才是完整的。这其实很好理解,举个例子,比如某商城系统被划分成了营销子系统、订单子系统和会员子系统,在这里面每个子系统有其固有职责,对于整个商城系统来说是不可缺少的一部分,通常这种划分也被称为垂直拆分。其实所谓微服务应用算是分布式应用的一种特殊形式,它们之间区别不大,相同点很多。唯一比较明显的区分是前者对系统拆分的更加细。

2023-02-07 09:47:13 322

原创 在CentOS上使用CGroups隔离硬件资源

和参数单位是微秒,其中前者是指一个周期内总的可用运行时间,后者是指一个周期的长度,它们可以配合起来限制CPU的运行时间,下面列举几组例子让大家更容易理解。如果period为250ms且quota为250ms,那么该控制组每250ms将获得1个CPU运行时间。如果period为500ms且quota为1000ms,那么该控制组每500ms将获得2个CPU运行时间。如果period为50ms且quota为10ms,那么该控制组每50ms将获得1个CPU的20%运行时间。

2023-02-07 09:47:06 635

原创 使用jvisualvm连接JMX远程端口监控jvm内部情况

title: 使用jvisualvm连接JMX远程端口监控jvm内部情况对于应用程序的监控是必要的,特别是在生产环境上,我们应该始终能够提前发现潜在的问题,并在问题产生后要第一时间就知道。在真实的业务运营中监控是多维度的,几乎涵盖了软硬件以及各项业务指标。就java应用程序本身来讲,我们最关注的是jvm的内部情况,比如CPU和堆内存使用率、线程状态和垃圾回收等情况。那如何得到这些监控数据呢?好在JDK里面自带了一些工具帮我们分析这些数据并呈现报告,接下来介绍。more。

2023-02-06 11:13:40 552

原创 在linux服务器上配置基于ssh的免密码登入

在linux服务器上配置基于ssh的免密码登入所谓“免密码”登入远程linux系统,其实并不是真的不需要“密码”,而是不再使用明文密码。我们通过利用RSA加密算法构建一个安全的SSH通道,实际使用时通过证书来双向验证彼此的身份,证书本身可以选择是否加密,如果是那最终还是要有输入密码的过程。more下面介绍如何在两台机器之间配置SSH密钥身份认证。

2023-02-06 11:13:29 226

原创 自定义shell提示符

自定义shell提示符当你登录到一台linux机器后,屏幕会显示shell提示符,它默认由主机名和当前工作目录组成。我们可以更改显示的字符颜色及它的组成部分,通常前者是有用的,可以方便你肉眼区分自己和系统的输出。在linux系统中是通过环境变量来控制的,只要修改变量对应的值就可以更改上面提到的东西,你可以执行命令echo $PS1查看当前该变量设置。它的值是由有意义字符所组成的,你必须掌握这些字符的含义才能手动设置,当然这肯定会比较痛苦,下面推荐几个网站可以在线设置。

2023-02-06 11:13:16 593

jQuery Uploadify + Apache Fileupload异步上传文件示例

jQuery Uploadify + Apache Fileupload异步上传文件示例

2014-05-03

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

TA关注的人

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