<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Soul_Ming的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Soul_Ming</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Soul_Ming]]></copyright><item><title><![CDATA[COBOL 中定义变量]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/125394277</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/125394277</guid><author>Soul_Ming</author><pubDate>Tue, 21 Jun 2022 16:51:50 +0800</pubDate><description><![CDATA[例子：
03 VAR PIC AAAAA.    VAR变量长度为5个字符，不能有数字，等价于03 STATE PIC A(5)。
输入ASDFG ,显示ASDFG
03 VAR PIC XXXXX.   VAR变量长度为5个任意字符。等价于03 FILLER PIC X(5)。
输入123AS ，显示123AS
03 VAR PIC 99/XXX/9999 长度11，输入05may2004,显示05/may/2004
03 VAR PIC 0ABXXX/9999 长度11，输入05may2004,显示05]]></description><category></category></item><item><title><![CDATA[Hystrix服务熔断和服务降级]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/107390313</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/107390313</guid><author>Soul_Ming</author><pubDate>Sun, 19 Jul 2020 14:32:50 +0800</pubDate><description><![CDATA[Hystrix是一个用于处理分布式系统的延迟和容错的开源库，在分布式系统里，许多依赖不可避免的会调用失败，比如超时、异常等，Hystrix能够保证在一个依赖出问题的情况下，不会导致整体服务失败，避免级联故障，以提高分布式系统的弹性。
“断路器”本身是一种开关装置，当某个服务单元发生故障之后，通过断路器的故障监控（类似熔断保险丝），向调用方返回一个符合预期的、可处理的备选响应（FallBack），而不是长时间的等待或者抛出调用方无法处理的异常，这样就保证了服务调用方的线程不会被长时间、不必要地占用，从而避免了]]></description><category></category></item><item><title><![CDATA[线程和进程的区别]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/107298931</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/107298931</guid><author>Soul_Ming</author><pubDate>Sun, 12 Jul 2020 14:36:05 +0800</pubDate><description><![CDATA[什么是线程和进程?
进程
一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间，一个进程可以有多个线程，比如在Windows系统中，一个运行的xx.exe就是一个进程。
线程
进程中的一个执行任务（控制单元），负责当前进程中程序的执行。一个进程至少有一个线程，一个进程可以运行多个线程，多个线程可共享数据。
进程与线程的区别
线程具有许多传统进程所具有的特征，故又称为轻型进程(Light—Weight Process)或进程元；而把传统的进程称为重型进程(Heavy—Weight Process)，]]></description><category></category></item><item><title><![CDATA[Eureka自我保护机制]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/107207496</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/107207496</guid><author>Soul_Ming</author><pubDate>Wed, 08 Jul 2020 15:44:20 +0800</pubDate><description><![CDATA[Eureka自我保护机制
默认情况下，当eureka server在一定时间内没有收到实例的心跳，便会把该实例从注册表中删除（默认是90秒），但是，如果短时间内丢失大量的实例心跳，便会触发eureka server的自我保护机制，比如在开发测试时，需要频繁地重启微服务实例，但是我们很少会把eureka server一起重启（因为在开发过程中不会修改eureka注册中心），当一分钟内收到的心跳数大量减少时，会触发该保护机制。可以在eureka管理界面看到Renews threshold和Renews(last]]></description><category></category></item><item><title><![CDATA[SpringCloud简介及与Dubbo的区别]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/107145430</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/107145430</guid><author>Soul_Ming</author><pubDate>Sun, 05 Jul 2020 21:43:06 +0800</pubDate><description><![CDATA[SpringCloud简介及与Dubbo的区别
SpringCloud是基于SpringBoot提供了一套微服务解决方案，包括服务注册与发现，配置中心，全链路监控，服务网关，负载均衡，熔断器等组件，除了基于NetFlix的开源组件做高度抽象封装之外，还有一些选型中立的开源组件。
SpringCloud利用SpringBoot的开发硬件性巧妙地简化了分布式系统基础设施的开发，SpringCloud为开发人员提供了快速构建分布式系统的一些工具，包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策]]></description><category></category></item><item><title><![CDATA[微服务与微服务框架以及优缺点]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/107145385</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/107145385</guid><author>Soul_Ming</author><pubDate>Sun, 05 Jul 2020 21:33:23 +0800</pubDate><description><![CDATA[微服务： 强调的是服务的大小，他关注的是某一个点，是具体解决某一问题/提供落地对应服务的一个服务应用，狭义的看可以看作为eclipse里面的一个微服务工程/或者module ，每一个微服务都可以直接运行。
微服务架构：微服务架构是一种架构模式，它提倡将单一应用程序划分成一组小的服务，服务之间互相协调，互相配合，为用户提供最终价值，每一个服务运行都在其独立的进程中，服务与服务之间采用轻量级的通信机制互相协作（通常是基于HTTP协议的restful api)。每个服务都围绕着具体的业务进行构建，并且能够独立的部]]></description><category></category></item><item><title><![CDATA[将本地项目上传到Github]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/107145154</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/107145154</guid><author>Soul_Ming</author><pubDate>Sun, 05 Jul 2020 21:30:10 +0800</pubDate><description><![CDATA[将本地项目上传到Github
登录github
https://github.com/
我们使用git需要先安装git工具，这里给出下载地址，下载后一路直接安装即可：
https://git-for-windows.github.io/
1.进入Github首页，点击New repository新建一个项目
2.填写相应信息后点击create即可
Repository name: 仓库名称

Description(可选): 仓库描述介绍

Public, Private : 仓库权限（公开共享，私有或指定]]></description><category></category></item><item><title><![CDATA[SpringBoot使用HiddenHttpMethodFilter后并没有将请求方式修改]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/104761142</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/104761142</guid><author>Soul_Ming</author><pubDate>Mon, 09 Mar 2020 21:01:13 +0800</pubDate><description><![CDATA[今天在使用RestFul 风格对请求的数据进行处理时，由于form表单只支持GET和POST请求，使用
&lt;input type="hidden" name="_method" value="put"/&gt;

修改请求方式，但是请求依旧是以表单POST的方式进行提交
解决方法：  原来是SpringBoot虽然给我们引入了HiddenHttpMethodFilter类进行请求的修改，但是该...]]></description><category></category></item><item><title><![CDATA[UDP和TCP的区别]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/102575500</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/102575500</guid><author>Soul_Ming</author><pubDate>Tue, 15 Oct 2019 22:37:12 +0800</pubDate><description><![CDATA[TCP和UDP的区别：
TCP和UDP都是传输层协议。
TCP（Transmission Control Protocol）是传输控制协议 ，是基于连接的协议，在正式的收发数据前必须和对方建立可靠的连接。
TCP建立连接通过三次握手进行连接的建立，具体看前文写到的TCP三次握手。
TCP支持的应用协议主要有：Telnet、FTP、SMTP等
TCP为了保证不发生丢包，就给每个包一个序号，同时序号也...]]></description><category></category></item><item><title><![CDATA[HTTP与HTTPS有什么区别？]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/102575039</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/102575039</guid><author>Soul_Ming</author><pubDate>Tue, 15 Oct 2019 21:15:45 +0800</pubDate><description><![CDATA[Http和Https区别：
基本概念：

Http协议：HTTP协议为超文本传输协议，用来在Internet上传送超文本。HTTP协议以明文方式发送内容，不提供任何方式的数据加密，如果攻击者截取了Web浏览器和网站服务器之间的传输报文，就可以直接读懂其中的信息，因此，HTTP协议不适合传输一些敏感信息。
Https协议：HTTPS则是 Http协议+SSL协议，SSL依靠证书来验证服务器的身份，并...]]></description><category></category></item><item><title><![CDATA[TCP/IP 分层及三次握手]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/101866600</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/101866600</guid><author>Soul_Ming</author><pubDate>Tue, 01 Oct 2019 21:39:31 +0800</pubDate><description><![CDATA[TCP/IP 协议族里重要的一点就是分层。
TCP/IP 协议族按层次分别分 为以下 4 层：应用层、传输层、网络层和数据链路层。
把 TCP/IP 层次化是有好处的。比如，如果互联网只由一个协议统 筹，某个地方需要改变设计时，就必须把所有部分整体替换掉。而分 层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之 后，每个层次内部的设计就能够自由改动了。
值得一提的是，层次化之后，设计也变...]]></description><category></category></item><item><title><![CDATA[Http报文组成及状态码]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/101865096</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/101865096</guid><author>Soul_Ming</author><pubDate>Tue, 01 Oct 2019 21:15:39 +0800</pubDate><description><![CDATA[HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文。
请求端（客户端）的 HTTP 报文叫做请求报文，响应端（服务器端）的叫做响应报文。
HTTP 报文本身是由多行 数据构成的字符串文 本。
HTTP 报文大致可分为报文首部和报文主体两块。两者由最初出现的 空行 来划分。

请求的发送及响应

请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段和内容实体构成的。

...]]></description><category></category></item><item><title><![CDATA[求字符串最长回文序列]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/101795739</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/101795739</guid><author>Soul_Ming</author><pubDate>Mon, 30 Sep 2019 22:21:49 +0800</pubDate><description><![CDATA[思想 ：
总共有2n-1 个中间点  n 个 字符  n -1 个字符；
取字符串的一个中间点向左右两边扩散，如果左边字符等于右边字符，则是当前截取的字符串回文
再继续 left – , right ++ ；
查看每个节点的回文是否存在，存在则将该回文保存。后面回文长度和前面的回文长度比较  取最大的回文长度。
/** 求字符串最长回文序列
 * @author yezhiming
 *2019...]]></description><category></category></item><item><title><![CDATA[从上往下打印出二叉树]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/101727558</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/101727558</guid><author>Soul_Ming</author><pubDate>Mon, 30 Sep 2019 00:02:22 +0800</pubDate><description><![CDATA[从上往下打印出二叉树的每个节点，同层节点从左至右打印。
class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}

方式一：
使用两个数组  一个数组存...]]></description><category></category></item><item><title><![CDATA[数据流中位数]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/101643507</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/101643507</guid><author>Soul_Ming</author><pubDate>Sat, 28 Sep 2019 23:17:12 +0800</pubDate><description><![CDATA[求中位数
如果从数据流中读出偶数个数值，那么中位数就是所有数值排序之后中间两个数的平均值。
使用List集合将数据插入，再将集合是用升序排序
判断集合中的数个数是奇数还是欧式
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

/**
 * @author yezhiming
 *2019...]]></description><category></category></item><item><title><![CDATA[linux中服务器调优，诊断思路和性能评估]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/101644125</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/101644125</guid><author>Soul_Ming</author><pubDate>Sat, 28 Sep 2019 23:15:12 +0800</pubDate><description><![CDATA[整机： top
查看各个CPU的负载均衡、CPU使用率和memory内存的占用率。


uptime 系统性能命令的精简版

CPU: vmstat    查看CPU状态信息


mpstat -P -ALL 2 查看所有CPU的核信息

pidstat -u 1 - p pid 查看每个进程使用cpu的用量分解信息

内存： free 查看内存信息
硬盘：df


磁盘IO：iostat 查看i...]]></description><category></category></item><item><title><![CDATA[输出所有和为S的连续正数序列]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/101640035</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/101640035</guid><author>Soul_Ming</author><pubDate>Sat, 28 Sep 2019 21:39:31 +0800</pubDate><description><![CDATA[输出所有和为S的连续正数序列。
序列内按照从小至大的顺序，序列间按照开始数字从小到大的顺序
至少包括两个数
思路：   可以使用滑动窗口的思想
定义快慢2个指针
由于是连续的几个数   求和使用等差数列  Sn =  (a1 +  an )* n /2
如果和等于sum  那么把这几个数存放到集合中  否则 进行判断
如果比sum小  那么将快指针进行向前移动
如果比sum大  那么将慢指针进行向...]]></description><category></category></item><item><title><![CDATA[生产者消费者模式]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/101016616</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/101016616</guid><author>Soul_Ming</author><pubDate>Thu, 19 Sep 2019 11:21:53 +0800</pubDate><description><![CDATA[先生产后消费
实现方法一：使用lock锁机制实现
import java.util.concurrent.locks.Condition;
		import java.util.concurrent.locks.Lock;
		import java.util.concurrent.locks.ReentrantLock;
		
		class Data{
			volatile int numb...]]></description><category></category></item><item><title><![CDATA[JUC下CountDownLatch/CyclicBarrier/Semaphore]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/100891278</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/100891278</guid><author>Soul_Ming</author><pubDate>Mon, 16 Sep 2019 16:35:42 +0800</pubDate><description><![CDATA[CountDownLatch 执行 - - 操作
允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助。
CountDownLatch用给定的计数初始化。 await方法阻塞，直到由于countDown()方法的调用而导致当前计数达到零，之后所有等待线程被释放，并且任何后续的await 调用立即返回。 这是一个一次性的现象 - 计数无法重置
底层使用队列。
 public Count...]]></description><category></category></item><item><title><![CDATA[volatile]]></title><link>https://blog.youkuaiyun.com/Soul_Ming/article/details/100887498</link><guid>https://blog.youkuaiyun.com/Soul_Ming/article/details/100887498</guid><author>Soul_Ming</author><pubDate>Mon, 16 Sep 2019 15:02:34 +0800</pubDate><description><![CDATA[volatile是JAVA虚拟机提供的轻量级的同步机制
volatile特点：
1、保证了可见性
2、不保证原子性
3、禁止指令重排，保证了有序性
JMM（java内存模型）特性：


1】可见性


2】原子性


3】有序性

可见性：

当一个线程对共享变量的值进行拷贝到自己的工作内存 再进行修改  再写入主内存中之后，会对其他的操作该变量的线程通知，其他线程就知道自己拷贝到自己工作内存的值...]]></description><category></category></item></channel></rss>