自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

翻译 java8_Optional

Optional静态类简介,以及用法很多的stream的终端操作,都返回了一个Optional对象,这个对象,是用来解决空指针的问题,而产生的一个类;类定义:import java.util.NoSuchElementException;import java.util.Objects;import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Predicate

2021-07-28 17:40:24 102 1

翻译 java8_Lambda

Lambda简洁的表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表,函数主体,返回类型,可能还有一个可以抛出的异常列表。箭头操作符将lambda分成了两个部分:参数部分->函数体1.只有一条语句的,大括号和renturn都可以不用写2.在lambda中的参数列表,可以不用写参数的类型3.lambda表达式所用的接口,必须是函数式接口函数式接口简介链接:(https://blog.csdn.net/qq_28410283/article/details/80962325)函数式

2021-07-28 17:25:29 130

原创 Spring Boot缓存

文章内容来自《Spring Boot开发实战 》 陈光剑使用Spring Cache实现数据的缓存。在Spring 3.1中,引入了对Cache的支持。在spring-context包中定义了org.spring-framework.cache.CacheManager和org.springframework.cache.Cache接口用来统一不同的缓存的技术。其中,CacheManager是Spring提供的各种缓存技术抽象接口,Cache接口包含缓存的常用操作:增加、删除、读取等。针对不同的缓存技术

2020-05-25 17:28:34 224

原创 微服务与Docker

微服务与Docker了解一下微服务运行所需要的容器技术,以及打造在实际生产环境中如何自动构建发布管道11.1 Docker简介被认为是有可能改变软件行业系统交付流程现状的最佳工具世界领先的软件容器虚拟化平台Linux容器(Linux Containers, LXC),它不像虚拟机那样模拟运行一个完整的操作系统,而是对进程进行隔离。或者说,Linux容器就像是一个箱子,里面放了一系列的进程,从而将这些进程与操作系统进行隔离。正因为容器是进程级别的,所以相比虚拟机有很多的优势;如容器启动相当于启动本

2020-05-15 13:50:16 694

原创 微服务应用安全——Security

微服务应用安全——Security对于业务应用安全,主要考虑两方面:一方面是保障只有认证的用户才可以访问应用,也就是用户认证;另一方面就是要保障访问者只有拥有足够的权限才可以访问某个资源,也就是用户鉴权。见SecurityConfig,在用户鉴权的configure方法中,antMatchers的命名来源于Java早期的一个构建工具Ant,用于路径匹配,在这里可以使用通配符也可以使用逗号隔开多个路径。10.2 微服务安全如何提供细粒度的安全管控方案?在进行单体架构应用开发时最常使用的安全管理机制

2020-05-15 13:47:42 1564

原创 消息驱动——Stream

消息驱动——Stream解决这种分布式系统中消息传递方案最好的选择就是消息中间件通过消息中间件所提供的松散耦合的方式——存储和转发微服务之间的异步数据9.1 什么是消息驱动开发异步消息中间件的消息传递模式又可以分为两种:点对点模式和“发布-订阅”模式。·点对点模式:该模式常用于消息生产者和消息消费者之间点到点的通信;·“发布-订阅”模式:该模式使用主题(Topic)代替点对点中的目的消费者。此时消息生产者只需要将消息发布到主题中即可,而不需要关心是谁消费该消息;而消费者如果需要消费消息,只需要订阅

2020-05-15 13:47:07 1193

原创 分布式服务跟踪——Sleuth

分布式服务跟踪——Sleuth(侦探)当用户请求链路中的任何一环出现问题或者网络超时,如何对整个请求处理链进行分析。8.1 Spring Cloud Sleuth简介Spring Cloud Sleuth为微服务之间调用提供了一套完整的服务链路跟踪解决方案。·耗时分析,·可视化错误:对于程序未捕捉的异常,可以在集成Zipkin服务界面上看到。·链路优化:识别出调用比较频繁的微服务;Spring Cloud Sleuth基于HTTP,在HTTP中的header(头部)添加跟踪所需要的信息,实现原理

2020-05-15 13:45:29 985

原创 统一配置中心——Config

文章内容来自 《springcloud微服务架构开发实战》 董超 胡炽维微服务配置处理好的问题:1.配置数据和服务实例不放在同一个地方,部署也不应该包含这些配置数据,而是当微服务启动时从一个集中的配置源中进行读取。2.解决非侵入式配置数据的织入。在每个微服务中不希望通过硬编码的方式从某个配置文件、原程仓库或者数据中读取配置数据,而是最好通过一种更通用的方式让微服务可以快速加载这些配置资源。3.对配置文件的集中式管理,可以非常方便地对微服务的配置进行统一修改和发布,并能够建立版本机制,以便后续进行配置

2020-05-15 13:38:56 1578

原创 API服务网关

文章内容来自 《springcloud微服务架构开发实战》 董超 胡炽维API服务网关Zuul:微服务访问的统一入口,负责服务请求路由、组合及协议转换等处理。当API服务网关成为微服务访问的唯一入口后,就可以实现对系统内部架构的封装,将一些与业务无关的公共逻辑抽象到API服务网关中实现.API服务网关经常会通过编排多个微服务来处理一个服务请求。利用API服务网关为不同类型的客户端提供定制的API。缺点:首先,需要为API服务网关开发一个具有高可用的组件,此外,为了能够将微服务的端点接入API服务网

2020-05-15 13:36:37 415

原创 服务治理与负载均衡

文章内容来自 《springcloud微服务架构开发实战》 董超 胡炽维作为消费者的微服务知道服务提供者并能够进行消费packaging配置,这里将其设置为pom,也就是说这个项目不像之前的普通项目最终会打包成一个JAR或者WAR,而仅仅是POM类型的项目,编译后可以作为其他项目的parent父项目。搭建服务治理服务器——Eureka服务器spring- cloud-starter-eureka-server@EnableEurekaServerapplication.properties添加

2020-05-15 13:34:35 381

原创 微服务架构入门

文章内容来自 《springcloud微服务架构开发实战》 董超 胡炽维构建微服务架构所需要的服务治理(Eureka)、客户端负载均衡(Ribbon)、微服务容错与降级处理(Hystrix)、微服务API统一网关(Zuul)、分布式配置中心(Config)、微服务调用链追踪(Sleuth)、微服务消息驱动开发(Stream)及微服务安全(OAuth及JWT)大型分布式系统具有复杂性、隐匿性、配合性和易变性四大难题微服务解决了以往单体架构系统构建的困境。微服务架构:模块化;微服务架构从结构上来看就是

2020-05-15 11:18:54 358

原创 springcloud介绍

springcloud介绍代码开发时有GoF的经典开发模式可以供我们参考使用一样,对于微服务架构,业界也有一些成功的模式和实践,Spring Cloud就是微服务架构应用的集大成者。1.微服务的服务治理作为消费者如何访问并调用服务提供者所提供的服务,作为服务提供者如何能让服务消费者知道并进行消费。在进行快速扩展时我们不可能预先知道所有的服务实例地址并告知服务消费者,而且也无法确定有哪些、有多少消费者会来消费。通过服务发现,消费者通过相应的服务名称就可以实现服务调用。服务注册机制,可以让服务提供者在

2020-05-15 11:15:26 195

原创 7 Tomcat分析

7 Tomcat分析7.1.1 Tomcat的顶层结构Tomcat中最顶层的容器叫Server,代表整个服务器,Server中包含至少一个Service,用于具体提供服务。Service主要包含两部分:Connector和Container。Connector用于处理连接相关的事情,并提供Socket与request、response的转换,Container用于封装和管理Servlet,以及...

2020-01-17 11:16:55 284

原创 线程安全与锁优化

线程安全与锁优化当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的按照线程安全的“安全程度”由强至弱来排序,将Java语言中各种操作共享的数据分为以下五类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。1.不可变JDK 1.5以后...

2020-01-13 16:48:52 110

原创 Java内存模型与线程

Java内存模型与线程每秒事务处理数(Transactions Per Second,TPS)、Java语言和虚拟机提供了许多工具,把并发编程的门槛降低了不少。另外,各种中间件服务器、各类框架12.2 硬件的效率与一致性现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲:为了解决一致性的问题,需要各个处理器访问缓存时都遵循一...

2020-01-10 16:34:12 145

原创 晚期(运行期)优化

晚期(运行期)优化概述最初是解释执行的;在运行时,虚拟机将会把热点代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In TimeCompiler,下文中简称JIT编译器)。JIT不是虚拟机必需部分,但是其性能的好坏、代码优化程度的高低却是衡量一款商用虚拟机优秀与否的最关键的指标之一。本章内容针对HOTSPOT虚拟机。11.2 HotSp...

