<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[black____的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/black____</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; black____]]></copyright><item><title><![CDATA[Java面试笔记]]></title><link>https://blog.youkuaiyun.com/black____/article/details/126948981</link><guid>https://blog.youkuaiyun.com/black____/article/details/126948981</guid><author>black____</author><pubDate>Mon, 26 Sep 2022 09:55:15 +0800</pubDate><description><![CDATA[面试八股笔记]]></description><category></category></item><item><title><![CDATA[Redis实现优惠券秒杀]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125312476</link><guid>https://blog.youkuaiyun.com/black____/article/details/125312476</guid><author>black____</author><pubDate>Mon, 20 Jun 2022 10:37:00 +0800</pubDate><description><![CDATA[全局ID生成器，是一种在分布式系统下用来生成全局唯一ID的工具，一般要满足下列特性：为了增加ID的安全性，我们可以不直接使用Redis自增的数值，而是拼接一些其它信息：
ID的组成部分：类似于雪花算法

全局唯一ID生成策略：每个店铺都可以发布优惠券，分为平价券和特价券。平价券可以任意购买，而特价券需要秒杀抢购：



超卖问题是典型的多线程安全问题，针对这一问题的常见解决方案就是加锁：
乐观锁的关键是判断之前查询得到的数据是否有被修改过，常见的方式有两种：
解决办法

