• SpringBoot2 整合Ehcache组件,轻量级缓存管理

    一、Ehcache缓存简介1、基础简介EhCache是一个纯Java的进程内缓存框架,具有快速、上手简单等特点,是Hibernate中默认的缓存提供方。2、Hibernate缓存Hibernate三级缓存机制简介:一级缓存:基于Session级别分配一块缓存空间,缓存访问的对象信息。Session关闭后会自动清除缓存。二级缓存:是SessionFactory对象缓存,可以被创建出的多个 Session 对象共享,二级缓存默认是关闭的,如果要使用需要手动开启,并且依赖EhCache组件。三级缓存:查询缓存,配...
  • SpringCloud微服务:基于Nacos组件,整合Dubbo框架

    一、基础组件简介1、Dubbo框架Dubbo服务化治理的核心框架,之前几年在国内被广泛使用,后续由于微服务的架构的崛起,更多的公司转向微服务下成熟的技术栈,但是Dubbo本身确实是非常优秀的框架。常见的应用迭代和升级的过程基本如下:当应用访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。随着垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心...
  • MySQL进阶篇(03):合理的使用索引结构和查询

    一、高性能索引1、查询性能问题在MySQL使用的过程中,所谓的性能问题,在大部分的场景下都是指查询的性能,导致查询缓慢的根本原因是数据量的不断变大,解决查询性能的最常见手段是:针对查询的业务场景,设计合理的索引结构。2、索引使用原则索引的使用并不是越多越好,而是针对业务下的查询场景,不断的改进和优化,例如电商系统中用户订单的场景,假设存在如下表结构:CREATE TABLE `ds_user` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',  ...
  • SpringBoot2 整合MinIO中间件,实现文件便捷管理

    一、MinIO简介1、基础描述MinIO是一个开源的对象存储服务。适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。2、存储机制MinIO使用按对象的嵌入式擦除编码保护数据,该编码以汇编代码编写,可提供最高的性能。MinIO使用Reed-Solomon代码将对象划分为n/2个数据和n / 2个奇偶校验块-...
  • Java基础篇(03):流程控制语句,和算法应用

    一、分支语句流程控制语句对任何一门编程语言都是非常重要的,Java中基于流程控制程序执行的不同步骤和代码块。1、IF条件IF条件语句会根据不同的判断条件执行不同的语句,if后括号内的条件是否成立关键步骤,IF条件的判断结果必然要是true或false。IF…Else语句则是满足IF条件,就执行相应代码块,否则就执行Elase代码块。public class Process01 {    public static void main(String[] args) {        // 演示:Node01 ...
  • SpringBoot2 整合FreeMarker模板,完成页面静态化处理

    一、页面静态化1、动静态页面静态页面即静态网页,指已经装载好内容HTML页面,无需经过请求服务器数据和编译过程,直接加载到客户浏览器上显示出来。通俗的说就是生成独立的HTML页面,且不与服务器进行数据交互。优缺点描述:静态网页的内容稳定,页面加载速度极快;不与服务器交互,提升安全性;静态网页的交互性差,数据实时性很低;维度成本高,生成很多HTML页面;动态页面指跟静态网页相对的一种网页编程技术,页面的内容需要请求服务器获取,在不考虑缓存的情况下,服务接口的数据变化,页面加载的内容也会实时变化,显示的内容却是...
  • 数据源管理 | 搜索引擎框架,ElasticSearch集群模式

    ElasticSearch基础功能和用法:MySQL数据全量和增量方式向ES搜索引擎同步Linux系统Centos7环境搭建ElasticSearch中间件SpringBoot2整合ElasticSearch搜索引擎框架在真正海量数据的业务场景中,ElasticSearch搜索引擎都是需要集群化管理的,实时搜素几十亿的数据十分常见。#集群名称cluster.name:esmaster#节点名称node.name:esnode2#开发访问network.host:0.0.0.0#主节点IPdiscovery.zen.ping.unicast.hosts:["192.168.72.133"]内存权限vim/etc/sysctl.conf#添加内容vm.max_map_count=262144#执行sysctl-p3、集群启动添加esroot用户,并授权。/opt/elasticsearch-6.3.2/bin/elasticsearch单服务查看ps-aux|grepelasticsearch集群状态查看http://localhost:9200/_cluster/health?spring:data:elasticsearch:#集群名称cluster-name:esmaster#单节点#cluster-nodes:en-master:9300#cluster-nodes:en-node01:9300cluster-nodes:en-node02:9300test环境链接集群环境,进行数据读取测试。列表查询列表搜索2、开发工具在dev_tools面板中可以执行ElasticSearch相关命令。
  • SpringBoot2 整合JTA组件,多数据源事务管理

    JDBC驱动程序对JTA的支持极大地增强了数据访问能力。XA协议是数据库层面的一套分布式事务管理的规范,JTA是XA协议在Java中的实现,多个数据库或是消息厂商实现JTA接口,开发人员只需要调用SpringJTA接口即可实现JTA事务管理功能。JTA规范定义了事务管理器与其他事务参与者交互的接口,其他的事务参与者与事务管理器进行交互。基本思路都是把数据源交给JTA组件来统一管理,方便事务的通信。
  • Java并发编程(06):Lock机制下API用法详解

    ReentrantLock类实现Lock接口的可重入锁,即线程如果获得当前实例的锁,并进入任务方法,在线程没有释放锁的状态下,可以再次进入任务方法,特点:互斥排它性,即同一个时刻只有一个线程进入任务。=2){System.out.println;condition1.await();}System.out.println;for{System.out.println;}condition2.signalAll();}catch{e.fillInStackTrace();}finally{lock.unlock();}}}//写数据线程staticclassWriteListimplementsRunnable{privateList<String>dataList;publicWriteList{this.dataList=dataList;}@Overridepublicvoidrun(){lock.lock();try{dataList.add;dataList.add;condition1.signalAll();System.out.println;condition2.await();System.out.println;}catch{e.fillInStackTrace();}finally{lock.unlock();}}}}这个生产消费模式和生活中的点餐场景极为类似,用户下单,通知后厨烹饪,烹饪完成之后通知送餐。
  • 架构设计:分布式服务,库表拆分模式详解

    分库分表分库分表主要用来解决单表数据量过大的问题,根据特定字段的路由规则,把数据分散到不同的库,不同的表中。",newObject[]{money,toUser});}}这里只是先演示分布式事务的问题,如何解决分布式事务问题,需要很多的篇幅描述,后面的连续几篇文章再细说。
  • 微服务技术栈:流量整形算法,服务熔断与降级

    漏桶算法提供了一种机制,通过它,突发流量可以被整形以便为网络提供一个稳定的流量。某个微服务发生故障时,要快速切断服务,提示用户,后续请求,不调用该服务,直接返回,释放资源,这就是服务熔断。Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
  • 架构设计 | 单服务.集群.分布式,基本区别和联系

    单服务应用,基于单服务做集群化部署,这种操作运维可以自行搭建环境,所以基本对能力要求不算高。分布式上面关系数据库的分库分表处理,是比较显式且刻意的,在分布式数据库中,天然的支持,且具有良好的水平扩展能力。
  • 架构设计 | 缓存管理模式,监控和内存回收策略

    在遵守缓存使用原则下出现该情况概率非常低,可以通过复杂的Paxos协议保证一致性,一般情况是不考量该场景的处理,如果缓存管理过于复杂,会和缓存层核心理念相悖。总结描述分布式架构中,缓存层面的基本需求就是提高响应速度,不断优化,追求数据库和Redis缓存的数据快速一致性,从提供的各种方案中都可以看出,这也在增加缓存层面处理的复杂性,架构逻辑复杂,就容易导致程序错误,所以针对业务选择合理的处理逻辑,这点很关键。
  • 架构设计 | 分布式系统调度,Zookeeper集群化管理

    一、框架简介1、基础简介Zookeeper基于观察者模式设计的组件,主要应用于分布式系统架构中的,统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等场景。Linux下Zookeeper单节点安装SpringBoot整合Zookeeper中间件2、集群选举Zookeeper集群基于半数机制,集群中半数以上机器存活,集群处于可用状态。所以建议Zookeeper集群安装为奇数台服务器。在集群的配置文件中并没有指定Master和Slave。在Zookeeper工作时,是有一个节点为Lead...
  • 数据源管理 | 基于DataX组件,同步数据和源码分析

    解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。将数据源读取和写入抽象成为Reader和Writer插件,纳入到整个同步框架中。SplitDataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。
  • MySQL基础篇(07):用户和权限管理,日志体系简介

    禁用查询权限点UPDATE`mysql`.`user`SET`Select_priv`='N'WHERE`User`='user01';FLUSHPRIVILEGES;权限验证使用user01登录的客户端,不能查询表数据,说明权限管理起到作用了。SHOWGLOBALVARIABLESLIKE'%log%';正常停止MySQL服务器,可以通过my.cnf更改相关配置。例如,如果mysqld注意到需要自动检查或修复表,它将向错误日志中写入一条消息。
知了一笑

积累是一个孤独且枯燥的过程

0