2020-01-10 16:32:02 204

原创 早期(编译期)优化

早期(编译期)优化10.1概述Java语言的“编译期”是一段“不确定”的操作过程,因为它可能是1)指一个前端编译器(其实叫“编译器的前端”更准确一些)把*.java文件转变成*.class文件的过程;如Sun的Javac、Eclipse JDT中的增量式编译器(ECJ)2)也可能是指虚拟机的后端运行期编译器(JIT编译器,Just In Time Compiler)把字节码转变成机器码的过...

2020-01-10 16:31:31 107

原创 类加载及执行子系统的案例与实战

类加载及执行子系统的案例与实战在Class文件格式与执行引擎这部分里,用户的程序能直接影响的内容并不太多。能通过程序进行操作的,主要是字节码生成与类加载器这两部分的功能。.1 Tomcat:正统的类加载器架构主流的Java Web服务器,如Tomcat、Jetty、WebLogic、WebSphere或其他笔者没有列举的服务器,都实现了自己定义的类加载器在Tomcat目录结构中,一共四组,...

2020-01-10 16:31:08 180

原创 虚拟机字节码执行引擎

虚拟机字节码执行引擎局部变量表中变量slot是否被回收:是否还有关于此变量的数组对象的引用;如果一个局部变量定义了但没有赋初始值是不能使用的,此不同于类变量;操作数栈,后入先出最大深度也在编译的时候被写入到Code属性的max_stacks数据项之中在概念模型中,两个栈帧作为虚拟机栈的元素,相互之间是完全独立的。但是大多数虚拟机的实现里都会做一些优化处理,令两个栈帧出现一部分重叠2....