使用lua脚本实现Redis命令的原]]></description><category></category></item><item><title><![CDATA[计算机病毒2]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125316531</link><guid>https://blog.youkuaiyun.com/black____/article/details/125316531</guid><author>black____</author><pubDate>Thu, 16 Jun 2022 15:10:35 +0800</pubDate><description><![CDATA[一、计算机病毒与医学上的“病毒”不同，它不是天然存在的，而是某些人利用计算机软、硬件所固有的脆弱性，编制的具有特殊功能的程序。同医学上的病毒具有同样传染和破坏的特性1.具有自我复制能力2.很强的感染性3.一定的潜伏性4.特定的触发性5.很大的破坏性计算机病毒由生物医学上的病毒引申出来的逻辑炸弹蠕虫1994年2月18日《中华人民共和国计算机信息系统安全保护条例》二十八条:计算机病毒，是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据，影响计算机使用，并能自我复制的一组计算机指令或程序代码。二 、从广义]]></description><category></category></item><item><title><![CDATA[计算机病毒]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125306862</link><guid>https://blog.youkuaiyun.com/black____/article/details/125306862</guid><author>black____</author><pubDate>Wed, 15 Jun 2022 23:28:09 +0800</pubDate><description><![CDATA[**同医学上的病毒具有同样传染和破坏的特性 **计算机病毒由生物医学上的病毒引申出来的 **
以广义上定义,凡是能够引起计算机故障、破坏计算机数据的程序统称为计算机病毒**。1994 年 2 月 18 日《中华人民共和国计算机信息系统安全保护条例》 二十八条移动存储设备
磁带，CD，U 盘，硬盘如图，QQ，微信，MSN，网络钓鱼邮件，手机**按照计算机病毒攻击的系统分类 ****按照计算机病毒的寄生部位或传染对象分类(计算机病毒的部分或全部逻辑取代 正常引导记录，将正常的引导记录存在磁盘其他地方） ****]]></description><category></category></item><item><title><![CDATA[Oracle]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125298649</link><guid>https://blog.youkuaiyun.com/black____/article/details/125298649</guid><author>black____</author><pubDate>Wed, 15 Jun 2022 15:54:33 +0800</pubDate><description><![CDATA[数据类型
1、字符类型• CHAR：一个定长字符串，当位数不足自动用空格填充来达到其最大长度。如非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。• VARCHAR2：目前这也是VARCHAR 的同义词。这是一个变长字符串，与CHAR 类型不同，它不会用空格填充至最大长度。VARCHAR2(12)可能包含0～12字节的信息。VARCHAR2最多可以存储4,000 字节的信息。CHAR和VARCHAR2的比较CHAR(4) “A“ 实际在数据库中存储为"A ““A]]></description><category></category></item><item><title><![CDATA[信息安全导论]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125254209</link><guid>https://blog.youkuaiyun.com/black____/article/details/125254209</guid><author>black____</author><pubDate>Mon, 13 Jun 2022 15:09:48 +0800</pubDate><description><![CDATA[保密性（Confidentiality）、完整性（Integrity）和可用性（Availability）是信息安全的三大基石。1）保密性：保证信息不泄露给未经授权的用户。2）完整性：保证信息从真实的发信者传送到真实的收信者手中，传送过程中没有被非法用户添加、删除、替换等。3）可用性：保证授权用户能对数据进行及时可靠的访问。除CIA外，还有一些属性也是要求达到的，如可控性（Controllability）和不可否认性（Non-Repudiation）。但信息安全的三要素是机密性、完整性和可用性，不能更改。A]]></description><category></category></item><item><title><![CDATA[MyBatis-Plus]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125248885</link><guid>https://blog.youkuaiyun.com/black____/article/details/125248885</guid><author>black____</author><pubDate>Sun, 12 Jun 2022 19:30:44 +0800</pubDate><description><![CDATA[MyBatis-Plus (opens new window)（简称 MP）是一个 MyBatis (opens new window)的增强工具，在 MyBatis 的基础上只做增强不做改变，为简化开发、提高效率而生。打开Navicat运行以下SQL脚本进行建库建表


插入几条测试数据


3.创建工程


使用快速初始化一个 Spring Boot 工程引入的依赖


安装插件配置文件


在 Spring Boot 启动类中添加  注解，扫描 Mapper 文件夹


编写实体类 （此处使用了 Lo]]></description><category></category></item><item><title><![CDATA[案例分析笔记]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125248383</link><guid>https://blog.youkuaiyun.com/black____/article/details/125248383</guid><author>black____</author><pubDate>Sun, 12 Jun 2022 18:45:35 +0800</pubDate><description><![CDATA[DNS 是域名系统( Domain Name System ）的缩写，它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应 IP 地址，并具有将域名转换为 IP 地址功能的服务器。其中域名必须对应一个 IP 地址，而 IP 地址不一定有域名。将域名映射为 IP 地址的过程就称为“域名解析”。在 Internet 上域名与 IP 地址之间是一对一（或者多对一）的，域名虽然便于人们记忆，但机器之间只能互相认识 IP 地址，它们之间的转换工作称为域名解析，域名解析需要由专门的域名解析服]]></description><category></category></item><item><title><![CDATA[应用系统安全检测技术]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125248336</link><guid>https://blog.youkuaiyun.com/black____/article/details/125248336</guid><author>black____</author><pubDate>Sun, 12 Jun 2022 18:43:02 +0800</pubDate><description><![CDATA[1.2 并发与并行

2.进程
2.1 特征

2.2 相关概念
●PCB是进程存在的唯一标志
2.3 线程
2.3.1 相关概念

2.3.2 线程的实现方式

2.3.3 内核级线程

3.文件管理
3.1 概念

3.2 逻辑组织

3.3 物理组织

3.4 目录结构

3.5 存储空间管理

4.内存管理
4.1 概念
4.2 物理内存管理
4.3 虚拟内存管理
5.I/O管理
计算机网络
1.概述
1.1 计算机网络的组成

1.2 计算机网络的功能
1.3 分类
1.4 性能指标
1. 计算机]]></description><category></category></item><item><title><![CDATA[分布式搜索引擎03]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125233423</link><guid>https://blog.youkuaiyun.com/black____/article/details/125233423</guid><author>black____</author><pubDate>Sat, 11 Jun 2022 12:57:06 +0800</pubDate><description><![CDATA[聚合（aggregations）可以让我们极其方便的实现对数据的统计、分析、运算。例如：实现这些统计功能的比数据库的sql要方便的多，而且查询速度非常快，可以实现近实时搜索效果。聚合常见的有三类：**桶（Bucket）**聚合：用来对文档做分组**度量（Metric）**聚合：用以计算一些值，比如：最大值、最小值、平均值等**管道（pipeline）**聚合：其它聚合的结果为基础做聚合现在，我们要统计所有数据中的酒店品牌有几种，其实就是按照品牌对数据分组。此时可以根据酒店品牌的名称做聚合，也就是Bucket]]></description><category></category></item><item><title><![CDATA[分布式搜索引擎02]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125233192</link><guid>https://blog.youkuaiyun.com/black____/article/details/125233192</guid><author>black____</author><pubDate>Sat, 11 Jun 2022 12:26:59 +0800</pubDate><description><![CDATA[在昨天的学习中，我们已经导入了大量数据到elasticsearch中，实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。所以今天，我们研究下elasticsearch的数据搜索功能。我们会分别使用DSL和RestClient实现搜索。elasticsearch的查询依然是基于JSON风格的DSL来实现的。Elasticsearch提供了基于JSON的DSL（Domain Specific Language）来定义查询。常见的查询类型包括：查询所有：查询出]]></description><category></category></item><item><title><![CDATA[分布式搜索引擎01]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125211150</link><guid>https://blog.youkuaiyun.com/black____/article/details/125211150</guid><author>black____</author><pubDate>Sat, 11 Jun 2022 11:51:45 +0800</pubDate><description><![CDATA[– elasticsearch基础elasticsearch是一款非常强大的开源搜索引擎，具备非常多强大功能，可以帮助我们从海量数据中快速找到需要的内容例如：在电商网站搜索商品在百度搜索答案elasticsearch结合kibana、Logstash、Beats，也就是elastic stack（ELK）。被广泛应用在日志数据分析、实时监控等领域：而elasticsearch是elastic stack的核心，负责存储、搜索、分析数据。elasticsearch底层是基于lucene来实现的。Lucene是]]></description><category></category></item><item><title><![CDATA[RabbitMQ部署指南]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125218126</link><guid>https://blog.youkuaiyun.com/black____/article/details/125218126</guid><author>black____</author><pubDate>Fri, 10 Jun 2022 11:14:36 +0800</pubDate><description><![CDATA[我们在Centos7虚拟机中使用Docker来安装。方式一：在线拉取
方式二：从本地加载在课前资料已经提供了镜像包：上传到虚拟机中后，使用命令加载镜像即可：
1.2.安装MQ
执行下面的命令来运行MQ容器：
2.集群部署
接下来，我们看看如何安装RabbitMQ的集群。在RabbitMQ的官方文档中，讲述了两种集群的配置方式：我们先来看普通模式集群。首先，我们需要让3台MQ互相知道对方的存在。分别在3台机器中，设置 /etc/hosts文件，添加如下内容：
并在每台机器上测试，是否可以ping通对方：168]]></description><category></category></item><item><title><![CDATA[CentOS安装Docker]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125204157</link><guid>https://blog.youkuaiyun.com/black____/article/details/125204157</guid><author>black____</author><pubDate>Thu, 09 Jun 2022 15:24:17 +0800</pubDate><description><![CDATA[Docker 分为 CE 和 EE 两大版本。CE 即社区版（免费，支持周期 7 个月），EE 即企业版，强调安全，付费使用，支持周期 24 个月。Docker CE 分为   和  三个更新频道。官方网站上有各种环境下的 安装指南，这里主要介绍 Docker CE 在 CentOS上的安装。Docker CE 支持 64 位版本 CentOS 7，并且要求内核版本不低于 3.10， CentOS 7 满足最低内核的要求，所以我们在CentOS 7安装Docker。如果之前安装过旧版本的Docker，可以使]]></description><category></category></item><item><title><![CDATA[RabbitMQ]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125200828</link><guid>https://blog.youkuaiyun.com/black____/article/details/125200828</guid><author>black____</author><pubDate>Thu, 09 Jun 2022 13:13:47 +0800</pubDate><description><![CDATA[微服务间通讯有同步和异步两种方式：同步通讯：就像打电话，需要实时响应。异步通讯：就像发邮件，不需要马上回复。两种方式各有优劣，打电话可以立即得到响应，但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件，但是往往响应会有延迟。我们之前学习的Feign调用就属于同步方式，虽然调用可以实时得到结果，但存在下面的问题：总结：同步调用的优点：同步调用的问题：异步调用则可以避免上述问题：我们以购买商品为例，用户支付后需要调用订单服务完成订单状态修改，调用物流服务，从仓库分配响应的库存并准备发货。在事件模式中]]></description><category></category></item><item><title><![CDATA[Docker实用篇]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125199898</link><guid>https://blog.youkuaiyun.com/black____/article/details/125199898</guid><author>black____</author><pubDate>Thu, 09 Jun 2022 11:50:34 +0800</pubDate><description><![CDATA[微服务虽然具备各种各样的优势，但服务的拆分通用给部署带来了很大的麻烦。大型项目组件较多，运行环境也较为复杂，部署时会碰到一些问题：依赖关系复杂，容易出现兼容性问题开发、测试、生产环境有差异例如一个项目中，部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等，这些服务部署时所需要的函数库、依赖项各不相同，甚至会有冲突。给部署带来了极大的困难。而Docker确巧妙的解决了这些问题，Docker是如何实现的呢？Docker为了解决依赖的兼容问题的，采用了两个手段：将应用的Libs（函数库）、]]></description><category></category></item><item><title><![CDATA[Redis场景问题]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125107552</link><guid>https://blog.youkuaiyun.com/black____/article/details/125107552</guid><author>black____</author><pubDate>Thu, 02 Jun 2022 22:24:08 +0800</pubDate><description><![CDATA[session共享问题：多台Tomcat并不共享session存储空间，当请求切换到不同tomcat服务时导致数据丢失的问题。
session的替代方案应该满足：
•数据共享
•内存存储
•key、value结构

所以我们基于Redis实现共享session登录
缓存就是数据交换的缓冲区（称作Cache [ kæʃ ] ），是存贮数据的临时地方，一般读写性能较高。

缓存的作用：缓存的成本：
缓存更新策略

删除缓存也需要考虑是先删除缓存还是先更新数据库？
场景一：先删除缓存在更新数据库场景二：先更新数据]]></description><category></category></item><item><title><![CDATA[Nacos集群搭建]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125106830</link><guid>https://blog.youkuaiyun.com/black____/article/details/125106830</guid><author>black____</author><pubDate>Thu, 02 Jun 2022 21:04:48 +0800</pubDate><description><![CDATA[官方给出的Nacos集群图：其中包含3个nacos节点，然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。我们计划的集群结构：三个nacos节点的地址：搭建集群的基本步骤：Nacos默认数据存储在内嵌数据库Derby中，不属于生产可用的数据库。官方推荐的最佳实践是使用带有主从的高可用数据库集群，主从模式的高可用数据库可以参考传智教育的后续高手课程。这里我们以单点的数据库为例来讲解。首先新建一个数据库，命名为nacos，而后导入下面的SQL：
2.2.下载nacos
nacos在GitH]]></description><category></category></item><item><title><![CDATA[Nacos配置管理]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125106566</link><guid>https://blog.youkuaiyun.com/black____/article/details/125106566</guid><author>black____</author><pubDate>Thu, 02 Jun 2022 20:58:03 +0800</pubDate><description><![CDATA[Nacos除了可以做注册中心，同样可以做配置管理来使用。当微服务部署的实例越来越多，达到数十、数百时，逐个修改微服务配置就会让人抓狂，而且很容易出错。我们需要一种统一配置管理方案，可以集中管理所有实例的配置。Nacos一方面可以将配置集中管理，另一方可以在配置变更时，及时通知微服务，实现配置的热更新。如何在nacos中管理配置呢？然后在弹出的表单中，填写配置信息：微服务要拉取nacos中管理的配置，并且与本地的application.yml配置合并，才能完成项目启动。但如果尚未读取application.y]]></description><category></category></item><item><title><![CDATA[nacos基本介绍]]></title><link>https://blog.youkuaiyun.com/black____/article/details/125105466</link><guid>https://blog.youkuaiyun.com/black____/article/details/125105466</guid><author>black____</author><pubDate>Thu, 02 Jun 2022 18:45:47 +0800</pubDate><description><![CDATA[1.  通过SpringBoot的注解 @ConfigurationProperties(prefix = "pattern")进行注入
    1.  首先创建一个配置类，在配置类里定义与配置文件名字相同的属性，设置get set 方法 之后使用这个注解就可以将这个配置的属性注入到配置类中并放在IOC容器中。
    2.  在需要使用的类里面通过@Autowired注入改对象，通过get方法获取配置类的信息，实现热更新。
    3.  这个方法的优点是不用使用@RefreshScope注解......]]></description><category></category></item></channel></rss>