<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[samz5906的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/samz5906</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; samz5906]]></copyright><item><title><![CDATA[jvm 参数配置]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/117671273</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/117671273</guid><author>samz5906</author><pubDate>Mon, 07 Jun 2021 18:29:22 +0800</pubDate><description><![CDATA[Behavioral Options

Option and Default Value
			Description
		-XX:-AllowUserSignalHandlers
			Do not complain if the application installs signal handlers. (Relevant to Solaris and Linux only.)
		-XX:AltStackSize=16384
			Alternate signal stack size (in Kby]]></description><category></category></item><item><title><![CDATA[JVM方法调用指令]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/117131769</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/117131769</guid><author>samz5906</author><pubDate>Fri, 21 May 2021 18:40:44 +0800</pubDate><description><![CDATA[JVM识别方法

 虚拟机识别方法的关键在于类名、方法名以及方法描述符。方法描述符由方法的参数类型以及返回类型所构成。在同一个类中，如果同时出现多个名字相同且描述符也相同的方法，Java 虚拟机会在类的验证阶段报错。



方法静态绑定与动态绑定

静态绑定

 指的是在解析时便能够直接识别目标方法

动态绑定

指的是需要在运行过程中根据调用者的动态类型来识别目标方法



调用方法相关指令

invokestatic

 用于调用静态方法。static关键字修饰的方法。 它要调用的方法...]]></description><category></category></item><item><title><![CDATA[synchronized 锁分级]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/115584716</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/115584716</guid><author>samz5906</author><pubDate>Sat, 10 Apr 2021 21:50:21 +0800</pubDate><description><![CDATA[说明 

  在JDK 1.8中，synchronized 的速度已经有了显著的提升，主要通过分级锁的方式。JVM 会根据使用情况对synchronized锁升级，会如此路径升级：偏向锁 --&gt;轻量级锁--&gt;重量级锁。

锁信息

  那锁是通过什么方式判断锁是否要升级呢？关键信息在对象头里，对象分为MarkWord、Class Pointer、Instance Data、Padding，其中MarkWord跟锁信息有关，它的长度是 24 位，它包含Thread ID（23...]]></description><category></category></item><item><title><![CDATA[UNIX设计原则脑图]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/115353600</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/115353600</guid><author>samz5906</author><pubDate>Wed, 31 Mar 2021 16:26:53 +0800</pubDate><description><![CDATA[Unix哲学起源于Ken Thompson早期关于如何设计一个服务接口简洁、小巧精干的操作系统的思考，随着Unix文化在学习如何尽可能发掘Thompson设计思想的过程中不断成长，同时一路上还从其它许多地方博采众长

  Unix哲学（同其它工程领域的民间传统一样）是自下而上的，而不是自上而下的。Unix哲学注重实效，立足于丰富的经验。你不会在正规方法学和标准中找到它，它更接近于隐性的半本能的知识，即Unix文化所传播的专业经验。它鼓励那种分清轻重缓急的感觉，以及怀疑一切的态度，并鼓励你以幽默达...]]></description><category></category></item><item><title><![CDATA[需求分析]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/114193276</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/114193276</guid><author>samz5906</author><pubDate>Sat, 27 Feb 2021 21:29:54 +0800</pubDate><description><![CDATA[为何要做需求分析

1) 因为我们做软件本身就是为了满足用户需求。用户需求到底为何，我们需要清楚定义。

2) 需求边界定义的需要。用户需求理清楚了，不代表产品理清楚了。用户需求的满足一定会有行业分工，我们做什么，合作伙伴做什么，需要厘清大家的边界。

3) 架构设计的需要。架构需要切分子系统，需要我们梳理并对用户需求进行归纳与抽象。架构还需要防止过度设计，把简单的事情复杂化。



需求分析过程必然会涉及以下这些内容

1) 我们要面向的核心用户人群是谁？

2) 用户原始需求是什...]]></description><category></category></item><item><title><![CDATA[通俗易懂理解网络I/O模型]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/113120123</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/113120123</guid><author>samz5906</author><pubDate>Mon, 25 Jan 2021 16:31:01 +0800</pubDate><description><![CDATA[最近可能周志明老师写的《软件架构探索》，讲解网关路由章节很形象的解释了各种网络I/O模型，这里分享出来大家细品。



网路请求本质

  比如你发送一次百度搜索，从远程主机返回的数据会先存放到操作系统内核的缓冲区中，然后再从内核的缓冲区复制到应用程序的地址空间，所以当发生一次网络请求发生后，将会按顺序经历“等待数据从远程主机到达缓冲区”和“将数据从缓冲区拷贝到应用程序地址空间”两个阶段，根据实现这两个阶段的不同方法，可以分为同步I/O与异步I/O。



网络I/O模型

 同步I/O与异步...]]></description><category></category></item><item><title><![CDATA[软件工程师的核心竞争力是什么-笔记]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/112995688</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/112995688</guid><author>samz5906</author><pubDate>Fri, 22 Jan 2021 18:36:38 +0800</pubDate><description><![CDATA[前言

干了几年的开发，最近也在思考我的核心竞争力是什么。现在是90后出道了，我该怎么不被替代呢。最近看极客时间《软件工程之美》发现了几个要点。以下是学习笔记。

作者提出软件工程师的核心竞争力，不是单一能力的体现，而是几种能力和价值的合集。学习能力、解决问题能力和影响力构成了软件工程师的核心竞争力。从三个方面说一说。

核心竞争力



1 学习能力

招聘网站上招聘软件工程师的要求，都需要能掌握一门或者多门编程语言，会熟练使用工具、框架。所以最基本的要求是技术和代码。但熟练掌握一门编程语言、框架，还不.]]></description><category></category></item><item><title><![CDATA[XXL-JOB源码解析-执行器注册]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/112288721</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/112288721</guid><author>samz5906</author><pubDate>Wed, 06 Jan 2021 18:27:45 +0800</pubDate><description><![CDATA[概述

  执行器注册包括注册和删除

注：源码版本2.3

注册过程

执行器创建是以XxlJobSpringExecutor开始。现在看下

下面是官方给的demo


@Configuration
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

    @Value("${xxl.job.admin.addresses}")
    priva..]]></description><category></category></item><item><title><![CDATA[如何参与开源项目]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/109732382</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/109732382</guid><author>samz5906</author><pubDate>Mon, 16 Nov 2020 23:15:22 +0800</pubDate><description><![CDATA[以我参与过的开源项目举例dolphinscheduler说明



1 进入https://github.com/apache/incubator-dolphinscheduler，点击fork按钮，clone一份到自己的github上。







此时本地还没有本地github代码。

2 cmd 进入要放代码的目录执行，将代码clone到本地。


git clone git@github.com:apache/incubator-dolphinscheduler.git

3 执行


gi...]]></description><category></category></item><item><title><![CDATA[git pull error fatal: refusing to merge unrelated histories]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/107499436</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/107499436</guid><author>samz5906</author><pubDate>Tue, 21 Jul 2020 21:36:48 +0800</pubDate><description><![CDATA[将本地的项目第一次上传到github 仓库，执行命令


git pull origin master


报错
* branch      master   -&gt; FETCH_HEAD
fatal: refusing to merge unrelated histories

原因是由于，第一次本地和github仓库没有关联起。

解决办法

可以在命令后 加--allow-unrelated-histories


git pull origin master --allow-...]]></description><category></category></item><item><title><![CDATA[使用Apahce Dolphinscheduler遇到问题怎么办]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106924822</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106924822</guid><author>samz5906</author><pubDate>Tue, 23 Jun 2020 15:36:51 +0800</pubDate><description><![CDATA[第一步：
进入github issue 地址为 https://github.com/apache/incubator-dolphinscheduler/issues
第二步：
在filter中去掉is:issue is:open 输入你遇到问题关键词

第三步：
如果在列表中详情中的回复中找能到答案，那恭喜你不是以第一个遇到
如果在列表中没有你要的答案，你可以直接new issue

第四步：
将你提交的issue地址发到答疑群，同时描述下你的问题。
大家都比较忙，有些问题不能及时回复

...]]></description><category></category></item><item><title><![CDATA[写代码的第一性原理-设计原则]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106911921</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106911921</guid><author>samz5906</author><pubDate>Mon, 22 Jun 2020 23:09:14 +0800</pubDate><description><![CDATA[第一性原理是被马斯克带火的。现在很多课里都在将第一性原理，这里简简单给第一性原理下个定义：透事物的本质，要把事物分解成最基本的组成，从源头解决问题。
那么写代码的第一性原理是什么呢？我觉得是前辈们总结设计原则，下面是常用的设计原则。
设计原则
SOLID 原则
1. SRP 单一职责原则
​	一个类只负责完成一个职责或者功能。单一职责原则通过避免设计大而全的类，避免将不相关的功能耦合在一起，来提高类的内聚性。同时，类职责单一，类依赖的和被依赖的其他类也会变少，减少了代码的耦合性，以此来实现代码的高内聚、松耦]]></description><category></category></item><item><title><![CDATA[Markdown如何添加段首空格]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106892712</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106892712</guid><author>samz5906</author><pubDate>Sun, 21 Jun 2020 22:55:01 +0800</pubDate><description><![CDATA[写md有个痛点，就是每段开始行缩进不能直接使用空格。多敲几个也无效。搜了一波，发现跟html加空格一样。加&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;段首开始

没添加前
段首开始
添加后效果
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;段首开始
参考文章

...]]></description><category></category></item><item><title><![CDATA[Kubernetes入门之基本概念]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106892628</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106892628</guid><author>samz5906</author><pubDate>Sun, 21 Jun 2020 22:47:24 +0800</pubDate><description><![CDATA[Kubernetes概述
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kubernetes（k8s）是Google在2014年发布的一个开源项目。最初，Google开发了一个叫Borg的系统（现在命名为Omega）来调度庞大数量的容器和工作负载。在积累多年的经验后，Google决定重写这个容器管理系统，并将其贡献到开源社区，让全世界都能受益。这个项目就是Kubernetes。简单地讲，Kubernetes是Google Omega的开源版本
&nbsp;&nbsp;&nbsp;&]]></description><category></category></item><item><title><![CDATA[Apache DolphinScheduler API调用说明]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106825655</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106825655</guid><author>samz5906</author><pubDate>Thu, 18 Jun 2020 11:13:48 +0800</pubDate><description><![CDATA[背景
调度一般都是通过页面创建项目、流程等，但是需要和第三方系统集成就需要通过调度API管理项目、流程。
操作步骤
创建token
1） 登录调度系统，进入 安全中心-&gt;令牌管理 ，单击 创建令牌按钮，创建令牌。如下图所示

2） 选择失效时间(就是token有效期，自己内部系统就设置长点)，单击“生成令牌”，
拷贝token字符串，然后保存就 ok
使用token


找到API文档页面
apiserver地址:12345/dolphinscheduler/doc.html
选一个测试的接口，本次测]]></description><category></category></item><item><title><![CDATA[学习笔记(01):陆奇博士直播-正视挑战把握创业创新机会-正视挑战把握创业创新机会-2...]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106806969</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106806969</guid><author>samz5906</author><pubDate>Wed, 17 Jun 2020 14:37:54 +0800</pubDate><description><![CDATA[「正视挑战，把握创业创新机会」本期嘉宾是奇绩创坛创始人兼CEO 陆奇博士奇绩创坛｜2020秋季创业营报名 （跳转链接 https://www.miracleplus.com/apply/?source=20200616live优快云）欢迎填表申请，无需BP。...]]></description><category></category></item><item><title><![CDATA[Apache DolphinScheduler告警邮箱配置]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106795124</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106795124</guid><author>samz5906</author><pubDate>Tue, 16 Jun 2020 21:01:00 +0800</pubDate><description><![CDATA[在使用 Apache DolphinScheduler调度发现，如果执行SQL查询任务没有配置邮箱任务就会执行失败。如果在安装调度时没有配置，可以按照如下方式重新配置邮箱。
第一步 获取邮箱客户端授权码
我本地是配置163邮箱，可以按照163邮箱官方帮助问题操作，这里不再重复，单击这里
其他邮箱形式差不多
第二步 修改alert.properties配置
找到文件，调度安装目录/conf/alert.properties(我本地是/data/app/dolphinscheduler13/conf/alert]]></description><category></category></item><item><title><![CDATA[hive-常用元数据表结构]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106772362</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106772362</guid><author>samz5906</author><pubDate>Mon, 15 Jun 2020 22:19:24 +0800</pubDate><description><![CDATA[常用元数据表
在使用Hive进行开发时，往往需要获得己存在 Hive表的建表语句 （ Data D efinition
L anguage, DDL) ，然而Hive本身并没有提供这样一个工具 。 要想还原建表 DDL 就必须从
元数据入手 。 Hive 的元数据并不存放在 HDFS 上 ，一般存放在MySQL、 Derby中




表名
说明




TBLS
所有Hive表的基本信息


TABLE_PARAM
表级属性，如是否外部表、表注释等


COLUMNS
Hive 表字段信息（字段注释 ， ]]></description><category></category></item><item><title><![CDATA[启动hdfs报错 Incompatible clusterIDs]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106763426</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106763426</guid><author>samz5906</author><pubDate>Mon, 15 Jun 2020 15:37:56 +0800</pubDate><description><![CDATA[进行了一次（非首次）hdfs namenode -format命令后，启动hdfs,发现datanode没有启动，通过看日志发现有如下的报错信息：
java.io.IOException: Incompatible clusterIDs in /Users/soft/dev/BigData/hadoop-2.10.0/data/dfs/data: namenode clusterID = CID-62694e49-58bb-4d8c-a6d6-f1421c671d78; datanode clusterID]]></description><category></category></item><item><title><![CDATA[HDFS常用命令]]></title><link>https://blog.youkuaiyun.com/samz5906/article/details/106540348</link><guid>https://blog.youkuaiyun.com/samz5906/article/details/106540348</guid><author>samz5906</author><pubDate>Thu, 04 Jun 2020 11:17:01 +0800</pubDate><description><![CDATA[HDFS命令

命令
			说明
			样例
		-help
			输出这个命令参数手册
			hdfs -help
		-ls
			显示目录信息
			hdfs dfs -ls /
		-mkdir
			在hdfs上创建目录,-p:创建父目录
			
			hdfs dfs -mkdir /hadoop/local
			
		-appendToFile 
			将一个或者多个文件添加到HDFS系统中
			hdfs dfs -appendToFile a.txt b.txt /hadoo...]]></description><category></category></item></channel></rss>