2020-01-10 16:30:43 99

原创 虚拟机类加载机制

虚拟机类加载机制类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)七个阶段。其中验证、准备和解析三个部分统称为连接(Linking)在Java语言里面,类型的加载和连接...

2020-01-10 16:29:58 138

原创 类文件结构

类文件结构代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步1 概述越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式2 无关性的基石在Java虚拟机之上运行的语言,如Clojure、Groovy、JRuby、Jython、Scala3 Class类文件的结构Class文件是一组以8位字节为基础单位的二进...

2020-01-10 16:29:22 173

原创 调优案例分析与实战

调优案例分析与实战1 高性能硬件上的程序部署策略2 集群间同步导致的内存溢出3 堆外内存导致的溢出错误4 外部命令导致系统缓慢5 服务器JVM进程崩溃3 实战:Eclipse运行速度调优1.Eclipse:由于安装的插件比较大(如Klocwork、ClearCase LT等)、代码也很多,启动Eclipse直到所有项目编译完成需要四五分钟配置文件eclipse. ini;代码清单5...

2020-01-10 16:28:38 120

原创 虚拟机性能监控与故障处理工具

虚拟机性能监控与故障处理工具jdk1.5的虚拟机,程序启动时请添加参数“-Dcom.sun.management.jmxremote”开启JMX管理功能1 jps:虚拟机进程状况工具功能:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)的名称,以及这些进程的本地虚拟机的唯一ID(LVMID)本地虚拟机进程的LVMID,等于操作系统的进程I...

2020-01-10 16:28:06 157

原创 垃圾收集器与内存分配策略

垃圾收集器与内存分配策略针对对象:Java堆,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我们只有在程序处于运行期间时才能知道会创建哪些对象,这部分内存的分配和回收都是动态的1.引用计数应用案例:微软的COM(Component Object Model)技术、使用ActionScript3的FlashPlayer、Python语言以及在游戏脚本领...

2020-01-10 16:27:21 155

原创 java虚拟机运行时数据区

1.程序计数器:当前县城之心工单而字节码的行号指示器;字节码解释器工作依赖于他;线程私有;java方法记录的是正在执行的虚拟机字节码指令的地址;native计数器的值为空;2.java虚拟机栈:线程私有,生命周期与线程相同;是java方法(字节码)执行的内存模型;每个方法执行对应创建一个栈帧,存储,操作栈,动态链接,方法出口等;局部变量表:内存大小在编译期间分配完成;运行期间不会变化;...

2019-12-18 19:08:41 101

转载 curl用法指南

curl支持FTP,FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE ,LDAP等协议HTTP协议格式请求报文:请求行+请求头+请求数据/空行请求行:方法字段+URL字段+HTTP协议版本,如GET/sample.jspHTTP/1.1请求头:User-Agent(产生请求的浏览器类型)+Accept(客户端可识别的内容类型列表)...

2019-11-28 17:41:48 495

翻译 redis使用场景

redis命令大全,中文网址http://www.redis.cn/commands.html原创网址https://zhuanlan.zhihu.com/p/76496852?utm_source=wechat_session&utm_medium=social&utm_oi=763356386112327680感谢作者一、分布式锁(string)setnx key va...

2019-11-27 17:57:09 131

翻译 session cookies token

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话二·cookieCookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。1、会话Cookie和持久Cookie若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话...

2019-07-29 21:51:12 148

翻译 sonar

来自链接http://www.imooc.com/article/279446?block_id=tuijian_wz的总结笔记sonar服务端搭建:sonar-qube1环境准备:jdk,sonar-qube,sonar-scanner,mysql,windows环境2安装配置:1)安装jdk配置2)安装mysql,创建sonar数据库3)解压缩sonar-qube,在conf文件夹...

2019-07-25 17:08:28 108

原创 git常用操作

git三个分支:test测试, master主分支, develop开发分支新建分支

2019-07-23 12:25:12 125

原创 git常用命令

1.本地分支和远程分支建立映射关系git branch --set-upstream-to origin/远程分支名 本地分支名

2019-06-24 14:58:31 85

空空如也

空空如也

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

TA关注的人

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