<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[青葱暖咖啡]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u010257921</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u010257921]]></copyright><item><title><![CDATA[java8_Optional]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/119185965</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/119185965</guid><author>u010257921</author><pubDate>Wed, 28 Jul 2021 17:40:24 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[java8_Lambda]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/119185508</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/119185508</guid><author>u010257921</author><pubDate>Wed, 28 Jul 2021 17:25:29 +0800</pubDate><description><![CDATA[Lambda
简洁的表示可传递的匿名函数的一种方式：它没有名称，但它有参数列表，函数主体，返回类型，可能还有一个可以抛出的异常列表。
箭头操作符将lambda分成了两个部分：参数部分-&gt;函数体
1.只有一条语句的，大括号和renturn都可以不用写
2.在lambda中的参数列表，可以不用写参数的类型
3.lambda表达式所用的接口，必须是函数式接口
函数式接口简介
链接：(https://blog.youkuaiyun.com/qq_28410283/article/details/80962325)
函数式]]></description><category></category></item><item><title><![CDATA[Spring Boot缓存]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106338006</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106338006</guid><author>u010257921</author><pubDate>Mon, 25 May 2020 17:28:34 +0800</pubDate><description><![CDATA[文章内容来自《Spring Boot开发实战 》 陈光剑
使用Spring Cache实现数据的缓存。
在Spring 3.1中，引入了对Cache的支持。在spring-context包中定义了org.spring-framework.cache.CacheManager和org.springframework.cache.Cache接口用来统一不同的缓存的技术。其中，CacheManager是Spring提供的各种缓存技术抽象接口，Cache接口包含缓存的常用操作：增加、删除、读取等。针对不同的缓存技术]]></description><category></category></item><item><title><![CDATA[微服务与Docker]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106140484</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106140484</guid><author>u010257921</author><pubDate>Fri, 15 May 2020 13:50:16 +0800</pubDate><description><![CDATA[微服务与Docker
了解一下微服务运行所需要的容器技术，以及打造在实际生产环境中如何自动构建发布管道
11.1 Docker简介
被认为是有可能改变软件行业系统交付流程现状的最佳工具
世界领先的软件容器虚拟化平台
Linux容器（Linux Containers, LXC），它不像虚拟机那样模拟运行一个完整的操作系统，而是对进程进行隔离。或者说，Linux容器就像是一个箱子，里面放了一系列的进程，从而将这些进程与操作系统进行隔离。正因为容器是进程级别的，所以相比虚拟机有很多的优势；如
容器启动相当于启动本]]></description><category></category></item><item><title><![CDATA[微服务应用安全——Security]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106140425</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106140425</guid><author>u010257921</author><pubDate>Fri, 15 May 2020 13:47:42 +0800</pubDate><description><![CDATA[微服务应用安全——Security
对于业务应用安全，主要考虑两方面：一方面是保障只有认证的用户才可以访问应用，也就是用户认证；另一方面就是要保障访问者只有拥有足够的权限才可以访问某个资源，也就是用户鉴权。
见SecurityConfig，在用户鉴权的configure方法中，antMatchers的命名来源于Java早期的一个构建工具Ant，用于路径匹配，在这里可以使用通配符也可以使用逗号隔开多个路径。

10.2 微服务安全
如何提供细粒度的安全管控方案？
在进行单体架构应用开发时最常使用的安全管理机制]]></description><category></category></item><item><title><![CDATA[消息驱动——Stream]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106140415</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106140415</guid><author>u010257921</author><pubDate>Fri, 15 May 2020 13:47:07 +0800</pubDate><description><![CDATA[消息驱动——Stream
解决这种分布式系统中消息传递方案最好的选择就是消息中间件
通过消息中间件所提供的松散耦合的方式——存储和转发微服务之间的异步数据
9.1 什么是消息驱动开发
异步消息中间件的消息传递模式又可以分为两种：点对点模式和“发布-订阅”模式。
·点对点模式：该模式常用于消息生产者和消息消费者之间点到点的通信；·“发布-订阅”模式：该模式使用主题（Topic）代替点对点中的目的消费者。此时消息生产者只需要将消息发布到主题中即可，而不需要关心是谁消费该消息；而消费者如果需要消费消息，只需要订阅]]></description><category></category></item><item><title><![CDATA[分布式服务跟踪——Sleuth]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106140333</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106140333</guid><author>u010257921</author><pubDate>Fri, 15 May 2020 13:45:29 +0800</pubDate><description><![CDATA[分布式服务跟踪——Sleuth（侦探）
当用户请求链路中的任何一环出现问题或者网络超时，如何对整个请求处理链进行分析。
8.1 Spring Cloud Sleuth简介
Spring Cloud Sleuth为微服务之间调用提供了一套完整的服务链路跟踪解决方案。
·耗时分析，·可视化错误：对于程序未捕捉的异常，可以在集成Zipkin服务界面上看到。
·链路优化：识别出调用比较频繁的微服务；
Spring Cloud Sleuth基于HTTP，在HTTP中的header（头部）添加跟踪所需要的信息，实现原理]]></description><category></category></item><item><title><![CDATA[统一配置中心——Config]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106140223</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106140223</guid><author>u010257921</author><pubDate>Fri, 15 May 2020 13:38:56 +0800</pubDate><description><![CDATA[文章内容来自 《springcloud微服务架构开发实战》 董超 胡炽维
微服务配置处理好的问题：
1.配置数据和服务实例不放在同一个地方，部署也不应该包含这些配置数据，而是当微服务启动时从一个集中的配置源中进行读取。
2.解决非侵入式配置数据的织入。在每个微服务中不希望通过硬编码的方式从某个配置文件、原程仓库或者数据中读取配置数据，而是最好通过一种更通用的方式让微服务可以快速加载这些配置资源。
3.对配置文件的集中式管理，可以非常方便地对微服务的配置进行统一修改和发布，并能够建立版本机制，以便后续进行配置]]></description><category></category></item><item><title><![CDATA[API服务网关]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106140193</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106140193</guid><author>u010257921</author><pubDate>Fri, 15 May 2020 13:36:37 +0800</pubDate><description><![CDATA[文章内容来自 《springcloud微服务架构开发实战》 董超 胡炽维
API服务网关Zuul:微服务访问的统一入口，负责服务请求路由、组合及协议转换等处理。
当API服务网关成为微服务访问的唯一入口后，就可以实现对系统内部架构的封装，将一些与业务无关的公共逻辑抽象到API服务网关中实现.
API服务网关经常会通过编排多个微服务来处理一个服务请求。
利用API服务网关为不同类型的客户端提供定制的API。
缺点:首先，需要为API服务网关开发一个具有高可用的组件,此外，为了能够将微服务的端点接入API服务网]]></description><category></category></item><item><title><![CDATA[服务治理与负载均衡]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106137999</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106137999</guid><author>u010257921</author><pubDate>Fri, 15 May 2020 13:34:35 +0800</pubDate><description><![CDATA[文章内容来自 《springcloud微服务架构开发实战》 董超 胡炽维
作为消费者的微服务知道服务提供者并能够进行消费

packaging配置，这里将其设置为pom，也就是说这个项目不像之前的普通项目最终会打包成一个JAR或者WAR，而仅仅是POM类型的项目，编译后可以作为其他项目的parent父项目。
搭建服务治理服务器——Eureka服务器
spring- cloud-starter-eureka-server
@EnableEurekaServer
application.properties添加]]></description><category></category></item><item><title><![CDATA[微服务架构入门]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106137911</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106137911</guid><author>u010257921</author><pubDate>Fri, 15 May 2020 11:18:54 +0800</pubDate><description><![CDATA[文章内容来自 《springcloud微服务架构开发实战》 董超 胡炽维
构建微服务架构所需要的服务治理（Eureka）、客户端负载均衡（Ribbon）、微服务容错与降级处理（Hystrix）、微服务API统一网关（Zuul）、分布式配置中心（Config）、微服务调用链追踪（Sleuth）、微服务消息驱动开发（Stream）及微服务安全（OAuth及JWT）
大型分布式系统具有复杂性、隐匿性、配合性和易变性四大难题
微服务解决了以往单体架构系统构建的困境。
微服务架构：模块化；
微服务架构从结构上来看就是]]></description><category></category></item><item><title><![CDATA[springcloud介绍]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/106137522</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/106137522</guid><author>u010257921</author><pubDate>Fri, 15 May 2020 11:15:26 +0800</pubDate><description><![CDATA[springcloud介绍
代码开发时有GoF的经典开发模式可以供我们参考使用一样，对于微服务架构，业界也有一些成功的模式和实践，Spring Cloud就是微服务架构应用的集大成者。

1．微服务的服务治理
作为消费者如何访问并调用服务提供者所提供的服务，作为服务提供者如何能让服务消费者知道并进行消费。在进行快速扩展时我们不可能预先知道所有的服务实例地址并告知服务消费者，而且也无法确定有哪些、有多少消费者会来消费。
通过服务发现，消费者通过相应的服务名称就可以实现服务调用。服务注册机制，可以让服务提供者在]]></description><category></category></item><item><title><![CDATA[7 Tomcat分析]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/104016221</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/104016221</guid><author>u010257921</author><pubDate>Fri, 17 Jan 2020 11:16:55 +0800</pubDate><description><![CDATA[7 Tomcat分析
7.1.1　Tomcat的顶层结构
Tomcat中最顶层的容器叫Server，代表整个服务器，Server中包含至少一个Service，用于具体提供服务。Service主要包含两部分：Connector和Container。Connector用于处理连接相关的事情，并提供Socket与request、response的转换，Container用于封装和管理Servlet，以及...]]></description><category></category></item><item><title><![CDATA[线程安全与锁优化]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/103960575</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/103960575</guid><author>u010257921</author><pubDate>Mon, 13 Jan 2020 16:48:52 +0800</pubDate><description><![CDATA[线程安全与锁优化
当多个线程访问一个对象时，如果不用考虑这些线程在运行时环境下的调度和交替执行，也不需要进行额外的同步，或者在调用方进行任何其他的协调操作，调用这个对象的行为都可以获得正确的结果，那这个对象就是线程安全的
按照线程安全的“安全程度”由强至弱来排序，将Java语言中各种操作共享的数据分为以下五类：不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。
1.不可变
JDK 1.5以后...]]></description><category></category></item><item><title><![CDATA[Java内存模型与线程]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/103927058</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/103927058</guid><author>u010257921</author><pubDate>Fri, 10 Jan 2020 16:34:12 +0800</pubDate><description><![CDATA[Java内存模型与线程
每秒事务处理数（Transactions Per Second，TPS）、
Java语言和虚拟机提供了许多工具，把并发编程的门槛降低了不少。另外，各种中间件服务器、各类框架
12.2 硬件的效率与一致性
现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存（Cache）来作为内存与处理器之间的缓冲：
为了解决一致性的问题，需要各个处理器访问缓存时都遵循一...]]></description><category></category></item><item><title><![CDATA[晚期（运行期）优化]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/103927003</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/103927003</guid><author>u010257921</author><pubDate>Fri, 10 Jan 2020 16:32:02 +0800</pubDate><description><![CDATA[晚期（运行期）优化
概述
最初是解释执行的；在运行时，虚拟机将会把热点代码编译成与本地平台相关的机器码，并进行各种层次的优化，完成这个任务的编译器称为即时编译器（Just In TimeCompiler，下文中简称JIT编译器）。
JIT不是虚拟机必需部分，但是其性能的好坏、代码优化程度的高低却是衡量一款商用虚拟机优秀与否的最关键的指标之一。本章内容针对HOTSPOT虚拟机。
11.2 HotSp...]]></description><category></category></item><item><title><![CDATA[早期（编译期）优化]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/103926991</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/103926991</guid><author>u010257921</author><pubDate>Fri, 10 Jan 2020 16:31:31 +0800</pubDate><description><![CDATA[早期（编译期）优化
10.1概述
Java语言的“编译期”是一段“不确定”的操作过程，因为它可能是
1）指一个前端编译器（其实叫“编译器的前端”更准确一些）把*.java文件转变成*.class文件的过程；如Sun的Javac、Eclipse JDT中的增量式编译器（ECJ）
2）也可能是指虚拟机的后端运行期编译器（JIT编译器，Just In Time Compiler）把字节码转变成机器码的过...]]></description><category></category></item><item><title><![CDATA[类加载及执行子系统的案例与实战]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/103926977</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/103926977</guid><author>u010257921</author><pubDate>Fri, 10 Jan 2020 16:31:08 +0800</pubDate><description><![CDATA[类加载及执行子系统的案例与实战
在Class文件格式与执行引擎这部分里，用户的程序能直接影响的内容并不太多。能通过程序进行操作的，主要是字节码生成与类加载器这两部分的功能。
.1 Tomcat：正统的类加载器架构
主流的Java Web服务器，如Tomcat、Jetty、WebLogic、WebSphere或其他笔者没有列举的服务器，都实现了自己定义的类加载器
在Tomcat目录结构中，一共四组，...]]></description><category></category></item><item><title><![CDATA[虚拟机字节码执行引擎]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/103926957</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/103926957</guid><author>u010257921</author><pubDate>Fri, 10 Jan 2020 16:30:43 +0800</pubDate><description><![CDATA[虚拟机字节码执行引擎
局部变量表中变量slot是否被回收：是否还有关于此变量的数组对象的引用；
如果一个局部变量定义了但没有赋初始值是不能使用的，此不同于类变量；

操作数栈,后入先出
最大深度也在编译的时候被写入到Code属性的max_stacks数据项之中
在概念模型中，两个栈帧作为虚拟机栈的元素，相互之间是完全独立的。但是大多数虚拟机的实现里都会做一些优化处理，令两个栈帧出现一部分重叠
2....]]></description><category></category></item><item><title><![CDATA[虚拟机类加载机制]]></title><link>https://blog.youkuaiyun.com/u010257921/article/details/103926931</link><guid>https://blog.youkuaiyun.com/u010257921/article/details/103926931</guid><author>u010257921</author><pubDate>Fri, 10 Jan 2020 16:29:58 +0800</pubDate><description><![CDATA[虚拟机类加载机制
类从被加载到虚拟机内存中开始，到卸载出内存为止，它的整个生命周期包括了：加载（Loading）、验证（Verification）、准备（Preparation）、解析（Resolution）、初始化（Initialization）、使用（Using）和卸载（Unloading）七个阶段。其中验证、准备和解析三个部分统称为连接（Linking）
在Java语言里面，类型的加载和连接...]]></description><category></category></item></channel></rss>